Teknisk guide SDK Adressboks Sök-API
Innehållsförteckning
- 1 1. Inledning
- 1.1 1.1 Målgrupp
- 2 2. Översikt Adressboks-API
- 2.1 2.1 Syfte
- 2.2 2.1 Informationsstruktur
- 2.3 2.2 Adressbok Sök-API
- 2.3.1 2.2.1 API URL
- 2.3.2 2.2.2 Dokumentation
- 2.4 2.3 Adressbok Kodverksregister-API
- 2.4.1 2.3.1 API URL
- 2.4.2 2.3.2 Dokumentation
- 3 3. Rekommendation vid integration och tillämpning av Sök-API
Revisionshistorik
Version | Datum | Kommentar |
---|---|---|
1.0 (2022) | 2022-02-28 | Beslutad version 1.0 för Tjänsten Säker digital kommunikation. |
1.1 (2023) | 2023-02-14 | Uppdateringar: |
1. Inledning
SDK Adressbok:s Sök-API är ett gränssnitt som erbjuder externa system läsåtkomst till information i SDK Adressbok.
Teknisk guide Adressbok API är en del av Regelverk för anslutning till Säker digital kommunikation och framtaget för implementation av integration mot SDK Adressbok från Meddelandetjänst och Meddelandeklient. Guiden förutsätter att målgruppen har kunskap om SDKs övergripande arkitektur och egen implementation av SDKs meddelandelager (Meddelandetjänst) och verksamhetslager (Meddelandeklient).
Denna guide kompletterar existerande API-dokumentation, se “Dokumentation”. API-dokumentationen genereras från källkod och driftsätts som en del av Adressbokens mjukvara. Detta borgar för att API-dokumentationen är aktuell i förhållande till driftsatt API. Vid ändringar med påverkan på API kommer alltså även den tekniska API-dokumentation att ändras.
SDK Adressbok informationsmodell, se SDK Adressbok - Informationsspecifikation, beskriver vilken information som Sök-API:et hanterar.
1.1 Målgrupp
Systemägare
Systemförvaltare
Systemarkitekt
Utvecklingsteam
2. Översikt Adressboks-API
SDK Adressbok är ett gemensamt adressregister innehållande anslutna användarorganisationer och deras adresserbara funktioner. För generell information om SDK Adressbok, se: https://inera.atlassian.net/wiki/spaces/OISDK/pages/2662040113
Adressbokens API:er erbjuder externa system läsåtkomst till information i SDK Adressbok.
2.1 Syfte
Adressbokens API är tänkt att nyttjas av Meddelandeklienter och Meddelandetjänster.
Användningsområdena innefattar:
Sökfunktion i grafiska gränssnitt
Tillhandahålla kodverk som används i SDK Adressbok (kodverk används vid strukturerad sökning)
Kontroll av information för adressering, för sk. “routing” av meddelande i en Meddelandetjänst
Anslutna organisationer har en eller flera administratörskonton för att administrera sina adressuppgifter via adressbokens grafiska gränssnitt (webbklient). Klienten har en öppen del (kräver ej inloggning) genom vilken man kan använda Adressbokens Sök-API, se meny “Sök funktionsadress”.
Länk till grafiskt gränssnitt:
SDK PROD (Produktionsmiljö): https://sdk.inera.se/addressbook/
SDK Testbädd (QA): https://at-sdk.inera.se/addressbook/
2.1 Informationsstruktur
Adressbokens Sök-API är en implementation av SDK Adressbok - Informationsspecifikation som baseras på standarden JSON:API, se JSON:API — A specification for building APIs in JSON.
2.2 Adressbok Sök-API
Adressbokens Sök-API exponerar resurserna “organizations” och “addresses”.
2.2.1 API URL
Miljö | Bas - URL till API |
---|---|
SDK PROD (Produktionsmiljö) | |
SDK Testbädd (QA) | |
SDK ÖTM |
** ersättes med aktuell resurs, ex. “addresses”. Se länkar till dokumentation nedan för komplett information om resurser och operationer.
2.2.2 Dokumentation
Miljö | Länk |
---|---|
SDK PROD (Produktionsmiljö) | |
SDK Testbädd (QA) | |
SDK ÖTM |
2.3 Adressbok Kodverksregister-API
Kodverkets Sök-API exponerar resurserna “codesystems” och “codesystems/<identifier>/codes”.
2.3.1 API URL
Miljö | Bas - URL till API |
---|---|
SDK PROD (Produktionsmiljö) | |
SDK Testbädd (QA) | |
SDK ÖTM |
** ersättes med aktuell resurs, ex. “codesystems”. Se länkar till dokumentation nedan för komplett information om resurser och operationer.
2.3.2 Dokumentation
MIljö | Länk |
---|---|
SDK PROD (Produktionsmiljö) | |
SDK Testbädd (QA) | |
SDK ÖTM |
3. Rekommendation vid integration och tillämpning av Sök-API
Notera att adressbokens API:er är framtagna med direkt integration i åtanke och är anpassade för att hantera stora volymer av samtidiga anrop per sekund. Tanken är inte att klienter skall läsa av informationen och hålla en långlivad lokal cache, eftersom detta medför risk för icke-aktuell information.
Dock kan det finnas behov av att ha information uppläst lokalt för bättre prestanda för att erbjuda användarvänliga funktioner i ett grafiskt gränssnitt, t.ex. “narrowing search”.
Rekommendationen i ett scenario där man utgår från cachad information är att göra ett anrop till adressbokens API från lokal Meddelandetjänst för att kontrollera/uppdatera adresseringsinformation innan meddelandet läggs på utgående Accesspunkt.
3.1 Paginering vid listningsoperationer
Då antalet funktionsadresser (och organisationer) kan bli väldigt stort över tid returneras listoperationer i batcher om 25 svar, s.k. paginering tillämpas.
En klient som vill läsa ner alla förekomster av en resurs behöver således anropa adressbokens API enligt:
antal anrop = totala antalet resurser i systemet / 25
Adressbokens API:er returnerar ett metadatafält “links.next” som indikerar om resultatet är en delmängd av hela mängden. Om länk “next” förekommer finnes ännu en resultatsida (“page”) att läsa ner från servern.
Nedan visas ett exempel (JSON) på metadatafältet “links” vid listning av systemets alla organisationer (resursnamn “organizations”). Genom att nyttja URL i metadata nedan behöver klienten inte själv känna till parametrar (som page[number]
och page[size]
) eftersom servern automatiskt kommer att skapa en ny “next”-länk för varje “page”.
GET /api/addresses
"links" : {
"next" : "http://localhost:3081/api/organizations?page[number]=1&page[size]=25",
"self" : "http://localhost:3081/api/organizations"
}