Webargs Python Flask Flasgger (Swagger) - список строк в теле HTTP PUT
Я создал веб-API Python с использованием flask, flasgger (swagger, определяемый файлами yml) и webargs:
@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
body = ["test1", "test2", "test3"]
Я получаю: 422 Unprocessable Entity Запрос был правильно сформирован, но его не удалось выполнить из-за семантических ошибок.
Я предполагаю, что что-то не так с определением сваггера в файле yml, параметрами @use_kwargs или моим тестовым PUT.
1 ответ
Так что я понял это сам.
Пришлось использовать: {"community_set": ["test1", "test2", "test3"]}
не только: ["test1", "test2", "test3"]