热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何将rpc标记为已弃用

如何解决《如何将rpc标记为已弃用》经验,为你挑选了1个好方法。

如果我有这样的服务:

service MyService {
  rpc GetThings(GetThingsRequest) returns (GetThingsResponse);
}

我如何标记GetThings为已弃用?

我知道如何将字段或消息标记为已弃用但我找不到有关rpcs的任何信息.

这是针对proto3的.



1> 小智..:

TL; DR:这是可能的,但它不会生成编译器警告.考虑使用字段级别的弃用.

看起来可以向服务添加一个已弃用的选项,就像在消息和枚举上一样:

service MyService {
  rpc GetThings(GetThingsRequest) returns (GetThingsResponse) {
    option deprecated = true;
  };
}

发现于:https://github.com/google/protobuf/issues/1734

即使它确实编译,它似乎在使用时不会生成编译器警告.我试图在Java中,与HelloWorld服务从Java的快速入门指南.进一步检查生成的java文件,HelloWorldProto.java,它显示该类没有添加@Deprecatedjava注释,但文件中存在一些差异,很可能是proto描述中的proto注释:

$ diff HelloWorldProto-{control,method}.java
38c38
<"ssage\030\001 \001(\t2I\n\007Greeter\022>\n\010SayHello\022\030.hel" +
---
>       "ssage\030\001 \001(\t2L\n\007Greeter\022A\n\010SayHello\022\030.hel" +
40,41c40,41
<"eply\"\000B6\n\033io.grpc.examples.helloworldB\017H" +
<"elloWorldProtoP\001\242\002\003HLWb\006proto3"
---
>       "eply\"\003\210\002\001B6\n\033io.grpc.examples.helloworld" +
>       "B\017HelloWorldProtoP\001\242\002\003HLWb\006proto3"

在请求消息,服务和文件级别上尝试选项时,我得到了类似的结果.我的预感是这是java代码生成器中缺少的功能.将不推荐使用的选项添加到字段时,我确实得到了所需的编译器警告:

$ ./gradlew installDist
...
Note: Some input files use or override a deprecated API.
...

我看到你的选择:

将请求消息中的所有字段标记为已弃用.然后,只要有人使用它,您就会显示编译器警告.喜欢:

message HelloRequest {
  string name = 1 [deprecated=true];
}

在grpc方法上不使用use选项(如上所示)不显示编译器警告,并依赖用户只看到此文档.

打开github问题.

上述所有的 :)


推荐阅读
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
author-avatar
钧广摄影__
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有