当前位置: 首页 > 知识库问答 >
问题:

烧瓶Swagger留档查询参数GET必填

周越泽
2023-03-14

我在烧瓶项目中使用Swagger留档来记录endpoint和参数。

要定义endpoint的查询参数,请执行以下操作:

@api.doc(params={
    'name_query_parameter': 'Description'})

我想知道该参数是否可以在文档中显示为“必需的”,就像参数是路径的一部分时一样(home/name_query_parameter/某事/某事)。

查看文档,我只发现以下内容:

@api.expect()
@api.doc(body=the_defined_payload)

但这意味着信息要在身体上,我不能用GET请求来获取。另外,我希望它作为查询参数,而不是有效载荷的一部分。

这可能吗?

谢了。

共有1个答案

仲浩歌
2023-03-14

最终的解决方案如下,感谢 Mikhail 对解析器的评论。不过,我不得不承认,文档对于烧瓶Rest加来说并不是最好的。

我使用 params 部分来确保字段与描述和用于自定义验证的解析器一起出现在文档中,并使该字段显示为必需字段,即使它作为参数位于 URL 中。

parser = reqparse.RequestParser()
parser.add_argument('superimportant', 
type=inputs.boolean, location='args', required=True)
parser.add_argument('something', type=custom_validation_parser, location='args')

class MySuperClassResource(Resource):
@api.doc(parser=categories_by_retailer_parser,
         params={"superimportant": "Description of this important field",
                 "something": "bla bla"
                 })
def get(self, blable):
    parser.parse_args()
    pass

custom_validation_parser只是一个允许自定义验证的方法,就像对空值一样。该方法的格式如下。(它必须返回您想要访问的值,如果存在.问题,请引发ValueError)。

def custom_validation_parser(value):
    if not value:
        raise ValueError("Must not be empty.")
    return value
 类似资料:
  • 我有一个GET路由,我想在其中将url中的对象参数编码为查询字符串。 在编写 swagger 文档时,我基本上收到不允许我在类型参数中使用/类型的错误: 具有对象值的请求查询参数将在实际请求中编码。 即使 swagger在屏幕顶部显示错误,对象也会在 swagger UI 编辑器中正确呈现,但是该错误浮动在文档顶部。

  • 在我的Zend应用程序中,我正在为移动应用程序编写一个小API。为了方便移动开发者,我使用了Swagger。到目前为止,除了一个GET请求外,一切正常。 当我呼叫/user/messages/{sessionToken}时?numMessages={numMessages} 有人知道我的错误吗? 欢迎任何帮助。 诚挚的问候 罗特曼 更新:按照建议,我将两个参数类型都更改为“查询”并更改了路径: 但

  • 两种情况下生成的 XML 文件相同 知道为什么在生成文档时会有这种差异吗?我在搜索此内容时找不到任何相关内容。 如何(强制)将所有数据模型包含在模式部分中?非常感谢任何指针或资源。 谢谢你

  • 我在django中有一个api(Web服务),如下所示:http://127.0.0.1:9000/api/back_office/appointments/days/?branch=1,在swagger中,我想输入名为分支的查询参数,但不起作用(我所有的api都有同样的问题!!)。 以前,我使用旧版本的swagger,对于输入查询参数使用like - param_name语法,但是现在在djan

  • 我正在使用flask-RESTful开发API,并且对Flask的jsonify函数有问题。我正在使用flask-marshmlet进行JSON序列化。下面是一个非常简化的代码片段: 在本地,endpoint将返回具有键“data”和“error”的json;但是,当在Linux服务器上运行时,它会返回一个包含列表和在没有“data”和“error”键的情况下返回的结果。 我已经确定这种不一致是由

  • 我发现很难找到有关这方面的资料。会是什么?我如何解决这个问题?有哪些可能的修复方法? UWSGI日志文件 时钟来源:unix检测到CPU核数:4当前工作目录:/home/pi检测到二进制路径:/usr/local/bin/uwsgi!!!没有内部路由支持,重建与pcre支持!!!*警告:您在没有主进程管理器的情况下运行uWSGI进程数限制为7336内存页大小为4096字节检测到最大文件描述符号:6