App Engine端点:此方法不支持HTTP方法GET

时间:2015-10-28 01:18:29

标签: google-app-engine url get google-cloud-endpoints

以下是我的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

2 个答案:

答案 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,这样您就可以确定路径实际是什么。