greyli
(Grey Li)
1
项目地址: apiflask/apiflask
相关 issue:Is there a way to add headers to the response schema? · apiflask/apiflask · Discussion #496 · GitHub
难度:中等
在 APIFlask 中,响应的 schema 通过 app.output
装饰器来处理。响应的首部(header)可以直接在视图函数返回,但是没有对应的参数来接受传递 header 的 schema。你需要为 output
装饰器添加一个参数来接受传入 header schema,并且借助 apispec 为 schema 生成对应的 OpenAPI spec。
PR 需要包含:
uncle-lv
(Uncle Lv)
5
这个功能的API应该是什么样的?您能提供一个样例吗?
greyli
(Grey Li)
6
大概是这样:
class HeaderSchema(Schema): # 用户定义的 schema
pass
@app.output(SomeSchema, status_code='200', header=HeaderSchema)
def hello():
pass
uncle-lv
(Uncle Lv)
7
怎么返回header参数?
像这样可以吗:
class HeaderSchema(Schema): # 用户定义的 schema
pass
@app.output(SomeSchema, status_code='200', header=HeaderSchema)
def hello():
...
return some_schema, header_schema
greyli
(Grey Li)
8
你是指返回 headers 字典本身?我的想法是 headers 的 schema 只是用来生成 OpenAPI spec。它会像其他参数一样在这里收集绑定到 f._spec
上。
uncle-lv
(Uncle Lv)
10
我理解错了,我以为是需要用schema去包装headers。
uncle-lv
(Uncle Lv)
11
1 个赞
greyli
(Grey Li)
12
哈哈,差不多,我晚点 review。这几天要准备参加 PyCon 的事情