If the spec doesn’t match the returned object, then shame on the spec writer or 
code writer, whoever came last. The spec is there to document the API.

 

 

From: <[email protected]> on behalf of Abdullah Mourad 
<[email protected]>
Reply-To: "[email protected]" 
<[email protected]>
Date: Thursday, 23 February 2017 at 11:20
To: Swagger <[email protected]>
Subject: Re: how to write the swagger definition for json response

 

On a related note... What would one do if the spec did not match the returned 
object. Is there any way to map between the two, rather than write the spec to 
match the object? 

 

Let's say you have

 

    "definitions": {

       "Foo": {

           "properties": {

               "projectName": {

                   "type": "string"

               }

           },

           "type": "object"

       }

   }

 

And your serverside object come back:

 

"project": 

{

   "projNm": "some name",

   "projId": "some other property",

}

,


Is there anyway to map projectName property to project.projNm from the 
response? How about handling this the other way, when I am given projectName as 
an input and want it converted project.projNm server-side?

 


On Thursday, February 23, 2017 at 10:22:09 AM UTC-8, tony tam wrote: 

I suggest you try out the http://editor.swagger.io to experiment with the 
specification.  But here’s how it could be done: 

 

 

# as a single inline object definition

definitions:

  YourResponse:

    type: object

    properties:

      Data:

        type: object

        properties:

          Login:

            type: array

            items:

              type: object

              properties:

                name:

                  type: string

                  example: Doe

                firstname:

                  type: string

                  example: John

                id:

                  type: integer

                  format: int64

                  example: 461199

                password-expiry-utc:

                  type: integer

                  example: 20170223163054

 

# or in a flatter style using JSON references

definitions:

  YourResponse:

    type: object

    properties:

      Data:

        $ref: '#/definitions/DataObject'

  DataObject:

    type: object

      properties:

        Login:

          type: array

          items:

            $ref: '#/definitions/LoginRequest'

  LoginRequest:

    type: object

    properties:

      name:

        type: string

        example: Doe

      firstname:

        type: string

        example: John

      id:

        type: integer

        format: int64

        example: 461199

      password-expiry-utc:

        type: integer

        example: 20170223163054

 

 

On Feb 23, 2017, at 8:46 AM, BG <[email protected]> wrote:

 

Hi,

 

I have this rather simple json response, in my swagger file I want to write the 
definition that matches the response.

I got stuck - probably because because I am new to swagger.

 

so at the end of the example below i want the definition for this json response

 

{"Data":{"Login":[{"name":"Doe","firstname":"John","id":461199,"passhash-expiry-utc":"20170223163054"}]}}

 

below is how my swagger looks now. Can anyone get my back on track by providing 
an example on how to write the definition?

 

thanks!

 

swagger: '2.0'

info:

 version: ' 1.13.0003.00'

 title: test (Simple)

 description: An API 

  termsOfService: 

  contact:

   name: Contoso

   email: [email protected]

   url: http://mydomain.com

 license:

   name: MIT

   url: http://opensource.org/licenses/MIT

host: mydomain.com

basePath: /api

schemes:

 - http

 - https

consumes:

 - application/json

produces:

 - application/json

paths:

 /login:

   get:

     description: 

        'Returns basis user properties and passhash expiry date/time stamp

       

       as 

        

        
{"Data":{"Login":[{"name":"Doe","firstname":"John","id":461199,"passhash-expiry-utc":"20170223163054"}]}}

       

       '

     operationId: login

     produces:

       - application/json

     parameters:

       - name: pswauth

         in: query

         description: pswauthstring

         required: true

         type: string

     responses: 

        '200':

         description: login response

         schema:

           type: array

           items:

             $ref: '#/definitions/Login'

       'default':

         description: unexpected error

         schema:

           $ref: '#/definitions/errorModel'

definitions:

 errorModel:

   type: object

   required:

     - code

     - message

   properties:

     code:

       type: integer

       format: int32

     message:

       type: string

 Login:

   type: object

   required:

     - code

     - message

   properties:

     code:

       type: integer

       format: int32

     message:

       type: string

 

 

 

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

 

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to