以下是我的App Engine端点。我将其注释为ApiMethod.HttpMethod.GET
因为我希望能够通过浏览器进行调用。该类本身有几十种可以理解的方法。其中一些人使用POST
。但getItems
注明了GET
。当我尝试通过浏览器调用url时,我收到405错误
Error: HTTP method GET is not supported by this URL
代码:
@Api(name = "myserver",
namespace = @ApiNamespace(ownerDomain = "thecompany.com", ownerName = "thecompany", packagePath = ""),
version = "1", description = "thecompany myserver", defaultVersion = AnnotationBoolean.TRUE
) 公共类myserver {
@ApiMethod(name = "getItems", httpMethod = ApiMethod.HttpMethod.GET)
public CollectionResponse<Item> getItems(@Named("paramId") Long paramId) {
…
return CollectionResponse.<Item>builder().setItems(ItemList).build();
}
}
这不适用于localhost,而是适用于真实服务器。也许我正在形成错误的网址。我尝试了一些网址,例如
https://thecompanymyserver.appspot.com/_ah/spi/com.thecompany.myserver.endpoint.myserver.getItems/v1/paramId=542246400
https://thecompanymyserver.appspot.com/_ah/spi/myserver/NewsForVideo/v1/542246400
答案 0 :(得分:1)
正确的路径是 / _ ah / api / myserver / 1 / getItems 。 / _ah / spi指的是后端路径,它只接受不同格式的POST请求。
旁注:API版本是典型的“vX”,而不仅仅是“X”。
答案 1 :(得分:0)
您可以使用api资源管理器查看您是否使用了正确的网址。转到
https://yourprojectid.appspot.com/_ah/api/explorer
这也适用于devserver:
http://localhost:8080/_ah/api/explorer
此外,如果您不打算使用google javascript api客户端,则应将path="..."
添加到@ApiMethod
,这样您就可以确定路径实际是什么。