我在Google Cloud Endpoints上将列表作为方法参数而苦苦挣扎。
文件说
支持的参数类型如下:
参数类型的java.util.Collection
我试图用这种方式来做,但是却行不通。
基本端点方法:
@ApiMethod(name = "testMethod", httpMethod = HttpMethod.POST)
public void testMethod(@Named("longList") List<Long> longList) {
for (Long aLong : longList) {
if (aLong < 5) {
throw new IllegalArgumentException("You can't do it");
}
}
}
当我使用API Exploler执行此方法时,生成的URL为:
POST http://localhost:8080/_ah/api/billEndpoint/v1/testMethod?longList=5&longList=6
并且该方法正确执行。
但是当使用Android库时,URL更改为:
http://APP_ENGINE_BACKEND:8080/_ah/api/billEndpoint/v1/testMethod/5,6
端点返回404代码。
有可能将List作为方法参数,如果这是我做错了?
最佳答案
请在方法中添加@Nullable批注,这会将您的collection-type参数从路径转换为查询参数。
https://developers.google.com/appengine/docs/java/endpoints/annotations#nullable