【问题标题】:Getting 200 status code instead of 201 or 204获取 200 状态码而不是 201 或 204
【发布时间】:2018-03-14 18:23:38
【问题描述】:

我正在使用 Swagger 2.0 创建 python-flask 后端的框架。 我在 Swagger 在线编辑器上声明了POST /image 端点:

/image:
    post:
      summary: "Description."
      operationId: "image_post"
      consumes:
      - "multipart/form-data"
      parameters:
      - in: "formData"
        name: "upfile"
        description: "The file to upload."
        required: true
        type: "file"
      responses:
        201:
          description: "Ok"
          schema:
            type: "string"
        400:
          description: "bad image"
      x-swagger-router-controller: "swagger_server.controllers.default_controller"

下载python-flask 服务器后,我使用命令python -m swagger_server 运行它。通过邮递员发送帖子请求时,我得到状态代码是200 而不是201。它还在运行服务器的命令行上显示200

如果这是一个错误,有什么线索吗?还是我做错了什么?

【问题讨论】:

    标签: python flask swagger http-status-codes


    【解决方案1】:

    我很确定您需要在视图函数中明确声明要返回的状态代码;大摇大摆的描述只是您的 API 服务器实际上并不关心的文档。类似这样的伪代码:

    def image():
        if request.method == 'POST':
            if not is_valid(request.form):
                return jsonify({'errors': [...]}), 400
            # do stuff
            return jsonify({'description': 'created'}), 201
    

    【讨论】:

    • 这是一个非常好的收获!我正在为此苦苦挣扎!好的,谢谢!
    猜你喜欢
    • 2016-10-24
    • 2019-08-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 2021-06-07
    • 2019-10-04
    相关资源
    最近更新 更多