API Design

API Design – Bestämma en URI för filtrering av data

När ett API ska designas är ett vanligt use case att hämta information från det bakomliggande systemet. I det enklaste fallet kan vi sätta upp en resurs, med tydligt innehåll, som kan anropas för att hämta alla instanser av resursen. GET /airplanes Detta anrop ska då ge en kollektion av instansen airplane, med alla som …

API Design – Bestämma en URI för filtrering av data Läs mer »

HATEOAS

Akronymen HATEOAS (Hypermedia As The Engine Of Application State) är en del av REST-arkitekturen som syftar till att en klient ska kunna hitta de resurser den behöver i ett API genom hyperlänkar i svaret från servern. Det motsvaras av nivå 3 i Richardsons mogenhetsmodell för REST-API:er (https://en.wikipedia.org/wiki/Richardson_Maturity_Model).  Som exempel kan vi ta användningsfallet att boka …

HATEOAS Läs mer »

API Autentisering

Autentisering är processen för att validera att en användare är den den utger sig för att vara.Detta är första steget i varje säkerhets process.Det finns en uppsjö av olika metoder för att säkerställa autentisering. Här nedan följer några av de vanligaste. Lösenord Basic Authentication Token/Keys JWT OAuth 1,2 Certifikat TLS/mTLS Basic Authentication Klienten skickar med …

API Autentisering Läs mer »

Versionshantering av API’er

Ett naturligt steg inom API-Management bör innefatta versionshantering. Ämnet går ofta ihop med dokumentation och namnstandard men i stora drag brukar man separera versionhantering i integrationsbrytande samt icke-integrationsbrytande ändringar. Integrationsbrytande versionshanteringVanligen en major up-version (v1 –> v2) Exempel på ”integrationsbrott”: Ett byte i anropet / svarets typ (integer –> float) Avveckling av delar av API’et …

Versionshantering av API’er Läs mer »

Begränsa inte ditt REST API till CRUD

Ibland hamnar man i den obekväma situationen att tvingas gå utanför CRUD ramarna i sin API design. Enkelt beskrivet har man ett behov som inte handlar om att skapa eller uppdatera ett attribut inom resursen. I vårt exempel med flygplan har vi tex följande URI:er för att hämta/skapa/uppdatera en resurs: POST https://api.topapi.se/api/airplanes/ GET https://api.topapi.se/api/airplanes/{airplaneId} PUT …

Begränsa inte ditt REST API till CRUD Läs mer »