Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standaardiseren API Lifecycle Management #622

Open
dvh opened this issue Mar 25, 2024 · 2 comments
Open

Standaardiseren API Lifecycle Management #622

dvh opened this issue Mar 25, 2024 · 2 comments
Labels
WG: Normatieve rules issues regarding the normative part of the API design rules
Milestone

Comments

@dvh
Copy link
Collaborator

dvh commented Mar 25, 2024

Het enige dat de NL API Strategie nu zegt over de lifecycle van een API is hoe om te gaan met versioning. Echter, hoe om te gaan met (aangekondigde) deprecations en retirements van APIs tijdens de end-of-life phase van een API, wordt niet belicht. Bij DSO wordt gebruik (misbruik) gemaakt van de Warning reponse header (zie ook issue #177), maar zij zijn op zoek naar een alternatief vanwege hun migratie naar de NL API Strategie.

Voor het gebruik van response headers verwijs ik graag naar een best practice die hier specifiek voor bedoeld is, namelijk de Deprecation en Sunset headers zoals beschreven in https://blog.axway.com/learning-center/apis/api-management/api-lifecycle-management-deprecation-and-sunsetting en issue #225.

Los van deze headers is er ook nog de mogelijkheid om de huidige phase van een API met een OAS extensie aan te geven. Onze Italiaanse collega's gebruiken bijvoorbeeld x-status in het info object om aan te geven in welke fase de API zich bevindt: active, deprecated, sunset or retired.

Voor (potentiele) API consumers is het van belang om dit ergens terug te kunnen vinden. Vanuit developer.overheid.nl (DON) zouden wij deze informatie bijvoorbeeld kunnen gebruiken om het register up to date te houden. Het is dan m.i. ook niet de bedoeling dat er APIs verwijderd worden uit het register als deze uitgefaseerd zijn.

Praktijkvoorbeeld: een bepaalde API werkte opeens niet meer. Wat bleek, de hele organisatie was opgeheven. Consumers gebruiken DON om meer info over deze API te vinden, maar volgens DON was deze online. Alternatief was om hem te verwijderen, maar dan had de consumer hem überhaupt niet kunnen vinden. Ander alternatief was om zelf een status "inactief" te verzinnen, maar deze statussen beleg ik dan liever bij het kennisplatform.

Ik stel voor dat we een topic in de API Strategie opnemen over de technische en niet-technische best practices omtrent API lifecycle management, en hieruit de uitfasering van APIs specifiek. Indien gewaardeerd schrijf ik zelf een eerste voorstel ;-)

@mrtn78 mrtn78 added this to the ADR v2.1.0 milestone Apr 25, 2024
@mrtn78
Copy link
Collaborator

mrtn78 commented Apr 25, 2024

@dvh vandaag in het formele Technisch Overleg van de API Design Rules besloten om voor de volgende versie 2.1 ook dit onderwerp te adresseren. Hiervoor is eerder een analyse gedaan van de best practices die ook in de eDelivery API zijn opgenomen. Zie ook issue #468

indien gewaardeerd kunnen we dit ook samen oppakken ;-)

@mrtn78 mrtn78 added the WG: Normatieve rules issues regarding the normative part of the API design rules label Apr 25, 2024
@dvh
Copy link
Collaborator Author

dvh commented May 9, 2024

Ik ben er in ieder geval wel geïnteresseerd in, dus als ik een keer ergens kan en mag aansluiten dan graag. Met developer.overheid.nl kunnen we dan wellicht alvast voorsorteren op de uitkomst. Overigens loopt deze discussie ook nog in Italië en bij OpenAPI zelf, dus lijkt me goed om daar ook naar te kijken indien dat nog niet het geval is ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WG: Normatieve rules issues regarding the normative part of the API design rules
Projects
None yet
Development

No branches or pull requests

2 participants