2017-10-20 29 views
0

J'ai créé une API web python en utilisant flacon, flasgger (fanfaronnades défini par les fichiers YML), et webargs:Python Flask Flasgger (Swagger) webargs - Liste des chaînes dans le corps HTTP PUT

@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 

Comme un test je lance mon application ballon et envoyer un HTTP PUT-

tête = Content-Type, application/json

corps = [ "test1", "test2", "test3"]

Je reçois: 422 inexploitables Entité La demande a été bien formé mais n'a pas pu être suivi en raison d'erreurs sémantiques.

Je suppose que quelque chose ne va pas avec la définition swagger dans le fichier yml, les paramètres @use_kwargs, ou mon test PUT.

+0

Comment envoyez-vous la demande? –

Répondre

0

J'ai donc pensé cela moi-même.

Had à utiliser: { "community_set": [ "test1", "test2", "test3"]}

pas seulement: [ "test1", "test2", "test3"]