@@ -24,25 +24,28 @@ You must follow the <<api-first, API First Principle>>, more specifically:
2424[#101]
2525== {MUST} provide API specification using OpenAPI
2626
27- We use the http://swagger.io/specification/[OpenAPI specification] as standard
28- to define API specification files. API designers are required to provide the API
29- specification using a single *self-contained YAML* file to improve readability.
30- We encourage to use *OpenAPI 3.0* version, but still support *OpenAPI 2.0*
31- (a.k.a. Swagger 2).
32-
33- The API specification files should be subject to version control using a source
34- code management system - best together with the implementing sources.
35-
36- You <<192, must / should publish>> the component <<219, external / internal>>
37- API specification with the deployment of the implementing service, and, hence,
38- make it discoverable for the group via our {api-portal}[API Portal (internal_link)].
39-
40- *Hint:* A good way to explore *OpenAPI 3.0/2.0* is to navigate through the
41- https://openapi-map.apihandyman.io/[OpenAPI specification mind map] and use
42- our https://plugins.jetbrains.com/search?search=swagger+Monte[Swagger Plugin
43- for IntelliJ IDEA] to create your first API. To explore and validate/evaluate
44- existing APIs the https://editor.swagger.io/[Swagger Editor] or our
45- https://apis.zalando.net[API Portal] may be a good starting point.
27+ We use the standard provided by the https://www.openapis.org/[OpenAPI Initiative]
28+ to define API specifications. API designers are required to provide the API
29+ specification using a single self-contained YAML file for better readability.
30+ We encourage using https://swagger.io/specification/[OpenAPI 3.1 version],
31+ especially for new APIs. The API specification files should be subject to version
32+ control using a source code management system, and you <<192>>.
33+
34+ *Hint:* Our API infrastructure does not break, but might not yet fully support
35+ all OpenAPI 3.1 changes (e.g. displaying `examples` in Sunrise), and continues
36+ supporting OpenAPI 3.0 (and 2.0, aka Swagger 2).
37+
38+ *Hint:* The _OpenAPI 3.1 mayor change_ is that Schema Object definitions are now
39+ fully compliant with standard JSON Schema. It is an incompatible change since
40+ OpenAPI-specific overrides and keywords like `example`, `nullable`, `discriminator`, `xml`
41+ are removed from the Schema Object (see
42+ https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0[OpenAPI Blog: Migrating from OpenAPI 3.0 to 3.1]).
43+ Check out the https://github.com/OAI/OpenAPI-Specification/releases[OpenAPI release page]
44+ for all change details.
45+
46+ *Hint:* You might find the https://openapi-map.apihandyman.io/[OpenAPI Map]
47+ a helpful tool supporting UI navigation for the OpenAPI 3.0 specification.
48+ (Newer OpenAPI versions are not yet supported.)
4649
4750*Hint:* We do not yet provide guidelines for https://graphql.org/[GraphQL]
4851and focus on resource oriented HTTP/REST API style (and related tooling
0 commit comments