2017-10-24 3 views
1

2つのResourceContainerを定義しました。ResourceContainerが2つ以上定義されている場合、endpointscfg.pyは機能しません

しかし、echov1openapi.jsonはendpointscfg.pyによって生成されますが、Containerは1つだけです。など

class TestRequest(messages.Message): 
    foo = messages.StringField(1) 
    bar = messages.StringField(2) 

class EchoRequest(messages.Message): 
    aaa = messages.StringField(1) 
    bbb = messages.StringField(2) 

ECHO_RESOURCE = endpoints.ResourceContainer(
    EchoRequest, 
    n=messages.IntegerField(3)) 

TEST_RESOURCE = endpoints.ResourceContainer(
    TestRequest, 
    test=messages.IntegerField(3)) 
... 
    @endpoints.method(
     ECHO_RESOURCE, 
     EchoResponse, 
     path='echo', 
     http_method='POST', 
     name='echoTest') 
    def echo(self, request): 
     ...  
    @endpoints.method(
     TEST_RESOURCE, 
     EchoResponse, 
     path='echo2', 
     http_method='POST', 
     name='echo2') 
    def echo2(self, request): 
     .... 

次いで、Iはendpointscfg.pyを実行します。しかし、TEST_RESOURCEは表示されません。

"definitions": { 
... 
    "ProtorpcMessagesCombinedContainer": { ★ECHO_RESOURCE 
     "properties": { 
     "aaa": { 
      "type": "string" 
     }, 
     "bbb": { 
      "type": "string" 
     }, 
     "n": { 
      "format": "int64", 
      "type": "string" 
     } 
     }, 
     "type": "object" 
    } 
    }, 
... 
    "paths": { 
    "/echo/v1/echo": { 
     "post": { 
     "operationId": "EchoApi_echo", 
     "parameters": [ 
      { 
      "in": "body", 
      "name": "body", 
      "schema": { 
       "$ref": "#/definitions/ProtorpcMessagesCombinedContainer"★refer ECHO_RESOURCE 
      } 
      } 
     ], 
... 
    "/echo/v1/echo2": { 
     "post": { 
     "operationId": "EchoApi_echo2", 
     "parameters": [ 
      { 
      "in": "body", 
      "name": "body", 
      "schema": { 
       "$ref": "#/definitions/ProtorpcMessagesCombinedContainer"★not TEST_RESOURCE but ECHO_RESOURCE! 
      } 
      } 
     ], 

それは仕様ですか、それともBUGですか? ResourceContainerはAPIごとに1回定義できますか?

と、ResourceContainerに関するAPIリファレンスが見つかりませんでした。 リファレンスページはどこですか?

答えて

0

あなたの完全な例を見ることなく言うのは難しいですが、原因は決してであると思われます。どのリクエストでも「テスト」属性を使用してください。あなたは 'test' urlパラメータを受け入れません。

関連する問題