Skip to content

KundenWebservice

Allgemein

Dieser Webservice ermöglicht es Endkunden sich im MVP anzumelden..

Versionierung

Diese Dokumentation beschreibt die Version 1.1

Version
1.0 deprecated
1.1 Änderungen 1.1

Platzhalter

Auf dieser Seite werden folgende Platzhalter verwendet welche abhängig vom Consumer ersetzt werden müssen:

Platzhalter Beschreibung
${mandant} Kürzel des Mandanten
${version} Versionsnummer der Schnittstelle
${pfad-sts} Pfad zum Authentifizierungsserver
${pfad} Die Basis URL der Schnittstelle
${knr} Die Kundennummer
${Auth} Alle HTTP-Header zwecks der Authentifizierung mittels Token
${*-Id} Bezieht sich auf die Id eines Speziellen Objektes

HTTP-Header

Allen Parametern welche im HTTP-Header übertragen werden und nicht zu einem offiziellen Standard gehören oder zweckentfremdet wurden MUSS der Präfix X-Dio- voran gestellt werden.

Basis URL

Die Basis URL der Schnittstelle ist wie folgt aufgebaut:
https://www.maklerinfo.biz/service/${mandant}/customer/${version}/rest

Authentifizierung

Die Authentifizierung, sowie das Anfordern eines neuen Passwortes, werden im Artikel KundenWebservice - Authentifizierung beschrieben

Funktionen

Name HTTP Eingabe Ausgabe
getKunde GET ${pfad}/{$knr} JSON Objekt Kunde
setKunde PUT ${pfad}/{$knr} JSON Objekt Kunde
getBetreuer GET ${pfad}/{$knr}/betreuer JSON Objekt Betreuer
setPasswort PUT ${pfad}/{$knr}/passwort JSON Objekt PasswortAenderung
getVertraege GET ${pfad}/{$knr}/vertraege JSON ArrayOf Vertrag
setVertrag PUT ${pfad}/{$knr}/vertraege/${Vertrag-Id} JSON Vertrag
addVertrag POST ${pfad}/{$knr}/vertraege/ JSON Vertrag JSON Vertrag
getVertraegsliste GET ${pfad}/{$knr}/vertraegsliste JSON ArrayOf VertragBasis
getVertragsspiegelPdf GET ${pfad}/{$knr}/vertraege/vertragsspiegel.pdf PDF
getVertragKuendigungsPdf GET ${pfad}/{$knr}/vertraege/${Vertrag-Id}/kuendigung-${kuendigungsgrund}.pdf PDF
getVertragSchadensinformationen GET ${pfad}/{$knr}/vertraege/${Vertrag-Id}/schadensinformationen JSON VertragSchadensinformationen
getAdressen GET ${pfad}/{$knr}/adressen JSON ArrayOf Adresse
setAdresse PUT ${pfad}/{$knr}/adressen/${Adresse-Id} JSON Adresse
addAdresse POST ${pfad}/{$knr}/adressen/ JSON Adresse JSON Adresse
deleteAdresse DELETE ${pfad}/{$knr}/adressen/${Adresse-Id}
getAngebote GET ${pfad}/{$knr}/angebote JSON ArrayOf Angebot
getKontaktdaten GET ${pfad}/{$knr}/kontaktdaten JSON ArrayOf Kontaktdatensatz
addKontaktdatensatz POST ${pfad}/{$knr}/kontaktdaten JSON Kontaktdatensatz JSON Kontaktdatensatz
setKontaktdatensatz PUT ${pfad}/{$knr}/kontaktdaten/${Kontaktdatensatz-Id} JSON Kontaktdatensatz
deleteKontaktdatensatz DELETE ${pfad}/{$knr}/kontaktdaten/${Kontaktdatensatz-Id}
getSessions GET ${pfad}/{$knr}/sessions JSON ArrayOf Session
deleteSession DELETE ${pfad}/{$knr}/sessions/${Session-Id}
getMaklervertragvorlageText GET ${pfad}/{$knr}/maklervertragvorlage.txt TEXT
getMaklervollmachtvorlagePdf GET ${pfad}/{$knr}/maklervertragvorlage.pdf PDF
getMaklervollmachtvorlageText GET ${pfad}/{$knr}/maklervollmachtvorlage.txt TEXT
createMaklervollmachtSignierungsvorgang POST ${pfad}/{$knr}/maklervollmacht/_signieren/nepatec JSON NepatecVorgang
sendMaklervollmachtSignierungslink POST ${pfad}/{$knr}/maklervollmacht/_signieren/link JSON SendeUnterschrifftenlinkAuftrag JSON Meldungen
getMaklervertragvorlagePdf GET ${pfad}/{$knr}/maklervollmachtvorlage.pdf PDF
getDokument GET ${pfad}/{$knr}/dokumente/${Dokument-Art}/${Dokument-Id}.${Dokument-Typ} BINARY
getDokumente GET ${pfad}/{$knr}/dokumente/ JSON ArrayOf ArchivDokument
addDokument POST ${pfad}/{$knr}/dokumente/ BINARY JSON ArchivDokument
sendDokument POST ${pfad}/{$knr}/dokumente/send/ JSON ArchivEintrag
setDokument PUT ${pfad}/{$knr}/dokumente/${Dokument-Art}/${Dokument-Id}.${Dokument-Typ} JSON ArchivDokument
deleteDokument DELETE ${pfad}/{$knr}/dokumente/${Dokument-Art}/${Dokument-Id}.${Dokument-Typ}
getNotificationCredentials GET ${pfad}/{$knr}/notificationcredentials/ JSON NotificationCredentials
setNotificationCredentials POST ${pfad}/{$knr}/notificationcredentials/ JSON NotificationCredentials
getBankingAccounts GET ${pfad}/{$knr}/bankkonten JSON ArrayOf Bankkonto
Statische Listen
getAnreden GET ${pfad}/anreden JSON ArrayOf EnumerationItem
getAdresstypen GET ${pfad}/adresstypen JSON ArrayOf EnumerationItem
getLeander GET ${pfad}/laender JSON ArrayOf EnumerationItem
getSparten GET ${pfad}/sparten JSON ArrayOf EnumerationItem
getZahlweisen GET ${pfad}/zahlweisen JSON ArrayOf EnumerationItem
getVertragsstatus GET ${pfad}/vertragsstatus JSON ArrayOf EnumerationItem
getKuendigungsgruende GET ${pfad}/kuendigungsgruende JSON ArrayOf EnumerationItem
getKontaktarten GET ${pfad}/kontaktarten JSON ArrayOf EnumerationItem
getRechnerKategorien GET ${pfad}/rechnerkategorien JSON ArrayOf EnumerationItem
Kundenspezifische Listen
getGesellschaften GET ${pfad}/${knr}/gesellschaften JSON ArrayOf EnumerationItem
getRechner GET ${pfad}/${knr}/rechner JSON ArrayOf EnumerationItemRechner
getDokumentOrdner GET ${pfad}/${knr}/dokumentordner JSON ArrayOf EnumerationItemGesellschaft

getKunde

Gibt die Stammdaten des Kunden zurück, sowie Links zu weiteren Ressourcen.

Beispiel

Request:

POST ${pfad}/${knr} HTTP/1.1
Host: www.maklerinfo.biz
${Auth}
Content-Length: 0
Connection: close

Response (formatiert):

HTTP/1.1 200 OK
Last-Modified: Thu, 10 Sep 2015 13:30:31 GMT
Cache-Control: private, must-revalidate, max-age=3600
Content-Type: application/json
Connection: close

{
    "Id": "${knr}",
    "Anrede": "1",
    "Person": {
        "Typ": "natuerlich",
        "Vorname": "Max",
        "Nachname": "Mustermann",
        "Geburtsdatum": "1980-08-01",
        "Beruf": "Tester",
        "Fachrichtung": "Tests"
    },
    "MaklervertragVorlage": {
        "Pdf": "${pfad}\/${knr}\/maklervertragvorlage.pdf",
        "Text": "${pfad}\/${knr}\/maklervertragvorlage.txt"
    },
    "Maklervertrag": {
        "Uri": "${pfad}\/${knr}\/dokumente\/ee40d0ff51.pdf",
        "Name": "Maklervertrag Neu - Maklervertrag vom 10.09.2015",
        "Typ": "pdf",
        "Datum": "2015-09-10T11:56:10"
    },
    "Adressen": "${pfad}\/${knr}\/adressen",
    "Kontaktdaten": "${pfad}\/${knr}\/kontaktdaten",
    "Vertraege": "${pfad}\/${knr}\/vertraege",
    "Angebote": "${pfad}\/${knr}\/angebote",
    "Dokumente": "${pfad}\/${knr}\/dokumente",
    "Sessions": "${pfad}\/${knr}\/sessions",
    "Betreuer": "${pfad}\/${knr}\/betreuer"
}

setKunde

Folgende Daten dürfen vom Kunden geändert werden:

  • Anrede
  • Person/Nachname bzw. Firma (Falls es leer ist)
  • Person/Vorname (Falls es leer ist)
  • Person/Geburtsdatum bzw. Gruendungsdatum
  • Person/Beruf bzw. Branche
  • Person/Fachrichtung

setPasswort

Ändert das passort des Kunden.

getVertraege

Gibt die Verträge des Kunden zurück.

setVertrag

Über diese Funktion können die Konto-/Adressdaten geändert werden. Bei einer Kontoänderung oder Adressänderung wird immer die Versicherungsgesellschaft & der betreuende Vermittler informiert.
☛ Attribute, welche nicht bearbeitet werden dürfen, werden stillschweigend ignoriert

addVertrag

☛ Zulässige Werte für Status sind [F, X]
Foldende Parameter sind Pflichtfelder:

  • Status
  • Sparte
  • Gesellschaft

getVertraegsliste

Gibt eine Liste mit Basisinformationen über die Verträge des Kunden zurück. Es ist zum Abrufen der Liste des Vertrags beim Hinzufügen eines Dokuments verwendet.

/*==== getVertragsspiegelPdf ====*/

getVertragKuendigungsPdf

Der Kündigungsgrund im Pfad bezieht sich auf ein EnumValue von getKuendigungsgruende.

getAdressen

Gibt der Adressen des Kunden zurück.

setAdresse

☛ Der Typ beim Hauptwohnsitz darf nicht geändert werden.
☛ Der Typ bei einer anderen Adresse darf nicht auf hauptwohnsitz geändert werden.
Es wird immer der Betreuer über die Änderung informiert. Für alle Verträge, welche mit der Adresse verknüpft sind werden die Gesellschaften informiert.

addAdresse

☛ Der Typ der neuen Adresse darf nicht hauptwohnsitz sein.

deleteAdresse

☛ Die zu löschende Adresse darf nicht vom Typ hauptwohnsitz sein.

getAngebote

Gibt die gespeicherten Angebote des Kunden zurück.

/*==== getKontaktdaten ====*/

addKontaktdatensatz

Berücksichtigt werden:

  • Kontext
  • Typ
  • Value

setKontaktdatensatz

Berücksichtigt werden:

  • Value
  • Standard

/*==== deleteKontaktdatensatz ====*/

getSessions

Gibt die offenen Sitzungen des Kunden zurück.

deleteSession

Beendet die im HTTP-Pfad übergebene Session. Die Session darf nicht die derzeit verwendete sein.

getMaklervertragvorlageText

Liefert die Vorlage für den Maklervertrag in BB-Code formatierten Text

getMaklervertragvorlagePdf

Liefert die Vorlage für den Maklervertrag als PDF.

createMaklervollmachtSignierungsvorgang

Erzeugt einen neuen Vorgang bei Nepatec zum Unterschreiben der Maklervollmacht.

addDokument

Fügt ein neues Dokument dem Ordner "Meine Uploads" hinzu.
Über den Suffix name im Content-Type-Header kann der Name des Dokuments angegeben werden.
Im HTTP-Body befinden sich die Rohdaten des Dokuments.
☛ Über den HTTP-Header X-Dio-Autokonvertierung: pdf kann das Dokument automatisch zu einem PDF konvertiert werden falls es sich um ein Bild handelt

...
Content-Type: application/pdf; name="Lorem Ipsum.pdf"

%PDF...

...
Content-Type: image/jpeg; name="Lorem Ipsum.jpg"
X-Dio-Autokonvertierung: pdf

[BINARY]

sendDokument

sendet ein Dokument aus einem Archiveintrag an den Kunden

setDokument

Es wird nur Name aus dem ArchivDokument berücksichtig.
Die Funktion darf nur für Dokument im Ordner "Meine Uploads" durchgeführt werden.

{
    "Name": "Lorem Ipsum dolor"
}

deleteDokument

Die Funktion darf nur für Dokument im Ordner "Meine Uploads" durchgeführt werden.

getNotificationCredentials

Liefert die benötigten Daten um dem Kunden Push-Notifications zu schicken.

setNotificationCredentials

Setzt die benötigten Daten um dem Kunden Push-Notifications zu schicken.

/*==== getAnreden ====

getAdresstypen

getLeander

*/

getBankingAccounts

Gibt die Bankkonten des Kunden zurück, welche mit seinen Verträgen verknüpft sind.

Beispiel

Request:

GET ${pfad}/${knr}/bankkonten HTTP/1.1
Host: www.maklerinfo.biz
${Auth}

Response (formatiert):

HTTP/1.1 200 OK
Content-Type: application/json
Connection: close

[{
        "Bankkonto": {
            "IBAN": "DE27100777770209299700",
            "BIC": "NORSDE51XXX",
            "Bankname": "Bank XY",
            "Inhaber": {
                "Abweichend": true,
                "Vorname": "Max",
                "Nachname": "Mustermann",
                "Geburtsdatum": "1980-01-12",
                "Strasse": "Steinweg 123",
                "Postleitzahl": "12099",
                "Ort": "Berlin",
                "Land": "de"
            }
        },
        "Vertraege": [{
                "Versicherungsscheinnummer": "VSN1234567890"
            }, {
                "Versicherungsscheinnummer": "VSN0987654321"
            }]
    }]

getSparten

Liste der verfügbaren Versicherungssparten.

Beispiel

Request:

GET ${pfad}/sparten
Host: www.maklerinfo.biz
${Auth}

Response (formatiert):

HTTP/1.1 200 OK
Content-Type: application/json
Connection: close

[{
        "Value": "A01",
        "Text": "Sparte 1"
    }, {
        "Value": "B02",
        "Text": "Sparte 2"
    }
]

/*==== getZahlweisen ====*/

getVertragsstatus

Liste der Vertragsstatus.

/*==== getKuendigungsgruende ====

getKontaktarten

getRechnerKategorien

*/

getGesellschaften

Liste der Versicherungsgesellschaften.

getRechner

Liste der verfügbaren Vergleicchsrechner.

Fehlerbehandlung

Über den Erfolg eines Aufrufes gibt der HTTP-Status-Code im Header der Antwort aufschluss. Ist eine Aktion erfolgreich wird i.d.R der code 200 (OK) zurückgegeben. Falls ein Fehler aufgetreten ist und die Ursache beim Client liegt, wird mit einem der 4xx codes geantwortet, liegt die Ursache beim Server mit 500 (Internal Server Error). Liegt der Fehler beim Anwender wird zusätzlich im HTTP-Body ein JSON-Objekt mit den anzuzeigenden Meldungen ausgegeben, falls nicht wird eine standard HTML-Fehlerseite ausgegeben.

Beispiel

HTTP/1.1 400 Bad Request
Content-Length: 75
Content-Type: application/json
Connection: close

{
    "Meldungen": [
        "Das neue Passwort muss aus mindestens 6 zeichen bestehen."
    ]
}

Datentypen

SimpleTypes

Name Basis-Typ Anmerkung
DateTime string Als Format bei der Eingabe können Alle gängigen Datumsformatierungen angegeben werden welche automatisiert aufgelöst werden können, die unterstützten Formate können Sie unter php.net einsehen. Sofern ein offizieller Standard kein anderes Format vorschreibt (zB. HTTP Last-Modified Header) wird das Format YYYY-MM-DDTHH:II:SS zurückgegeben, beziehend auf die Zeitzone Europe/Berlin.
☛ Sollte sich das Gerät in einer anderen Zeitzone befinden, geben Sie diese bei Anfragen an!
Date string Als Format bei der Eingabe können Alle gängigen Datumsformatierungen angegeben werden welche automatisiert aufgelöst werden können, die unterstützten Formate können Sie unter php.net einsehen. Sofern ein offizieller Standard kein anderes Format vorschreibt (zB. HTTP Last-Modified Header) wird das Format YYYY-MM-DD zurückgegeben
Uri string Verweise auf weitere Resoursen innerhalb des Service's
EnumValue string Bezieht sich auf den Schlüßel (Value) eines EnumerationItem's
mixed Kann eine Basistyp wie string o. double sein oder einer aus dieser Liste

UserAgent

Name Typ Anmerkung
type string Art des Gerätes zB. app, pc...
plattform string Betriebssystem zB. Linux, Android...
name string Name der Applikation zB. "Meine App"

EnumerationItem

Name Typ Anmerkung
Value string Schlüßel
Text string Text zur Darstellung

Meldungen

Erfolgs- o. Fehlermeldungen je nach Status

Name Typ Anmerkung
Meldungen ArrayOf string

Kunde

Name Datentyp Beschreibung
Id string
Anrede EnumValue getAnreden
Person Person Beschreibung der Person
MaklervertragVorlage MaklervertragVorlage Fals vorhanden finden sich hier Links zur entsprechenden Vorlage
Maklervertrag Dokument Fals vorhanden finden sich hier Informationen zum unterschriebenen Maklervertrag
MaklervollmachtVorlage MaklervollmachtVorlage Fals vorhanden finden sich hier Links zur entsprechenden Vorlage
Maklervollmacht Dokument Fals vorhanden finden sich hier Informationen zur unterschriebenen Maklervollmacht
Adressen Uri
Kontaktdaten Uri
Vertraege Uri
Angebote Uri
Dokumente Uri
Sessions Uri
Betreuer Uri

Person

Name Datentyp Beschreibung
Typ string "natuerlich" oder "juristisch"
Natürliche Person:
Vorname string
Nachname string
Geburtsdatum Date
Beruf string
Fachrichtung string
Juristische Person:
Firma string
Ansprechpartner string
Gruendungsdatum Date
Branche string

MaklervertragVorlage

Name Datentyp Beschreibung
Pdf Uri Hier Kann die Vorlage des Maklervertrages als Pdf heruntergeladen werden
Text Uri Hier Kann die Vorlage des Maklervertrages als Text heruntergeladen werden

MaklervollmachtVorlage

Name Datentyp Beschreibung
Pdf Uri Hier Kann die Vorlage der Maklervollmacht als Pdf heruntergeladen werden
Text Uri Hier Kann die Vorlage der Maklervollmacht als Text heruntergeladen werden

PasswortAenderung

Name Datentyp Beschreibung
AltesPasswort string Altes Passwort
NeuesPasswort string Neues Passwort, min. 6 Zeichen
NeuesPasswortWiederholung string Neues Passwort Wiederholung

Kontaktdatensatz

Name Datentyp Beschreibung
Uri Uri
Id string
Kontext string private o. business
Typ EnumValue getKontaktarten
Value string
Standard boolean Bevorzugte Adresse je Typ

Vertrag

Name Datentyp Beschreibung
Uri Uri
Id integer
Sparte EnumValue getSparten
Gesellschaft EnumValue getGesellschaften
Versicherungsscheinnummer string
Beitrag Beitrag
Risiko string
Status EnumValue getVertragsstatus
Laufzeit Laufzeit
Neuberechnung string URL um den entsprechenden Rechner aufzurufen
Schadensinformationen Uri
Adresse integer Id der Adresse
Bankkonto Bankkonto
Bearbeitung Vertragsbearbeitung Gibt an, welche Attribute bearbeitet werden dürfen

VertragBasis

Name Datentyp Beschreibung
Id integer
Sparte string Sparte Name
Gesellschaft string Gesellschaft Name
Versicherungsscheinnummer string

VertragSchadensinformationen

Name Datentyp Beschreibung
Ansprechpartner ArrayOf VertragSchadensansprechpartner
Dokumente ArrayOf Dokument

VertragSchadensansprechpartner

Name Datentyp Beschreibung
Anrede string Herr, Frau ...
Vorname string
Telefon string
Fax string
Email string
Position string
Funktionen ArrayOf string Liste der Funktionen welche der Ansprechpartner ausübt
Profilbild string URL zum Profilbild

Beitrag

Name Datentyp Beschreibung
Zahlweise EnumValue getZahlweisen
Netto double
Brutto double
Steuer double

Laufzeit

Name Datentyp Beschreibung
Beginn Date
Ablauf Date

Bankkonto

Name Datentyp Beschreibung
IBAN string
BIC string
Bankname string
Inhaber KontoInhaber

KontoInhaber

Name Datentyp Beschreibung
Abweichend boolean Ist der Kontoinhaber abweichend zum Versicherungsnehmer des Vertrages
Vorname string
Nachname string
Geburtsdatum Date
Strasse string
Postleitzahl string
Ort string
Land EnumValue getLaender

Vertragsbearbeitung

Name Datentyp Beschreibung
Sparte boolean true wenn dieses Attribut bearbeitet werden darf
Gesellschaft boolean true wenn dieses Attribut bearbeitet werden darf
Versicherungsscheinnummer boolean true wenn dieses Attribut bearbeitet werden darf
Status mixed boolean false wenn diese Attribut nicht bearbeitet werden darf, true wenn es mit allen validen werden bearbeitet werden kann, oder Array mit möglichen Werten die gesetzt werden dürfen
Risiko boolean true wenn dieses Attribut bearbeitet werden darf
Laufzeit boolean true wenn dieses Attribut bearbeitet werden darf
Adresse boolean true wenn dieses Attribut bearbeitet werden darf
Bankkonto boolean true wenn dieses Attribut bearbeitet werden darf

Adresse

Name Datentyp Beschreibung
Name Datentyp Beschreibung
Uri Uri
Id integer
Typ EnumValue getAdresstypen
Zusatz string
Strasse string
Postleitzahl string
Ort string
Land EnumValue getLaender

Angebot

Name Datentyp Beschreibung
Id string
Titel string
Rechner EnumValue getRechner
Datum DateTime
Link string URL um den entsprechenden Rechner aufzurufen

Session

Name Datentyp Beschreibung
Uri Uri
Id string
LetzterKontakt DateTime
DerzeitigeSitzung boolean Ist die Session die Derzeitige sitzung
UserAgent UserAgent
Uid string

Betreuer

Firma string Bezeichnung der Firma
ImpressumLink string URL zum Impressum
Nachname string
Logo string URL zum Firmenlogo
Profilbild string URL zum Profilbild
Strasse string
Postleitzahl string
Ort string
Telefon string
Mobil string
Email string

EnumerationItemRechner

Erweitert EnumerationItem um folgende Attribute:

Name Datentyp Beschreibung
Kategorie EnumValue getRechnerKategorien

EnumerationItemGesellschaft

Erweitert EnumerationItem um folgende Attribute:

Name Datentyp Beschreibung
Logo string Pfad zum Gesellschaftslogo

Dokument

Name Datentyp Beschreibung
Uri Uri Hier kann der Inhalt heruntergeladen werden
Id string
Name string Dateiname
Typ string Dateityp
Art string Art des Dokuments archiv, druckstueck..
Datum DateTime Erstellungszeitpunkt

ArchivDokument

Erweitert Dokument um folgende Eigenschaften:

Name Datentyp Beschreibung
Ordner ArrayOf EnumValue getDokumentOrdner
Vertraege ArrayOf Vertrag-Ids
Sparten ArrayOf EnumValue getSparten

ArchivEintrag

Sendet Dokument an Kunden

Name Datentyp Beschreibung
document String Archiveintrag Id

NepatecVorgang

Name Typ Anmerkung
Id string Id des Vorgangs
Login string Nepatec Benutzer-Id
Passwort string Das Passwort zur Benutzer-Id
Link string Direktlink zum Unterschreiben im Browser

NotificationCredentials

Name Typ Anmerkung
Uid string UId des Gerätes
Token string Das token
App string Name der App, z.B. "simplr", ...

SendeUnterschrifftenlinkAuftrag

Name Typ Anmerkung
Kommunikationsweg string optional, sms o. email, default sms
Kommunikationsadresse string optional, abweichender Empfänger

Mime-Types

Name MIME
JSON application/json
Text text/plain
PDF application/pdf
BINARY binärdaten, application/pdf, image/jpeg, ...

Caching

Bestimmte Rückgaben von Funktionen lassen sich cachen.
Wird dies bei einer Funktion unterstützt werden folgende Header zurückgegeben:

Name Datentyp Beschreibung
Cache-Control string "private" oder "public" gibt an ob der Cache sich auf den eingeloggten Kunden bezieht (und somit beim logout gelöscht werden muss) oder ob die Daten auch danach noch bestehen bleiben dürfen
Last-Modified DateTime

Wird der If-Modified-Since Header bei einem weiteren Aufruf übergeben wird dieser mit dem der Datum der letzten Änderung verglichen. Ist dieser kleiner, wird die angeforderte Ressource zurück gegeben, sonst gibt der Service eine leere Antwort mit dem HTTP-Status "304 Not Modified" zurück.

Beispiele

If-Modified-Since: Thu, 10 Sep 2015 13:30:31 GMT
Cache-Control: private, must-revalidate, max-age=3600

HTTP/1.1 304 Not Modified
Last-Modified: Thu, 10 Sep 2015 13:30:31 GMT
Cache-Control: private, must-revalidate, max-age=3600
Content-Length: 0
Connection: close

MultiCall

Es ist möglich mehrere Funktionen in einer Anfrage aufzurufen (Die Funktionen des Token Services sind hiervon ausgeschloßen). Dies kann den erstmaligen Aufbau einer Seite beschleunigen sowie die Abfrage ob sich gecachete Ressourcen verändert haben. In diesem Fall MUSS ein POST-Request auf die URL ${pfad} getätigt werden welches als Content-Type den Wert multipart/related; multipart/related; boundary=MIME_boundary; start="<55f2a57f2fc60>" enthällt (Die Werte für boundary & start dürfen Angepasst werden).

In den jeweiligen Content-Abschnitten MÜSSEN folgende Header vorkommen:

Name Typ Beschreibung
Content-ID string ID des Abschnitts
Method string Die HTTP-Methode welche bei einem normalen Request verwendet worden wäre
Path string Der Pfad welcher bei einem normalen Request verwendet worden wäre

Der Service Antwortet nun ebenfalls mit einem Content-Type multipart/related, der HTTP-Status wird immer 200 OK sein.
Es werden mindestens folgende Header für jeden Content Abschnitt zurückgeliefert:

Name Typ Beschreibung
Content-ID string ID des Abschnitts
Status string Der HTTP-Status welcher bei einem normalen Request zurückgegeben worden wäre
Request-ID string Die entsprechende Content-ID der Anfrage auf welche sich dieser Abschnitt bezieht

Beispiel

Request getKunde & getAdressen:

POST ${pfad} HTTP/1.1
${Auth}
Content-Type: multipart/related; boundary=MIME_boundary; start="<55f2a57d6f824>"
Connection: close

--MIME_boundary
X-Dio-Method: GET
X-Dio-Path: /${knr}
If-Modified-Since: Thu, 10 Sep 2015 13:30:31 GMT
Content-ID: <55f2a57d6f824>

--MIME_boundary
X-Dio-Method: GET
X-Dio-Path: /${knr}/adressen
Content-ID: <55f2a57d6f86b>

--MIME_boundary--

Response (gekürzt):

HTTP/1.1 200 OK
Content-Type: multipart/related; boundary=MIME_boundary; start="<55f2a57f2fc60>"
Connection: close

--MIME_boundary
X-Dio-Request-ID: <55f2a57d6f824>
Last-Modified: Thu, 10 Sep 2015 13:30:31 GMT
Cache-Control: private, must-revalidate, max-age=3600
X-Dio-Status: 304 Not Modified
Content-ID: <55f2a57f2fc60>

--MIME_boundary
X-Dio-Request-ID: <55f2a57d6f86b>
X-Dio-Status: 200 OK
Content-Type: application/json
Content-ID: <55f2a57f2fcb5>

[{"Uri": ... }]

--MIME_boundary--