Convert Json reponse in swagger with description

2k views Asked by At

I try to specify the response from GET method with Swagger Editor. But when I look in Swagger UI, the response JSON doesn't show.

My declaration swagger :

 /clients/{id}:
get:
  consumes:
    - application/hal+json
  produces:
    - application/hal+json
  # This is array of GET operation parameters:
  parameters:
    # An example parameter that is in query and is required
    - name: id
      in: path
      required: true
      type: string

  # Expected responses for this operation:
  responses:
    # Response code
    200:
      description: Succes
      # A schema describing your response object.
      # Use JSON Schema format
      schema:
        example:
          application/json: |
            - {"produits":[{"idOffre":{"codeBanque":"038","identifiant":"123"},"idProduit":{"codeBanque":"061","identifiant":"123"}},{"idOffre":{"code":"038","identifiant":"123"},"idProduit":{"code":"061","identifiant":"123"}}]}
    .....

In Swagger UI , the box where is written Response Class (Status 200) > Model Schema there is an empty json like that -> {}

1

There are 1 answers

0
Nelson G. On

I'm not sure swagger-ui supports examples, however I fixed some errors in you swagger extract:

  • example renamed examples
  • examples at same indentation level as schema (in you example, example is processed as a property of the response schema, I'm not sure this is what you want)
  • schema must describe response model, complete TODO

Fixed version:

swagger: '2.0'
info:
  title: Clients
  description: API
  version: "1.0.0"
host: api.test.com
schemes:
  - https
basePath: /v1
produces:
  - application/json
paths:
  /clients/{id}:
    get:
      consumes:
        - application/hal+json
      produces:
        - application/hal+json
      parameters:
        - name: id
          in: path
          required: true
          type: string
      responses:
        200:
          description: Succes
          schema:
            type: array
            items:
              properties:
                produits:
                  type: string
                  description: TODO
          examples:
            application/json: |
                - {"produits":[{"idOffre":{"codeBanque":"038","identifiant":"123"},"idProduit":{"codeBanque":"061","identifiant":"123"}},{"idOffre":{"code":"038","identifiant":"123"},"idProduit":{"code":"061","identifiant":"123"}}]}