Java 云端点方法可见性
我正在用开发一个Android应用程序,我已经阅读了很多关于它的文档和教程,但仍然缺少一个信息:如何选择Android客户端可以看到的后端方法?Java 云端点方法可见性,java,android,google-app-engine,google-cloud-endpoints,Java,Android,Google App Engine,Google Cloud Endpoints,我正在用开发一个Android应用程序,我已经阅读了很多关于它的文档和教程,但仍然缺少一个信息:如何选择Android客户端可以看到的后端方法? 假设我有一个FriendshipEndpoint,FriendshipEndpoint有以下方法: @ApiMethod(name = "listFriendship", path = "listFriendship") public CollectionResponse<Friendship> listFriendship(
假设我有一个FriendshipEndpoint,FriendshipEndpoint有以下方法:
@ApiMethod(name = "listFriendship", path = "listFriendship")
public CollectionResponse<Friendship> listFriendship(
@Nullable @Named("cursor") String cursorString,
@Nullable @Named("limit") Integer limit)
@ApiMethod(name=“ListFriendly”,path=“ListFriendly”)
公众收集响应列表友谊(
@可为null的@Named(“游标”)字符串cursorString,
@可为空@命名(“限制”)整数限制)
编辑友谊端点使用@Api
注释进行注释
此方法应仅在后端可见(Android客户端不可见)
我已尝试删除@ApiMethod anotation->不起作用,该方法仍在浏览器的api资源管理器中可见。将access modifier设置为private对我来说不是一个解决方案,因为我想从其他端点调用此方法。
移除访问修饰符对我来说也不是解决方案,因为我需要这个方法在其他包(测试包)中可见
是否有解决此问题的方法?不幸的是,目前不支持此方案。最好的解决方案是将该方法移动到一个helper类,并在所有端点类之间共享它。当您删除
@ApiMethod
注释时,是否重新运行了update
和endpoints\u get\u client\u lib
maven目标?注释将导致该方法从通过REST和客户端库公开的云API中被排除。@LarrySchiefer我没有重新生成云端点库,但在我重新运行没有@ApiMethod
注释的项目后,该方法仍然“对世界可见”,所以它也可以被Android客户端调用。您所说的与“类中所有带有@Api
注释的公共、非静态、非桥接方法都在Api中公开,无论它们是否具有@ApiMethod
注释。”[1],不是吗?我的端点也使用@Api
注释进行注释。()你说得对,我忘记了顶级的@Api注释。很抱歉造成混淆。感谢您的回答,但是是否有一些参考资料证实了您的回答,或者“没有任何信息,说明如何处理云端点方法的可见性”?:“使用@Api注释的类的所有公共、非静态、非桥方法都将在公共Api中公开。”此外,我是一名云端点工程师。