sanic - 如何指定所需的JSON?

时间:2018-02-10 11:56:57

标签: python python-3.5 sanic

我想为控制器get / post方法指定所需的JSON,以便在SwaggerUI中显示。

例如,我希望request.json看起来像这样:

{
  'key1': <int>,
  'key2': <string>
}

我像这样初始化SwaggerUI:

from sanic_openapi import swagger_blueprint, openapi_blueprint

app = Sanic(__name__)

# Set up SwaggerUI
app.blueprint(openapi_blueprint)
app.blueprint(swagger_blueprint)

如何在parameters中显示两个键? enter image description here

2 个答案:

答案 0 :(得分:0)

sanic_openapi.doc.consumes装饰器用于装饰视图函数以记录其输入。这个装饰器函数的命名遵循OpenAPI specification

以下是应用它的一种方法:

@app.post('/recording_test')
@doc.summary('Tests a recording')
@doc.consumes({'key1': str, 'key2': int}, location='body')
async def create_recording_test(request):
    ...

您可以使用课程对输入进行建模。

class RecordingTest:
    key1 = str
    key2 = int

以下列方式使用上面的建模输入

@app.post('/recording_test')
@doc.summary('Tests a recording')
@doc.consumes(RecordingTest, location='body')
async def create_recording_test(request):
    ...

答案 1 :(得分:0)

您没有看到这个招摇因为PARAMS您get方法是阶级。 Sanic-openapi和Sanic-swagger还不支持基于类的视图。 :(