I'm writing API documentation using Swagger Editor, but having a problem with a multipart POST request containing a JSON object. Here is my Swagger YAML file:
swagger: '2.0' info: version: 1.0.0 title: Documentation API paths: /agent: post: consumes: - multipart/form-data produces: - text/html parameters: - in: query name: method description: name of method to access required: true type: string - in: body name: param description: parameter to send required: true schema: $ref: "#/definitions/Param" responses: 201: description: item created 400: description: invalid input, object invalid 409: description: an existing item already exists definitions: Param: # <---------- type: object required: - username - password - imsi - imei - deviceId properties: username: type: string password: type: string imsi: type: string imei: type: string deviceId: type: string host: 'localhost' basePath: /v1/api schemes: - https When I execute the request, I get the curl command like this:
curl -X POST "https://localhost/v1/api/agent?method=login" -H "accept: text/html" -H "content-type: multipart/form-data" -F {"username":"1234567890","password":"1234567890","imsi":"310260000000000","imei":"000000000000000","deviceId":"9ca9b02b237a6dae"} but I expect to get this:
curl -X POST "https://localhost/v1/api/agent?method=login" -H "accept: text/html" -H "content-type: multipart/form-data" -F 'param={"username":"1234567890","password":"1234567890","imsi":"310260000000000","imei":"000000000000000","deviceId":"9ca9b02b237a6dae"}' That is, the body parameter should be sent with the key name param.