You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The new API is a Ship Of Theseus. To answer to the paradox of what is the identity of v1, and when the API is "the new API", we're going to define it functionally. The API is v1 once it meets all the requirements below.
The requirements below are in prioritized order. Each requirement is blocked by some of the preceding requirements. A requirement is completed once all the issues labelled with it's label are completed.
Requirements:
1. API /v1 is fully implemented with this NestJS based repo, featuring all endpoints
The API still uses the old API for many endpoint. Each of these must be implemented.
Issues for an endpoint shall be labelled with endpoint
2. API /v1 has an accurate OpenAPI / (=Swagger) document (v3)
This requirement is blocked by the above requirement, because the old API uses Swagger v2, which is incompatible with v3. NestJS uses Swagger v3.
On top of this, the Swagger document should be accurate. This needs some development, and each issue shall be labelled with swagger.
3. API /v1 is refactored, removing hacks and tricks API /v0 had
There are quite many ugly things in the old API. They should be fixed before stabilizing the API. They will require backward incompatible changes to the API.
Issues for refactoring shall be labelled with bw-breaking-refactoring or hack.
4. API /v1 is stable: no breaking changes are introduced
Once all the above requirements are completed, we can call the API /v1 and declare so publicly. /v0 could just redirect to /v1, because we never promised stability for it.
The text was updated successfully, but these errors were encountered:
What is API /v1?
The new API is a Ship Of Theseus. To answer to the paradox of what is the identity of
v1
, and when the API is "the new API", we're going to define it functionally. The API isv1
once it meets all the requirements below.The requirements below are in prioritized order. Each requirement is blocked by some of the preceding requirements. A requirement is completed once all the issues labelled with it's label are completed.
Requirements:
1. API
/v1
is fully implemented with this NestJS based repo, featuring all endpointsThe API still uses the old API for many endpoint. Each of these must be implemented.
Issues for an endpoint shall be labelled with
endpoint
2. API
/v1
has an accurate OpenAPI / (=Swagger) document (v3
)This requirement is blocked by the above requirement, because the old API uses Swagger
v2
, which is incompatible withv3
. NestJS uses Swaggerv3
.On top of this, the Swagger document should be accurate. This needs some development, and each issue shall be labelled with
swagger
.3. API
/v1
is refactored, removing hacks and tricks API/v0
hadThere are quite many ugly things in the old API. They should be fixed before stabilizing the API. They will require backward incompatible changes to the API.
Issues for refactoring shall be labelled with
bw-breaking-refactoring
orhack
.4. API /v1 is stable: no breaking changes are introduced
Once all the above requirements are completed, we can call the API
/v1
and declare so publicly./v0
could just redirect to/v1
, because we never promised stability for it.The text was updated successfully, but these errors were encountered: