Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swagger Editor multiple parameters in body

So I understand that if we want body parameters we have to have a schema, which I do. The issue is no matter how I try to define my schema it does not allow me to have multiple body parameters. Here is an example of one of the methods I have tried. Any help would be great!

swagger: '2.0'  # This is your document metadata info:   version: "0.0.1"   title: Todo App schema: {         } host: localhost:3000 schemes:   - http   - https consumes:   - application/json produces:   - application/x-www-form-urlencoded basePath: /  paths:   # This is a path endpoint. Change it.   /tasks:     post:       description: |         Add 'Task' object.        parameters:         # An example parameter that is in query and is required         -           name: name            in: query           description: unique object task name           required: true           schema:             type: string         - name: description           in: query           description: task description           required: true           schema:             type: string        responses:         # Response code         200:            description: Successful response           # A schema describing your response object.           # Use JSON Schema format           schema:               title: Return String               type: string               example: "Task added succesfully"         500:           description: Error           schema:              type: string             example: "Could not add Task" 
like image 715
Jacob Brauchler Avatar asked Jun 24 '15 17:06

Jacob Brauchler


People also ask

How do you pass multiple parameters in swagger?

If you are trying to send a body with multiple parameters, add an object model in the definitions section and refer it in your body parameter, see below (works with editor.swagger.io):

How do you specify optional parameters in swagger?

You can use the default key to specify the default value for an optional parameter. The default value is the one that the server uses if the client does not supply the parameter value in the request. The value type must be the same as the parameter's data type.


1 Answers

I'm not sure to understand your question...

  • If you are trying to define more than one body parameter for one operation, you can't. As explained in swagger specification:

Body [...] there can only be one body parameter

  • If you are trying to send a body with multiple parameters, add an object model in the definitions section and refer it in your body parameter, see below (works with editor.swagger.io):

Your example nodes also are wrong, see here for more details.

swagger: '2.0' info:   version: "0.0.1"   title: Todo App host: localhost:3000 schemes:   - http   - https consumes:   - application/json produces:   - application/x-www-form-urlencoded basePath: / paths:   # This is a path endpoint. Change it.   /tasks:     post:       description: |         Add 'Task' object.       parameters:         - name: task            in: body           description: task object           required: true           schema:             $ref: '#/definitions/Task'       responses:         200:           description: Successful response           schema:               title: Return String               type: string               example: "Task added succesfully"         500:           description: Error           schema:              type: string             example: "Could not add Task" definitions:   Task:     description: Task object     properties:       name:         type: string         description: task object name       description:         type: string         description: task description     required:       - name       - description 
like image 143
Nelson G. Avatar answered Sep 21 '22 01:09

Nelson G.