如何配置Google Cloud Endpoints以在API生成期间忽略特定方法?

时间:2013-09-30 20:49:42

标签: java google-app-engine google-cloud-endpoints

如何配置Google Cloud Endpoints以在API生成期间忽略特定方法?

我想将我的FooServiceImpl服务的一些方法(但不是全部)公开为Cloud Endpoints API。 在我的FooServiceImpl上使用@Api注释,Google Cloud Endpoints会尝试公开所有公共方法(如果响应类不正确,则会失败)。

如何在我的服务中使用Cloud Endpoints不会尝试在API中公开的公共方法?

解决方案是拥有两个服务类:

  • FooServiceImpl,包含实现方法

  • FooServiceApi,它只包含API公开的方法,每个方法都在FooServiceImpl中调用它的实现

但这是一个不太理想和冗长的解决方案,这意味着每个服务都有两个类,代码非常相似......

2 个答案:

答案 0 :(得分:1)

如果出现以下情况,则类方法会出现在API表面中:

  • 他们使用@ApiMethod注释。
  • 它们是public并遵循RESTful方法名称的命名约定(将Resource替换为您的JavaBean的名称):
    • getResource
    • insertResource
    • updateResource
    • listResource
    • removeResource

袖手旁观的建议是在您班级的公开API private中制作您不需要的方法。

答案 1 :(得分:0)

我了解您只需要避免在您不希望在API中公开的那些方法中使用@ApiMethod注释。

事实上我没试过这个,但它的文档说:

  

注释@ApiMethod用于指示方法是其中的一部分   API。

所以似乎很清楚,如果你不使用那个注释,该方法将不会成为API的一部分......