Dokumentation af Web API

Et af formålene med Køservicen web servicen er at eksperimentere med, hvorledes en REST web service med fordel kan designes. Af denne grund er der mulighed for at nedenstående Web API løbende ændres.

Baseadresse: https://www.oiorest.dk/queueservice/v1

Resource URI Method Repræsentation Status Beskrivelse Rolle med rettighed
Ejere /owners GET XML beskrevet i owners.xsd 200, 405, 500 Modtag liste over ejere/td> Alle
Ejer /owners/{ownersid}

GET XML beskrevet i owner.xsd 200, 404, 405, 500 Modtag ejer Alle
  /my
GET XML beskrevet i owner.xsd 200, 401, 404, 405, 500 Modtag ejer Ejer
  /my PUT Ingen 200, 403, 405,  500 Opret/Tilmeld ejer Alle
  /my DELETE Ingen 200, 401, 403, 405, 500 Slet/Frameld ejer Ejer
Køer /owners/{ownerid}/queues

/my/queues
GET XML beskrevet i queues.xsd 200,
401, 405, 500
Modtag en ejers køer Medlemmer
/my/queues/{queueid} GET XML beskrevet i queue.xsd 200,
401, 404, 405, 500
Modtag oplysninger om kø Ejer
    PUT Ingen 200, 401, 403, 405, 500 Opret kø Ejer
    DELETE Ingen 200, 401, 403, 405,  500 Slet kø. Skal være tømt for beskeder. Ejer
Køtyper /queuetypes GET XML beskrevet i queuetypes.xsd 200, 405, 500 Modtag en liste over køtyper Alle
Beskeder /my/queues/{queueid}/messages GET XML beskrevet i messages.xsd 200,
401, 403, 405, 500
Modtag en liste over køens beskeder Ejer
Besked /owners/{ownerid}/queues/{queueid}/messages/{messageid}

/my/queues/{queueid}/messages/{messageid}
GET XML beskrevet i message.xsd 200, 401, 403, 404, 405, 500 Modtag beskeden Ejer
    DELETE Ingen  200, 401,  403, 405, 500 Fjern beskeden fra køen. Forsæt indtil der er modtaget et svar. Ejer
DokumentId /owners/{ownerid}/queues/{queueid}/newdocumentid

/my/queues/{queueid}/newdocumentid
GET XML beskrevet i documentid.xsd 200,
401, 405, 500
Modtag et dokumentid, som anvendes til at tilføje et dokument i et medlems kø. Medlemmer
Dokument /my/queues/{queueid}/messages/{messageid}/document
GET Dokumenttypen afhænger af mediatype angivet af  køtypen 200, 401, 403, 404, 405, 500 Modtag dokumentet Ejer
  /owners/{ownerid}/queues/{queueid}/messages/{messageid}/document PUT Dokumenttypen afhænger af mediatype angivet af  køtypen 200, 401, 400,  405, 500 Tilføj et dokument I køen. Forsæt indtil der er returneret et succesfuldt svar. Brug resourcen DokumentId til at modtage en gyldig URL til dokumentet. Medlemmer
Feed /my/feed GET Atom Syndication Format 200, 403, 405, 500 Modtag samlet liste over modtagne beskeder fra alle køer Ejer

Ownerid

Ownerid er en lettere modificeret udgave subject serial number fra ejerens OCES certifikat, som er maksimalt 64 tegn. Modifikationen består af at ":" er erstattet af "_" for at gøre ownerid URL-venlig.

my

/my er en kort skrivemåde for /owners/{ownerid}, hvor {ownerid} er ownerid for den aktuelle autentificerede bruger.

Roller

Køservicen anvender tre roller: alle, medlemmer og ejere. Alle er ejere af et OCES certifikat. Medlemmer er ejere af et OCES certifikat, som har tilmeldt sig Køservicen. Tilmeldingen fore går ved at foretage et "PUT" på /owners/{ownerid} eller på /my. Herefter har ejeren mulighed for at oprette køer, som andre medlemmer kan sende dokumenter til. En ejer er et medlem af køservicen, som har oprettet sine private køer, som andre medlemmer kan sende til, men som kun ejeren kan læse (GET) og slette (DELETE) fra.

Statuskoder

Alle statuskoder er inkluderet i HTTP Status header.De anvendte statuskoder er :

  • 200: Success (upon a successful GET, PUT, or DELETE request)
  • 400: Resource Invalid (improperly formatted request)
  • 401: Unauthorized (incorrect or missing authentication credentials)
  • 403: Forbidden
  • 404: Resource Not Found
  • 405: Method Not Allowed
  • 406: Not Acceptable
  • 500: Application Error

På vegne af

Trustede consumers har mulighed for at tilgå køservicen på vegne af andre. En trusted consumer er typisk et web site, som på vegne af en af deres authentificerede brugere, tilgår brugerens data. Der skal etableres et trust-forhold/aftale mellem køservicen og web sitet før web sitet kan opfattes som en trusted consumer.

Den trustede consumer autentificerer sig over for køservicen vha. et OCES certifikat, som alle andre serviceaftagere. Hvilken bruger, den trustede consumer handler på vegne af, angives vha. en http header i følgende format:

X-On-Behalf-Of: {SSN},{CN}

SSN og CN er henholdsvis Subject Serial Number og Common Name fra brugerens OCES certifikat.

Http headere anvender US-ASCII tegnsættet. {SSN},{CN} skal derfor URL encodes i UTF-8 (som beskrevet i RFC 2616) for at tegnene æ, ø, å, Æ, Ø og  Å  samt reserverede tegn uden problemer kan kommunikeres.

Testcertifikater

Til autentifikation overfor køservicen anvendes OCES certifikater. Hvis du ikke vil anvende dit eget, kan du anvende testcertifikater fra certifikat.dk. Hovedparten af testcertifikaterne er oprettet som medlemmer af køservicen. Det ikke spærrede virksomhedscerifikat med Common Name: "TDC TOTALLØSNINGER A/S - TDC Test" er registreret som trusted consumer.