openapi: 3.0.2
info:
  version: '1.0'
  title: Server Variables
  description: >
    Various ways to define API servers in the spec including variables

    ```yaml
      servers:
        - url: 'http://example.com/api'
          description: Test server (just for example)
        - url: '/api'
        - url: '{protocol}://dev.com/api/{version}'
          variables:
            protocol:
              description: Protocol (with enum)
              default: https
              enum:
                - http
                - https
            version:
              description: API Version (without enum)
              default: v1
        - url: '{protocol}://{environment}.example.com/{version}'
          variables:
            environment:
              default: api    # Production server
              description: >
                Server choices:
                * `api` Production (this is the default).
                * `api.qa` QA server.
                * `api.dev` Development server.
              enum:
                - api      # Production server
                - api.dev  # Development server
                - api.qa   # Testing server
            protocol:
              default: https
              enum:
                - http
                - https
            version:
              default: v2
              enum:
                - v1
                - v2
    ```
servers:
  - url: 'http://example.com/api'
    description: Test server (just for example)
  - url: '/api'
  - url: '{protocol}://dev.com/api/{version}'
    variables:
      protocol:
        description: Protocol (with enum)
        default: https
        enum:
          - http
          - https
      version:
        description: API Version (without enum)
        default: v1
  - url: '{protocol}://{environment}.example.com/{version}'
    variables:
      environment:
        default: api    # Production server
        description: >
          Server choices:
           * `api` Production (this is the default).
           * `api.qa` QA server.
           * `api.dev` Development server.
        enum:
          - api      # Production server
          - api.dev  # Development server
          - api.qa   # Testing server
      protocol:
        default: https
        enum:
          - http
          - https
      version:
        default: v2
        enum:
          - v1
          - v2
paths:
  /server-variables:
    get:
      summary: Server Variable.
      discription: Computed server url should be shown against `API SERVER`.
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    description: Person Name
                    type: string
                  age:
                    description: Person Age
                    type: integer