Tjenester
Tjenesteoppsett
Tjenestene i matrikkelAPI-et er delt opp basert på type, med noen spesialtilfeller som unntak. Dette betyr at søk der vi ønsker å hente ut adresser ligger i AdresseService, søk der vi ønsker å hente ut matrikkelenheter ligger i MatrikkelenhetService og så videre.
Unntak er spesialtjenester som StoreService for å hente ut objekter, KodelisteService for å hente ut koder, RapportService for bestilling og uthenting av rapporter og NedlastningService for å laste ned store mengder data.
De alle fleste tjenestemetodene returnerer id-er for det man har søkt på. Man skal så bruke StoreService for å hente ut objekter.
Tjeneste klassifisering.
Vi forholder oss til en inndeling av tjenestene i: <<XService og XOppdateringService>>
Eksempel: AdresseService og AdresseOppdateringService.
- XService håndterer kall som ønsker å hente ut data fra gitt tjeneste.
- XOppdateringService håndterer kall som ønsker og oppdatere eller legge til data.
Typer tjenestemetoder
Tjenestemetodene på de vanlige tjenesteinterfacene kan deles inn i tre typer.
- Søk basert på en sammensatt modell
- Søk for å finne id for en ident
- Inversrelasjonssøk
Beskrivelse av de tre typene følger.
Søk basert på sammensatt modell
Noen søk kan basere seg på input fra mange forskjellige deler av domenet. Det er for disse laget egne tjenestemoder som tar inn søkemodeller som parameter. Eksempel på dette er MatrikkelenhetService sin metode findMatrikkelenheter. Denne metoden tar inn en klasse med navn MatrikkelenhetsokModel som parameter og denne klassen gir oss mulighet til å spesifisere alt fra matrikkelenhetfelter som gårdsnummer og bruksnummer, til koblingsfelter som krav om jordskifte og over til koblede objekter slik at vi kan angi adressenavn og husnummer for en adresse tilknyttet matrikkelenheten, eller etternavnet til en person som har eierforhold på matrikkelenheten. Siden tjenesten ligger på MatrikkelenhetService vet vi at det er MatrikkelenhetId-er som blir returnert fra søket.
Det er laget slike sammensatte søk for adresser, bygg, matrikkelenheter og person i API-et.
Logiske identifikatorer
Under følger en tabell som viser hva som benyttes som logiske identifikatorer for et objekt. Dette kan brukes dersom man for eksempel skal finne id-en til et objekt for så å finne den komplette boblen via StoreService (se kapitlet om StoreService under). Utlistingen under er ment for å gi en rask oversikt over hvilke felt som benyttes for å bygge opp de logiske identifikatorene. For en mer komplett oversikt over hva de forskjellige feltene er henvises det til
implementasjonsmodellen hvor man kan navigere seg inn på hver enkelt identifikator. Ofte er hoved-identifikatoren en abstrakt klasse, da finner man implementasjons-klassen ved å velge Other Links.Eksempel for AdresseIdent (som er av typen Vegadresse eller Matrikkeladresse):



Requesten blir da som følger (merk at vi må angi hva slags adresseIdent vi benytter i dette tilfellet) i f eks findAdresseIdForIdent (denne hadde ingen bokstav):
<adr:adresseIdent
xsi:type="adr1:VegadresseIdent"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<adr1:kommuneIdent>
<kom:kommunenummer>3031</kom:kommunenummer>
</adr1:kommuneIdent>
<adr1:adressekode>14200</adr1:adressekode>
<adr1:nummer>109</adr1:nummer>
</adr:adresseIdent>
| Logisk identifikator | Hvilke felt brukes for å bygge opp den logiske identifikatoren |
|---|---|
| AdresseIdent | Identifikatoren inneholder kommunenummer. Resterende opplysninger som utgjør identifikatoren avhenger om adressen er av typen Vegadresse eller Matrikkeladresse. Oversikt over opplysninger finnes i VegadresseIdent og MatrikkeladresseIdent |
| BrukerIdent | Brukernavnet |
| ForretningIdent | Løpenummeret til forretningen |
| KommuneIdent | Kommunenummer |
| MatrikkeladresseIdent | Gardsnummer, bruksnummer, festenummer samt undernummer |
| MatrikkelenhetIdent | KommuneIdent, gardsnummer, bruksnummer, festenummer og seksjonsnummer |
| PersonIdent | Nummer, fødselsnummer eller organisasjonsnummer avhengig av om personen er av typen AnnenPerson, FysiskPerson eller JuridiskPerson. Merk at alle disse ligger i feltet nummer på Person-objektet. |
| SefrakIdent | Kommunenummer, registreringskretsnummer og et husløpenummer |
| VegadresseIdent | Adressekode, nummer og bokstav |
Søk for å finne id for en ident
Vi kan ikke forvente at brukere av API-et vet hva våre unike id-er er for de forskjellige objektene våre så det er laget tjenester som tar inn en logisk identifikator (se kapitlet over for hvordan de bygges opp) for et objekt og returnerer id-objektet som representerer denne i systemet. Disse tjenestene finnes for alle boblene som har logiske identifikatorer, men ikke for absolutt alle bobler. De boblene som ikke har noen logisk identifikator (som for eksempel en teig, en flate for en matrikkelenhet) vil ikke ha tjenester for å oversette fra logiske identifikatorer til id-er.
Det er laget både entalls og flertalls-versjoner av tjenestemetodene slik at man kan hente ut id-er for mange identer om gangen hvis man ønsker det.
Klasser som har disse tjenestene er eksempelvis Adresse, Veg, Bygg, Forretning, Kommune og Matrikkelenhet.
Inversrelasjonssøk
I modellen kan man alltid navigere via id-koblingene som er laget, men det kan også være tilfeller der man ønsker å gå motsatt vei. Det er i disse tilfellene laget tjenester for å søke opp dette. Eksempelvis kan man i AdresseService søke opp alle adresser for en eller flere veger eller alle adresser for en eller flere bygg. Disse koblingene finnes ikke direkte i modellen nødvendigvis men det er mulig å navigere i modellen for å finne objektene.
Se også Spesielle tjenester for detaljer om StoreService, RapportService, KodelisteService, NedlastningService, EndringsloggService og feilhåndtering.
Se Tjenesteliste for fullstendig oversikt over alle tjenester med WSDL-lenker.