Livscykelhantering av APIer
Instansstrategi och Versionshantering
Se https://utveckling.sundsvall.se/metoder-och-riktlinjer/regler-och-riktlinjer-for-utveckling-av-apier
Hantera brytande versioner i applikationen
Den bakomliggande applikationen ska fortsätta ha stöd för både den nya och den gamla versionen av API’t även vid brytande förändringar så länge den gamla versionen används.
Ett exempel:
Fältet “facility” ska gå från att vara ett enda objekt till att bli en array (“facilities”). Det blir en brytande förändring eftersom fältet byter namn samt att det blir ett nytt format. Detta kan hanteras i applikationen genom att låta fältet “facility” ligga kvar parallellt med det nya fältet “facilities”. I applikationen krävs ibland en speciell validering under tiden dessa versioner ligger parallellt. Märk ut dessa temporära lösningar med TODO-kommentarer för att enkelt kunna hitta det som behöver uppdateras senare när den gamla versionen tas ur produktion.
Tips för att dölja det gamla fältet “facility” i den nya API-versionen i OpenAPI-specifikationen:
Lägg denna annotation på klassvariabeln:
@Schema(hidden = true)
Hur konfigurerar vi APIer i API Manager?
Version | API Gateway | Token |
Produktion | https://api.sundsvall.se/ (extern) | Produktion |
Test | https://api-test.sundsvall.se/ (extern) https://api-i-test.sundsvall.se/ (intern) | Test |
Sandbox | https://api-test.sundsvall.se/ (extern) https://api-i-test.sundsvall.se/ (intern) | Sandbox |
Test
Konfigureras i API Publisher Test (https://api-im-test.sundsvall.se/publisher/apis).
Sandbox Endpoint skall peka på Sandbox-versionen av mikrotjänsten/applikationen
Production Endpoint skall peka på testversionen av mikrotjänsten/applikationen
Produktion
Konfigureras i API Publisher produktion (https://api-im.sundsvall.se/publisher/apis).
Production Endpoint skall peka på produktionsversionen av mikrotjänsten/applikationen
Länkar
Test
Beskrivning | Länk |
---|---|
DevPortal | |
Publisher | |
Extern API-Gateway | |
Intern API-Gateway |
Produktion
Beskrivning | Länk |
---|---|
DevPortal | |
Publisher | |
Extern API-Gateway | |
Intern API-Gateway |