gpt4 book ai didi

java - Google Cloud Endpoints(使用 GAE Java、Eclipse)- 包含类中的哪些方法?

转载 作者:太空宇宙 更新时间:2023-11-04 15:14:23 26 4
gpt4 key购买 nike

我在 Google 文档中找不到答案。据我从文档中了解到,@Api 注释应用于一个类以指示它是 Endpoint API 的一部分,然后 @ApiMethod 指示该类的哪些方法是 Cloud API 的一部分。

但是,即使某个方法未使用 @ApiMethod 进行注释,Google App Engine Cloud Endpoints Builder 仍会将该方法作为 Cloud API 的一部分包含在内。

如何从 API 中排除某个方法?如果不可能,那么将接收到的 API 参数传递给包含所需方法的单独对象(这是带注释的类的字段)是一个很好的选择吗?

我包含以下代码,它是一个用 @Api 注释的类以进行澄清(请参阅 ggetStr 方法顶部的注释):

package com.barcodeapp.www.app;

import java.util.ArrayList;
import java.util.List;

import com.google.api.server.spi.config.Api;

@Api(
name = "cetest",
version = "v1",
scopes = {EndpointsConstants.EMAIL_SCOPE},
clientIds = {EndpointsConstants.WEB_CLIENT_ID, EndpointsConstants.ANDROID_CLIENT_ID, com.google.api.server.spi.Constant.API_EXPLORER_CLIENT_ID},
audiences = {EndpointsConstants.ANDROID_AUDIENCE}
)
public class CloudTest {

public List<String> list() {
List<String> strs = new ArrayList<String>();
strs.add("a"); strs.add("b");
return strs;
}

/* THE FOLLOWING METHOD NEEDS TO BE EXCLUDED FROM CLOUD API */
public String ggetStr() {
return "abc";
}

}

编辑:我已将库 .jar 文件包含在 WAR/WEB-INF/lib 文件夹中 - 没有区别。

为了完整性,下面是两个类:

package com.cloudtest.lib;

public class ClassInLibProj {

}

package com.cloudtest.my;

public class ClassInLocalProj {

}

谢谢。

最佳答案

我可能是错的,但目前不包含您的方法的唯一方法似乎是在您的类中将该方法设置为私有(private)。

这是因为:

  • 如果您的方法使用 APIMethod 进行注释,则会包含该方法
  • 如果您的方法未使用 APIMethod 进行注释,但它是公开的,那么它也会被采用。这可能是由于顶部的 API 注释造成的。

提出了一个问题:https://code.google.com/p/googleappengine/issues/detail?id=10372&thanks=10372&ts=1386300958

关于java - Google Cloud Endpoints(使用 GAE Java、Eclipse)- 包含类中的哪些方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com