user2598740
user2598740

Reputation: 151

How do I specify multiple hosts in OpenAPI (Swagger)?

Right now my OpenAPI 2.0 YAML file has only one host URL:

host: petstore.test.com
basePath: /

Can I use multiple hosts like this?

host1: petstore.test.com
host2: petstore1.test.com
host3: petstore2.dev.com

Upvotes: 15

Views: 31811

Answers (2)

Helen
Helen

Reputation: 97687

OpenAPI 2.0 (Swagger 2.0) only supports a single host with multiple schemes (HTTP/HTTPS/etc.), so you can effectively have two hosts that only vary in the scheme:

host: petstore.test.com
schemes:
  - http
  - https

But OpenAPI 3.x supports multiple hosts with different schemes and base paths:

servers:
  - url: https://petstore.prd.com
    description: Production server

  - url: {scheme}://petstore.dev.com/subpath
    description: Development server
    templates:
      scheme:
        enum:
          - http
          - https
        default: https

For more examples, see this answer.

Upvotes: 29

waletoye
waletoye

Reputation: 364

It is now possible in OpenApi 3.0

Here is a description:

Multiple hosts are supported in OpenAPI 3.0. 2.0 supports only one host per API specification (or two if you count HTTP and HTTPS as different hosts). A possible way to target multiple hosts is to omit the host and schema from your specification and serve it from each host. In this case, each copy of the specification will target the corresponding host.

Upvotes: 2

Related Questions