我定义了两个ResourceContainer。
但是endpointscfg.py生成的echov1openapi.json只有一个容器。
例如:
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):
....然后,我执行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可以定义一次吗?
并且我找不到关于ResourceContainer的API参考。参考页面在哪里?
发布于 2017-11-07 05:54:16
在看不到完整示例的情况下很难说,但我怀疑原因是您从未在任何请求中使用'test‘属性;您不接受'test’url参数。
https://stackoverflow.com/questions/46914083
复制相似问题