2017-10-24 9 views
1

두 개의 ResourceContainer가 정의되었습니다.ResourceContainer가 두 개 이상 정의 된 경우 endpointscfg.py가 작동하지 않습니다.

그러나 echov1openapi.json은 endpointscfg.py에 의해 생성되며 Container는 하나뿐입니다.

같은 : 다음

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마다 한 번 정의 할 수 있습니까?

및 ResourceContainer에 대한 API 참조를 찾을 수 없습니다. 참조 페이지는 어디에 있습니까?

답변

0

당신의 전체 예제를 보지 않고 말하기는 어렵지만, 그 이유는 결코 당신이 아니라고 생각합니다. 어떤 요청에서도 'test'속성을 사용하십시오. 'test'url 매개 변수를 허용하지 않습니다.