Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
dokumentation_der_restful_api_version_1 [2015-10-22 00:43] Christian erstellt |
dokumentation_der_restful_api_version_1 [2018-11-07 18:04] (aktuell) admin Titel gefixt |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Dokumentation der RESTful API Version 1 ====== | ||
- | ====== Authentifizierung und Sicherheit ====== | + | Eine allgemeine Beschreibung der RESTful API finden Sie unter [[apis]]. |
+ | |||
+ | |||
+ | ===== Authentifizierung und Sicherheit ===== | ||
Die Authentifizierung erfolgt per Basic-HTTP-Auth mit Nutzername und | Die Authentifizierung erfolgt per Basic-HTTP-Auth mit Nutzername und | ||
Zeile 8: | Zeile 12: | ||
- | ====== Datentypen, Encoding ====== | + | ===== Datentypen, Encoding ===== |
- | POST-Parameter werden mit dem MIME-Type <code>application/x-www-form-urlencoded</code> | + | POST-Parameter werden mit dem MIME-Type ''application/x-www-form-urlencoded'' |
- | formatiert und mit <code>UTF-8</code> kodiert übergeben. | + | formatiert und mit ''UTF-8'' kodiert übergeben. |
- | Antworten werden als JSON (Mime-Type <code>application/json</code>) formatiert und | + | Antworten werden als JSON (Mime-Type ''application/json'') formatiert und |
- | mit <code>UTF-8</code> kodiert übertragen. | + | mit ''UTF-8'' kodiert übertragen. |
- | ====== Verhalten im Fehlerfall ====== | + | ===== Verhalten im Fehlerfall ===== |
+ | ==== Genutzte HTTP-Statuscodes ==== | ||
- | ===== Genutzte HTTP-Statuscodes ===== | ||
+ | * ''300 Multiple Choices'': Mehrere Versionen der angeforderten Ressource verfügbar | ||
+ | * ''301 Moved Permanently'': Zugriff ohne SSL mit Weiterleitung auf HTTPS | ||
+ | * ''401 Unauthorized'': Authentifizierungsfehler | ||
+ | * ''404 Not Found'': Resource nicht gefunden | ||
+ | * ''405 Method Not Allowed'': Unzulässige HTTP-Methode | ||
+ | * ''450 Rate Limit Exceeded'': Request-Limit wurde erreicht | ||
+ | * ''451 Invalid Input'': Falsche oder fehlende Parameter | ||
+ | * ''500 Internal Server Error'': Ein serverseitiger Fehler ist aufgetreten | ||
+ | * ''503 Service Unavailable'': API ist auf Grund von Wartungsarbeiten temporär nicht erreichbar | ||
- | * <code>300 Multiple Choices</code>: Mehrere Versionen der angeforderten Ressource verfügbar | ||
- | * <code>301 Moved Permanently</code>: Zugriff ohne SSL mit Weiterleitung auf HTTPS | ||
- | * <code>401 Unauthorized</code>: Authentifizierungsfehler | ||
- | * <code>404 Not Found</code>: Resource nicht gefunden | ||
- | * <code>405 Method Not Allowed</code>: Unzulässige HTTP-Methode | ||
- | * <code>450 Rate Limit Exceeded</code>: Request-Limit wurde erreicht | ||
- | * <code>451 Invalid Input</code>: Falsche oder fehlende Parameter | ||
- | * <code>500 Internal Server Error</code>: Ein serverseitiger Fehler ist aufgetreten | ||
- | * <code>503 Service Unavailable</code>: API ist auf Grund von Wartungsarbeiten temporär nicht erreichbar | ||
- | + | ==== Aufbau einer Antwort ==== | |
- | ===== Aufbau einer Antwort ===== | + | |
* Root-Objekt | * Root-Objekt | ||
- | * <code>"error"</code>-Objekt mit folgenden Elementen | + | * ''"error"''-Objekt mit folgenden Elementen |
- | * <code>"status"</code>: Integer, entspricht HTTP-Status | + | * ''"status"'': Integer, entspricht HTTP-Status |
- | * <code>"code"</code>: Maschinenlesbare Bezeichnung des Fehlers | + | * ''"code"'': Maschinenlesbare Bezeichnung des Fehlers |
- | * <code>"message"</code>: Beschreibung des Fehlers | + | * ''"message"'': Beschreibung des Fehlers |
- | * <code>"invalid"</code>: Für 451, optional. Liste ungültiger Eingabeparameter | + | * ''"invalid"'': Für 451, optional. Liste ungültiger Eingabeparameter |
- | * Beispiel: <code>["mileage", "fuel"]</code> | + | * Beispiel: ''["mileage", "fuel"]'' |
- | * <code>"missing"</code>: Für 451, optional. Liste fehlender Eingabeparameter | + | * ''"missing"'': Für 451, optional. Liste fehlender Eingabeparameter |
- | * Beispiel: <code>["year", "month"]</code> | + | * Beispiel: ''["year", "month"]'' |
- | * <code>"options"</code>: Für 300: Assoziatives Array von Auswahlmöglichkeiten | + | * ''"options"'': Für 300: Assoziatives Array von Auswahlmöglichkeiten |
- | * Beispiel: <code>'model' => ['ModelA', 'ModelB']</code> | + | * Beispiel: '''model' => ['ModelA', 'ModelB']'' |
- | * <code>"url"</code>: Für 300: URL-Template mit Platzhaltern für die in <code>options</code> gelisteten Möglichkeiten | + | * ''"url"'': Für 300: URL-Template mit Platzhaltern für die in ''options'' gelisteten Möglichkeiten |
- | * Beispiel (gekürzt): <code>https://.../calculate/1234/abc?...&model={model}</code> | + | * Beispiel (gekürzt): ''https://.../calculate/1234/abc?...&model={model}'' |
- | ===== Beispiel ===== | + | ==== Beispiel ==== |
- | <code>GET /brand/42 | + | <code> |
+ | GET /brand/42 | ||
</code> | </code> | ||
- | <code>{ | + | |
+ | <code> | ||
+ | { | ||
"error": { | "error": { | ||
"status": 404, | "status": 404, | ||
Zeile 68: | Zeile 74: | ||
</code> | </code> | ||
- | ====== URLs ====== | + | ===== URLs ===== |
- | ===== Allgemeines ===== | + | ==== Allgemeines ==== |
- | Prefix: <code>/api/v1</code> | + | Prefix: ''/api/v1'' |
Die folgenden URLs werden an den Prefix angehangen. Die zu verwendende HTTP-Methode zum Zugriff ist | Die folgenden URLs werden an den Prefix angehangen. Die zu verwendende HTTP-Methode zum Zugriff ist | ||
Zeile 83: | Zeile 88: | ||
- | ===== Übersicht ===== | + | ==== Übersicht ==== |
Funktionen aus SoapServer2: | Funktionen aus SoapServer2: | ||
- | * calcCar: <code>GET /calculate/{hsn}/{tsn}</code> | + | * calcCar: ''GET /calculate/{hsn}/{tsn}'' (kostenpflichtig, wird gezählt und abgerechnet) |
- | * getColors: <code>GET /colors</code> | + | * getColors: ''GET /colors'' |
- | * getFeatureList: <code>GET /features</code> | + | * getFeatureList: ''GET /features'' |
Funktionen aus autofokus24Tree: | Funktionen aus autofokus24Tree: | ||
- | * getMakes: <code>GET /brands</code> | + | * getMakes: ''GET /brands'' |
- | * getModels: <code>GET /brands/{brand_id}/models</code> | + | * getModels: ''GET /brands/{brand_id}/models'' |
- | * getSubmodels: <code>GET /models/{model_id}/submodels</code> | + | * getSubmodels: ''GET /models/{model_id}/submodels'' |
- | * getBuldtypes: <code>GET /submodels/{submodel_id}/bodies</code> | + | * getBuildtypes: ''GET /submodels/{submodel_id}/bodies'' |
- | * getMotors: <code>GET /submodels/{submodel_id}/bodies/{body_id}/engines</code> | + | * getMotors: ''GET /submodels/{submodel_id}/bodies/{body_id}/engines'' (bedingt kostenpflichtig, falls kein Folgeaufruf von getFokusCodes erfolgt) |
- | * getFokuscodes: <code>GET /submodels/{submodel_id}/bodies/{body_id}/engines/{engine_id}/editions</code> | + | * getFokuscodes: ''GET /submodels/{submodel_id}/bodies/{body_id}/engines/{engine_id}/editions'' (kostenpflichtig, wird gezählt und abgerechnet) |
Für eine spätere Version geplante Funktionen: | Für eine spätere Version geplante Funktionen: | ||
- | * <code>GET /brands/{brand_id}</code> | + | * ''GET /brands/{brand_id}'' |
- | * <code>GET /models/{model_id}</code> | + | * ''GET /models/{model_id}'' |
- | * <code>GET /submodels/{submodel_id}</code> | + | * ''GET /submodels/{submodel_id}'' |
- | * <code>GET /submodels/{submodel_id}/bodies/{body_id}</code> | + | * ''GET /submodels/{submodel_id}/bodies/{body_id}'' |
- | * <code>GET /submodels/{submodel_id}/bodies/{body_id}/engines/{engine_id}</code> | + | * ''GET /submodels/{submodel_id}/bodies/{body_id}/engines/{engine_id}'' |
- | * <code>GET /submodels/{submodel_id}/bodies/{body_id}/engines/{engine_id}/editions/{edition_id}</code> | + | * ''GET /submodels/{submodel_id}/bodies/{body_id}/engines/{engine_id}/editions/{edition_id}'' |
- | ===== GET /colors ===== | + | ==== GET /colors ==== |
- | + | === Beschreibung === | |
- | ==== Beschreibung ==== | + | |
Zeile 118: | Zeile 122: | ||
- | ==== Beispiel ==== | + | === Beispiel === |
- | <code>GET /api/v1/colors | + | <code> |
+ | GET /api/v1/colors | ||
</code> | </code> | ||
- | <code>{ | + | |
+ | <code> | ||
+ | { | ||
"wht": "weiss", | "wht": "weiss", | ||
"red": "rot", | "red": "rot", | ||
Zeile 131: | Zeile 138: | ||
</code> | </code> | ||
- | ===== GET /features ===== | + | ==== GET /features ==== |
- | + | === Beschreibung === | |
- | ==== Beschreibung ==== | + | |
Zeile 141: | Zeile 147: | ||
- | ==== Beispiel ==== | + | === Beispiel === |
- | <code>GET /api/v1/features | + | <code> |
+ | GET /api/v1/features | ||
</code> | </code> | ||
- | <code>{ | + | |
+ | <code> | ||
+ | { | ||
"GAS": "Gasantrieb", | "GAS": "Gasantrieb", | ||
"ELE": "Elektromotor", | "ELE": "Elektromotor", | ||
Zeile 154: | Zeile 163: | ||
</code> | </code> | ||
- | ===== GET /brands ===== | + | ==== GET /brands ==== |
- | ==== Beschreibung ==== | + | === Beschreibung === |
Zeile 164: | Zeile 172: | ||
- | ==== Beispiel ==== | + | === Beispiel === |
- | <code>GET /api/v1/brands | + | <code> |
+ | GET /api/v1/brands | ||
</code> | </code> | ||
- | <code>{ | + | |
+ | <code> | ||
+ | { | ||
"brands": { | "brands": { | ||
"1": "Alfa Romeo", | "1": "Alfa Romeo", | ||
Zeile 180: | Zeile 191: | ||
</code> | </code> | ||
- | ===== GET /brands/{brand_id}/models ===== | + | ==== GET /brands/{brand_id}/models ==== |
- | + | === Beschreibung === | |
- | ==== Beschreibung ==== | + | |
Zeile 191: | Zeile 201: | ||
- | ==== Parameter ==== | + | === Parameter === |
In der URL übergeben: | In der URL übergeben: | ||
- | * <code>brand_id</code>: ID der Marke | + | * ''brand_id'': ID der Marke |
Im Query-String übergeben: | Im Query-String übergeben: | ||
- | * <code>year</code>: Jahr der Erstzulassung | + | * ''year'': Jahr der Erstzulassung |
- | * <code>month</code>: Monat der Erstzulassung | + | * ''month'': Monat der Erstzulassung |
- | ==== Fehler ==== | + | === Fehler === |
- | * <code>404 BRAND_NOT_FOUND</code>: Marke nicht gefunden | + | * ''404 BRAND_NOT_FOUND'': Marke nicht gefunden |
- | ==== Beispiel ==== | + | === Beispiel === |
- | <code>GET /api/v1/brands/37/models?year=2015&month=5 | + | <code> |
+ | GET /api/v1/brands/37/models?year=2015&month=5 | ||
</code> | </code> | ||
- | <code>{ | + | |
+ | <code> | ||
+ | { | ||
"models": { | "models": { | ||
"850": "Amarok", | "850": "Amarok", | ||
Zeile 226: | Zeile 239: | ||
</code> | </code> | ||
- | ===== GET /models/{model_id}/submodels ===== | + | ==== GET /models/{model_id}/submodels ==== |
- | + | === Beschreibung === | |
- | ==== Beschreibung ==== | + | |
Zeile 237: | Zeile 249: | ||
- | ==== Parameter ==== | + | === Parameter === |
In der URL übergeben: | In der URL übergeben: | ||
- | * <code>model_id</code>: ID des Modells | + | * ''model_id'': ID des Modells |
Im Query-String übergeben: | Im Query-String übergeben: | ||
- | * <code>year</code>: Jahr der Erstzulassung | + | * ''year'': Jahr der Erstzulassung |
- | * <code>month</code>: Monat der Erstzulassung | + | * ''month'': Monat der Erstzulassung |
- | ==== Fehler ==== | + | === Fehler === |
- | * <code>404 MODEL_NOT_FOUND</code>: Modell nicht gefunden | + | * ''404 MODEL_NOT_FOUND'': Modell nicht gefunden |
- | ==== Beispiel ==== | + | === Beispiel === |
- | <code>GET /api/v1/models/864/submodels?year=2015&month=5 | + | <code> |
+ | GET /api/v1/models/864/submodels?year=2015&month=5 | ||
</code> | </code> | ||
- | <code>{ | + | |
+ | <code> | ||
+ | { | ||
"submodels": { | "submodels": { | ||
"1191": "Modell ab 2010", | "1191": "Modell ab 2010", | ||
Zeile 270: | Zeile 285: | ||
</code> | </code> | ||
- | ===== GET /submodels/{submodel_id}/bodies ===== | + | ==== GET /submodels/{submodel_id}/bodies ==== |
- | ==== Beschreibung ==== | + | === Beschreibung === |
Zeile 280: | Zeile 294: | ||
- | ==== Parameter ==== | + | === Parameter === |
In der URL übergeben: | In der URL übergeben: | ||
- | * <code>submodel_id</code>: ID der Baureihe | + | * ''submodel_id'': ID der Baureihe |
Im Query-String übergeben: | Im Query-String übergeben: | ||
- | * <code>year</code>: Jahr der Erstzulassung | + | * ''year'': Jahr der Erstzulassung |
- | * <code>month</code>: Monat der Erstzulassung | + | * ''month'': Monat der Erstzulassung |
- | ==== Fehler ==== | + | === Fehler === |
- | * <code>404 SUBMODEL_NOT_FOUND</code>: Submodell nicht gefunden | + | * ''404 SUBMODEL_NOT_FOUND'': Submodell nicht gefunden |
- | ==== Beispiel ==== | + | === Beispiel === |
- | <code>GET /api/v1/submodels/1191/bodies?year=2015&month=5 | + | <code> |
+ | GET /api/v1/submodels/1191/bodies?year=2015&month=5 | ||
</code> | </code> | ||
- | <code>{ | + | |
+ | <code> | ||
+ | { | ||
"bodies": { | "bodies": { | ||
"42": { | "42": { | ||
Zeile 319: | Zeile 336: | ||
</code> | </code> | ||
- | ===== GET /submodels/{submodel_id}/bodies/{body_id}/engines ===== | + | ==== GET /submodels/{submodel_id}/bodies/{body_id}/engines ==== |
- | + | === Beschreibung === | |
- | ==== Beschreibung ==== | + | |
Zeile 330: | Zeile 346: | ||
- | ==== Parameter ==== | + | === Parameter === |
In der URL übergeben: | In der URL übergeben: | ||
- | * <code>submodel_id</code>: ID der Baureihe | + | * ''submodel_id'': ID der Baureihe |
- | * <code>body_id</code>: ID der Aufbauvariante | + | * ''body_id'': ID der Aufbauvariante |
Im Query-String übergeben: | Im Query-String übergeben: | ||
- | * <code>year</code>: Jahr der Erstzulassung | + | * ''year'': Jahr der Erstzulassung |
- | * <code>month</code>: Monat der Erstzulassung | + | * ''month'': Monat der Erstzulassung |
- | ==== Fehler ==== | + | === Fehler === |
- | * <code>404 SUBMODEL_NOT_FOUND</code>: Submodell nicht gefunden | + | * ''404 SUBMODEL_NOT_FOUND'': Submodell nicht gefunden |
- | * <code>404 BODY_NOT_FOUND</code>: Aufbau nicht gefunden | + | * ''404 BODY_NOT_FOUND'': Aufbau nicht gefunden |
- | ==== Beispiel ==== | + | === Beispiel === |
- | <code>GET /api/v1/submodels/1191/bodies/42/engines?year=2015&month=5 | + | <code> |
+ | GET /api/v1/submodels/1191/bodies/42/engines?year=2015&month=5 | ||
</code> | </code> | ||
- | <code>{ | + | |
+ | <code> | ||
+ | { | ||
"engines": { | "engines": { | ||
"6590": { | "6590": { | ||
Zeile 378: | Zeile 397: | ||
</code> | </code> | ||
- | ===== GET /submodels/{submodel_id}/bodies/{body_id}/engines/{engine_id}/editions ===== | + | ==== GET /submodels/{submodel_id}/bodies/{body_id}/engines/{engine_id}/editions ==== |
- | ==== Beschreibung ==== | + | === Beschreibung === |
Zeile 389: | Zeile 408: | ||
- | ==== Parameter ==== | + | === Parameter === |
In der URL übergeben: | In der URL übergeben: | ||
- | * <code>submodel_id</code>: ID der Baureihe | + | * ''submodel_id'': ID der Baureihe |
- | * <code>body_id</code>: ID der Aufbauvariante | + | * ''body_id'': ID der Aufbauvariante |
- | * <code>engine_id</code>: ID des Motors | + | * ''engine_id'': ID des Motors |
Im Query-String übergeben: | Im Query-String übergeben: | ||
- | * <code>year</code>: Jahr der Erstzulassung | + | * ''year'': Jahr der Erstzulassung |
- | * <code>month</code>: Monat der Erstzulassung | + | * ''month'': Monat der Erstzulassung |
- | ==== Fehler ==== | + | === Fehler === |
- | * <code>404 SUBMODEL_NOT_FOUND</code>: Submodell nicht gefunden | + | * ''404 SUBMODEL_NOT_FOUND'': Submodell nicht gefunden |
- | * <code>404 BODY_NOT_FOUND</code>: Aufbau nicht gefunden | + | * ''404 BODY_NOT_FOUND'': Aufbau nicht gefunden |
- | * <code>404 ENGINE_NOT_FOUND</code>: Motor nicht gefunden | + | * ''404 ENGINE_NOT_FOUND'': Motor nicht gefunden |
- | ==== Beispiel ==== | + | === Beispiel === |
- | <code>GET /api/v1/submodels/1191/bodies/42/engines/6590/editions?year=2015&month=5 | + | <code> |
+ | GET /api/v1/submodels/1191/bodies/42/engines/6590/editions?year=2015&month=5 | ||
</code> | </code> | ||
- | <code>{ | + | |
+ | <code> | ||
+ | { | ||
"editions": { | "editions": { | ||
"84795": { | "84795": { | ||
Zeile 423: | Zeile 445: | ||
"hsn": "0603", | "hsn": "0603", | ||
"tsn": "AQH", | "tsn": "AQH", | ||
- | "other_tsns": [ | + | "other_tsns": [] |
- | "AQH", | + | |
- | "AYF", | + | |
- | "BDC" | + | |
- | ] | + | |
}, | }, | ||
"85195": { | "85195": { | ||
Zeile 433: | Zeile 451: | ||
"hsn": "0603", | "hsn": "0603", | ||
"tsn": "AYF", | "tsn": "AYF", | ||
- | "other_tsns": [ | + | "other_tsns": [] |
- | "AQH", | + | |
- | "AYF", | + | |
- | "BDC" | + | |
- | ] | + | |
}, | }, | ||
... | ... | ||
Zeile 444: | Zeile 458: | ||
</code> | </code> | ||
- | ===== GET /calculate/{hsn}/{tsn} ===== | + | ==== GET /calculate/{hsn}/{tsn} ==== |
- | + | === Beschreibung === | |
- | ==== Beschreibung ==== | + | |
Gibt zu einer angegebenen HSN und TSN entsprechende Preisschätzungen, Ausstattung und weitere | Gibt zu einer angegebenen HSN und TSN entsprechende Preisschätzungen, Ausstattung und weitere | ||
- | Grundinformationen zurück. Da der Parameter <code>free_text</code> sehr lang werden kann, darf diese Funktion | + | Grundinformationen zurück. Da der Parameter ''free_text'' sehr lang werden kann, darf diese Funktion |
- | auch per <code>POST</code> abgerufen werden. | + | auch per ''POST'' abgerufen werden. |
- | ==== Parameter ==== | + | === Parameter === |
Zeile 465: | Zeile 478: | ||
In der URL übergeben: | In der URL übergeben: | ||
- | * <code>hsn</code>: Herstellerschlüsselnummer | + | * ''hsn'': Herstellerschlüsselnummer |
- | * <code>tsn</code>: Typschlüsselnummer | + | * ''tsn'': Typschlüsselnummer |
Im Query-String übergeben: | Im Query-String übergeben: | ||
- | * <code>year</code>: Jahr der Erstzulassung | + | * ''year'': Jahr der Erstzulassung |
- | * <code>month</code>: Monat der Erstzulassung | + | * ''month'': Monat der Erstzulassung |
- | * <code>mileage</code>: Laufleistung in km, ehemals <code>miles</code> | + | * ''mileage'': Laufleistung in km, ehemals ''miles'' |
* Optionale Parameter: | * Optionale Parameter: | ||
- | * <code>free_text</code>: Beliebiger Fließtext zur Auswertung mit Einfluss auf die Bewertung, ehemals <code>fuzzyText</code> | + | * ''free_text'': Beliebiger Fließtext zur Auswertung mit Einfluss auf die Bewertung, ehemals ''fuzzyText'' |
- | * <code>model</code>: Modellbezeichnung | + | * ''model'': Modellbezeichnung |
- | * <code>edition</code>: Ausstattungsvariante / Sondermodell, ehemals <code>specialModel</code> | + | * ''edition'': Ausstattungsvariante / Sondermodell, ehemals ''specialModel''; die Schreibweise des Sondermodells ist der Funktion ''.../editions'' zu entnehmen |
- | * <code>equipment</code>: Aufzählung der Ausstattungsmerkmale, ehemals <code>featureList</code> | + | * ''equipment'': Aufzählung der Ausstattungsmerkmale, ehemals ''featureList'' |
- | * <code>color</code>: Kurzbezeichnung der Farbe | + | * ''color'': Kurzbezeichnung der Farbe |
- | * <code>power</code>: Motorleistung in KW | + | * ''power'': Motorleistung in KW |
- | * <code>fuel</code>: Kraftstoff | + | * ''fuel'': Kraftstoff |
- | * <code>body</code>: Aufbau, ehemals <code>buildType</code> | + | * ''body'': Aufbau, ehemals ''buildType'' |
- | * <code>doors</code>: Anzahl Türen, ehemals <code>doorCount</code> | + | * ''doors'': Anzahl Türen, ehemals ''doorCount'' |
- | * <code>dealer_type</code>: Unternehmensart, ehemals <code>dealerSize</code> | + | * ''dealer_type'': Unternehmensart, ehemals ''dealerSize'' |
- | * <code>price_range</code>: durchschnittliche Preisklasse des Händlers, ehemals <code>priceClass</code> | + | * ''price_range'': durchschnittliche Preisklasse des Händlers, ehemals ''priceClass'' |
- | * <code>stock_size</code>: durchschnittlicher Fahrzeugbestand, ehemals <code>carVolume</code> | + | * ''stock_size'': durchschnittlicher Fahrzeugbestand, ehemals ''carVolume'' |
- | * <code>guarantees</code>: üblicherweise angebotene Garantieleistungen, ehemals <code>garantieValue</code> | + | * ''guarantees'': üblicherweise angebotene Garantieleistungen, ehemals ''garantieValue'' |
- | * <code>idle_time</code>: Standzeit zur Berechnung der Verkaufswahrscheinlichkeiten in <code>sales_probability</code>, ehemals <code>monthWaitForSell</code> | + | * ''idle_time'': Standzeit zur Berechnung der Verkaufswahrscheinlichkeiten in ''sales_probability'', ehemals ''monthWaitForSell'' |
- | * <code>yearly_mileage</code>: Jährliche Laufleistung in km, ehemals <code>milesPerYear</code> | + | * ''yearly_mileage'': Jährliche Laufleistung in km zur Berechnung der Restwertprognose in ''degeneration'', ehemals ''milesPerYear'' |
- | * <code>estimated_life</code>: Geplante Nutzungsdauer in Jahren, ehemals <code>usageYearCount</code> | + | * ''estimated_life'': Geplante Nutzungsdauer in Jahren zur Berechnung der Restwertprognose in ''degeneration'', ehemals ''usageYearCount'' |
- | ==== Fehler ==== | + | === Fehler === |
- | * <code>300 MULTIPLE_MODELS</code>: Mehrere zutreffende Modelle gefunden | + | * ''300 MULTIPLE_MODELS'': Mehrere zutreffende Modelle gefunden |
- | * <code>404 NOT_FOUND</code>: HSN oder TSN nicht gefunden | + | * ''404 NOT_FOUND'': HSN oder TSN nicht gefunden |
- | * <code>404 NOT_FOUND_IN_TIMESPAN</code>: HSN oder TSN im angegebenen Zeitraum nicht gefunden | + | * ''404 NOT_FOUND_IN_TIMESPAN'': HSN oder TSN im angegebenen Zeitraum nicht gefunden |
Für letzteren Fehler werden ein oder zwei zusätzliche Felder zurückgegeben: | Für letzteren Fehler werden ein oder zwei zusätzliche Felder zurückgegeben: | ||
- | <code>build_since</code> und <code>build_until</code>. Beispiel: | + | ''build_since'' und ''build_until''. Beispiel: |
- | <code>{ | + | <code> |
+ | { | ||
"error": { | "error": { | ||
"status": 404, | "status": 404, | ||
Zeile 513: | Zeile 527: | ||
</code> | </code> | ||
- | ==== Beispiel ==== | + | === Beispiel === |
- | <code>GET /api/v1/calculate/0603/aqh?year=2015&month=5&mileage=10000&idle_time=2&color=wht | + | <code> |
+ | GET /api/v1/calculate/0603/aqh?year=2015&month=5&mileage=10000&idle_time=2&color=wht | ||
</code> | </code> | ||
- | <code>[ | + | |
+ | <code> | ||
+ | [ | ||
{ | { | ||
"hsn": "0603", | "hsn": "0603", | ||
Zeile 559: | Zeile 576: | ||
"19250": 68, | "19250": 68, | ||
... | ... | ||
- | } # Ehemals "avgSellingTimes" | + | }, # Ehemals "avgSellingTimes" |
+ | "degeneration": [ | ||
+ | 19655, | ||
+ | 19343, | ||
+ | 19035, | ||
+ | ... | ||
+ | ] | ||
}, | }, | ||
... | ... | ||
- | </code> ] | + | ] |
+ | </code> | ||