Question
- What do we want to achieve?
- What are possible solutions
- What are the differences of the possible solutions
- What are the proposed solutions
What do we want to achieve
- We want to define our endpoints, payloads and responses
- Tell if it needs auth
- Talk about specific headers
- Generate tests from it
- Data modelling
- Payload
- Params
- Info about the flow
Specification languages
There are a handful worth talking about
Postman’s blogpost is quite certain that OpenAPI is the way to go for the following reasons
- Open source ecosystem
- Tooling agnostic
- ‘won’ the API describing war
OpenAPI has quite a lot of tooling available.
However, RAML is also said to be ‘modelling’ an API whilst OpenAPI is ‘describing’ an API. A distinction of what we would like to do. Since we could describe our API with auto generated specs, it might not be the best fitting solution for us.
That said, I found little information about RAML in general.
Even though Grant really liked API Blueprint, the project is abandoned and didn’t have any meaningful updates in over a year.
TypeSpec seems a worthy contender, especially as it lets you write ‘code’ for OpenAPI Specifications.
OpenAPI Specs
Either json
or yaml
.
RAML
yaml