3

Google Cloud Endpoints を使用して簡単な API を定義しました。

@Api(name = "realestate", version = "v1")
public class RealEstatePropertyV1 {

    @ApiMethod(name = "properties", httpMethod = "GET")
    public List<RealEstateProperty> list() {
        return ofy().load().type(RealEstateProperty.class).list();
    }
}

私も設定しましたweb.xml

 <servlet>
  <servlet-name>SystemServiceServlet</servlet-name>
  <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
  <init-param>
   <param-name>services</param-name>
   <param-value>com.realestate.api.v1.RealEstatePropertyV1</param-value>
  </init-param>
 </servlet>
 <servlet-mapping>
  <servlet-name>SystemServiceServlet</servlet-name>
  <url-pattern>/_ah/spi/*</url-pattern>
 </servlet-mapping>
</web-app>

Eclipse で API を起動して実行しcurl http://localhost:8888/_ah/spi/realestate/v1/propertiesます。レスポンスは

<html><head><title>Error 405 HTTP method GET is not supported by this URL</title></head>
<body><h2>Error 405 HTTP method GET is not supported by this URL</h2></body>
</html>

サーバーログは次のとおりです。

Jun 20, 2013 9:22:14 PM com.google.appengine.tools.development.DevAppServerImpl start
INFO: Dev App Server is now running
Jun 20, 2013 9:22:29 PM com.google.api.server.spi.SystemServiceServlet init
INFO: SPI restricted: true

とはどういうSPI restricted意味か知っていますか? Google API コンソールには何も登録していません。私の目標は、最初に API をローカルでテストすることです。

4

1 に答える 1

2

アプリケーションをテストするには、試してください

curl -X POST -d "{}" \
> -H "Content-Type: application/json" \
> http://localhost:8888/_ah/spi/realestate/v1/properties

さらに良いのは、API Explorer を使用してアプリケーションをテストすることです

http://localhost:8888/_ah/api/explorer

ログに関してSPI restrictedは、これはそのメソッドに認証が設定されているかどうかを示しているだけです。あなたの場合、このメソッドの場合、それはtrue.

于 2013-06-20T21:14:57.593 に答える