Is there any spec or convention on URL where one should place swagger.json
(or whatever name it is agreed) so that public API of my site can be automatically discovered?

- 19,847
- 9
- 124
- 140
-
Not that I'm aware of. I would suggest you to submit your suggestion via https://github.com/OAI/OpenAPI-Specification/issues as the convention will be useful to the OpenAPI/Swagger ecosystem. – William Cheng Jan 17 '17 at 08:55
-
@wing328, done - https://github.com/OAI/OpenAPI-Specification/issues/864 – anatoly techtonik Jan 19 '17 at 08:16
3 Answers
Updated 19 April 2017: The OpenAPI Wiki answer I gave previously is "for a very very very old version of the spec". The same source states that for 2.0 the standard is swagger.json
, for 3.0 it changes to openapi.json
.
Original answer:
The OpenAPI Wiki recommends using an
/api-docs
endpoint, at least for server APIs. I've seen several sites in the wild that use that, and it's our shop standard.
Hope that helps.

- 1,071
- 11
- 21
-
@anatolytechtonik Thanks. I stand corrected; will edit the answer. – Jeff Dickey Apr 19 '17 at 05:39
-
3Looks good now. =) But.. it still doesn't give the answer, **where** should one put those files and know where to read them from? – anatoly techtonik Apr 20 '17 at 08:06
How about serving the Swagger JSON in an HTTP response body, in response to an OPTIONS request for the URL / ?
This is specifically permitted by the relevant RFC.
Further, consider implementing HATEOAS, as strongly advocated by Roy Fielding.

- 1
- 1

- 468
- 5
- 13
Okay. OpenAPI 3.0 still lacking auto-discovery mechanism, I try to propose a scheme based on some things that were already working:
https://example.com/.well-known/schema-discovery
is a JSON document pointing to array of available schemas:[ { "schema_url": "/openapi.json", "schema_type": "openapi-3.0" }, { "schema_url": "/v2/openapi.json", "schema_type": "openapi-3.0" } ]
If there is only one version of API, then
https://example.com/openapi.json
should be enough.HTTP Headers. I remember somebody from Google proposed HTTP header for pointing to API. If you can find or remember it, please tell me.

- 19,847
- 9
- 124
- 140