## Headers

S2S-serveren er konfigureret til at kræve et sæt brugerdefinerede headers i hvert HTTP-kald. For at kunne foretage en succesfuld forespørgsel er du ansvarlig for at konfigurere din HTTP-klient til at sende disse headers med dine kald. Dette kapitel giver et overblik over de forventede værdier og mulige fejl, du kan støde på.

Header | Påkrævet | Format
--- | --- | ---
Tinglysning-Message-ID | Ja | uuid:[uuid-v4]
Tinglysning-Relates-To | Nej | String

### Tinglysning-Message-ID

Tinglysningsbeskedens ID er en tilfældigt genereret UUIDv4, som klienten skaber, inden en ny forespørgsel sendes til S2S-endpointet. Denne header bruges til entydigt at identificere hele request-response processen, og derfor er den påkrævet i alle forespørgsler. Den hjælper også begge parter med lettere fejlfinding.

#### Header-struktur

Headeren består af præfikset "uuid:" efterfulgt af en tilfældigt genereret UUIDv4. Headeren må ikke indeholde store bogstaver.

Header-navn | Header-værdi
--- | ---
Tinglysning-Message-ID | uuid:44b147ff-b221-43f7-be45-cdb55f085413

#### Forventede fejl

Hvis headeren ikke angives, kan du forvente HTTP-status `400 Bad Request` med dette XML-svar:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Fejl xmlns="http://rep.oio.dk/tinglysning.dk/schema/fault/1/">
        <ns2:faultcode xmlns="" xmlns:ns2="http://rep.oio.dk/tinglysning.dk/schema/fault/1/">Client</ns2:faultcode>
        <faultstring>Følgende krævede header var ikke tilstede: Tinglysning-Message-ID</faultstring>
    </Fejl>

Hvis headeren har en ugyldig struktur, kan du forvente HTTP-status `400 Bad Request` med dette XML-svar:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Fejl xmlns="http://rep.oio.dk/tinglysning.dk/schema/fault/1/">
        <ns2:faultcode xmlns="" xmlns:ns2="http://rep.oio.dk/tinglysning.dk/schema/fault/1/">Client</ns2:faultcode>
        <faultstring>Det modtagne MessageID er i invalidt format: uuid:ce01bb6d-3479-4975-8ab5-. Et MessageID skal være på formen uuid:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}</faultstring>
    </Fejl>

### Tinglysning-Relates-To

Nogle gange har din applikation brug for at inkludere yderligere referenceinformation i kaldet. Du kan benytte "relates to"-headeren til dette formål. Denne header er ikke påkrævet og forventer en strengværdi.

Header-navn | Header-værdi
--- | ---
Tinglysning-Relates-To | CASE-2024-001

### Content-Type

Alle endpoints forventer, at brugeren leverer deres request body i XML-format. API’et er konfigureret til at modtage XML og vil også svare med XML. Hvis headeren udelades, vil den blive udfyldt automatisk, men du kan også selv sætte den.

Header-navn | Header-værdi
--- | ---
Content-Type | application/xml

#### Forventede fejl

Hvis du angiver en anden værdi, vil forespørgslen blive afvist med HTTP-status `415 Unsupported Media Type` og denne besked:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Fejl xmlns="http://rep.oio.dk/tinglysning.dk/schema/fault/1/">
        <ns2:faultcode xmlns="" xmlns:ns2="http://rep.oio.dk/tinglysning.dk/schema/fault/1/">Client</ns2:faultcode>
        <faultstring>Ikke understøttet Content-Type: 'test/test'. Indstil venligst 'Content-Type'-headeren til 'application/xml'.</faultstring>
    </Fejl>

#### Referenceimplementering

Givet korrekt SSL-kontekst og HTTP-klientopsætning (se Reference OCES implementering), kan du foretage et succesfuldt kald ved at bruge det angivne eksempel fra Java referenceklienten:

    1
    Unresolved directive in headers.adoc - include::{javaDir}/ExampleRequest.java[]