1

我使用flask、flasgger(由yml文件定义的swagger)和webargs创建了一个python web API:

@app.route('/api/set/', methods=['PUT'])
@swag_from('swagger/put_community_sets.yml')
@use_kwargs({'community_set': fields.List(fields.Str(), 
    location='json', required=True)})
def put_community_set(community_set):
    print 'community_set to add: ' + str(community_set)

put_community_sets.yml:

tags:
 - put community set API
parameters:
 - name: body
   in: body
  schema:
    id: put_community_set
    required:
      - community_set
    properties:
      community_set:
        type: array
        items:
          type: string
        description: the community set to be added
  responses:
     '200':
       description: added a new community set

作为测试,我运行我的烧瓶应用程序并发送 HTTP PUT-

标头 = 内容类型,应用程序/json

正文 = [“test1”、“test2”、“test3”]

我得到:422 Unprocessable Entity 该请求格式正确,但由于语义错误而无法遵循。

我猜测 yml 文件中的 swagger 定义、@use_kwargs 参数或我的测试 PUT 有问题。

4

1 回答 1

2

所以我自己想出了这个。

不得不使用:{“community_set”:[“test1”,“test2”,“test3”]}

不只是:[“test1”,“test2”,“test3”]

于 2017-10-22T05:10:41.287 回答