Speiseplan-Details abrufen · Bosch API
Speiseplan-Details abrufen
Relevanz laut Confluence unklar; möglicherweise durch Integration API abgelöst.
GET
/Menu?menuCardId={menuCardId}&date={date}Um unnötige Datenlast zu vermeiden unstützt diese Resource ein HTTP-konformes Caching mittels dem ETag Header bei der Response und dem If-None-Match Header bei dem Request. Genaueres hierzu lässt sich u.a. hier nachlesen.
| Property | Beschreibung |
|---|---|
Type |
Gibt den Typ des Speiseplans an: 0 (Tagesaktuell), 1 (Zeitraum), 2 (Unbegrenzt). Für tagesaktuelle Speisepläne soll eine Tagesauswahl für die nächsten WeeksToPreview Wochen die Tage WeekDays angezeigt werden. Bei Speiseplänen mit einem bestimmten Zeitraum definieren ValidFrom und ValidTill die Eckdaten. |
DisplayOptions |
Diese Bitmaske definiert die Darstellung des Speiseplans in der App. |
Date |
Sofern der Query-Parameter date nicht angegeben wird, gibt das Backend den Tag zurück, der angezeigt werden soll. Das muss nicht immer der aktuelle Tag sein, wenn z.B. ab 14 Uhr der Speiseplan vom Folgetag angezeigt werden soll. Für Speisekarten vom Type 1 oder 2 ist dieses Feld nicht gesetzt, da die Daten dieser Typen für mehr als einen Tag verwendet werden können. |
DailyAllergensTime |
Gibt die Uhrzeit an, ab wann Tagesaktuelle Allergene angezeigt werden sollen. Ist dieses Feld null so ist dieses Feature nicht aktiv und die Allergene können immer angezeigt werden. |
EmptyMessage |
Gibt den Text für den EmptyScreen an. Ist dieses Feld null so soll ein in der App hinterlegter Fallback-Text verwendet werden. |
EmptyCategoryMessage |
Gibt den Text für den EmptyScreen einer Kategorie und die Darstellung einer leeren Katerogie in der SectionHeader Version an. Ist dieses Feld null so soll ein in der App hinterlegter Fallback-Text verwendet werden. |
Prices |
Diese Liste enthält alle Preise vom Produkt. Es bietet sich an in der Listenansicht die Label Property und auf der Detailseite die Name Property zu verwenden. |
CustomTags |
Diese Liste enthält alle Produktkennzeichnungen. |
Allergens, Traces |
Diese Listen enthalten die Indizes der enthaltenen Allergene bzw. Spuren. Ist dieses Feld null so soll dieser Abschnitt übersprungen werden – auch wenn die DisplayOptions sie sonst erlauben würden. |
SubAllergens*, SubTraces* |
Diese Listen enthalten die Indizes der enthaltenen Unterallergene. |
Additives eines Produktes |
Diese Liste enthält die IDs der enthaltenen Zusatzstoffe. Ist dieses Feld null so soll dieser Abschnitt übersprungen werden – auch wenn die DisplayOptions sie sonst erlauben würden. |
Additives auf oberer Obene |
Diese Liste enthält alle Zusatzstoffe, die über das Dashboard angelegt wurden. Dieses Feld ist nur beim ersten Request ohne gesetzten Query-Parameter date vorhanden und ansonsten null – es muss also in die Datenstruktur der folgenden Requests auf Clientseite übernommen werden. |
DisplayOptions
| Bit | Beschreibung |
|---|---|
0 |
Kategorien in eigener View anzeigen. Wenn ungesetzt: Kategorien als SectionHeader anzeigen. |
1 |
Veraltet |
2 |
Bilder in der Liste anzeigen. |
3 |
Bilder bei den Produktdetails anzeigen. |
4 |
Allergene & Zusatzstoffe bei den Produktdetails anzeigen. |
5 |
Spuren bei den Produktdetails anzeigen. |
6 |
Rezeptur bei den Produktdetails anzeigen. |
7 |
Nährwerte bei den Produktdetails anzeigen. |
8 |
Allergene in der Liste anzeigen. |
9 |
Produktkennzeichnungen in der Liste anzeigen. |
10 |
Preise in der Liste anzeigen. |
11 |
Produktdetails anzeigen. |
12 |
Produktbewertung anzeigen. (Momentan noch nicht im Dashboard einstellbar) |
Beispiel
DisplayOptions = 285 (dezimal) = 0000100011101 (binär)
Es sind also die Bits 0, 2, 3, 4, 5 und 9. Dies bedeutet folgendes;
Auf oberster Ebene sollen nur die Kategorien (Bit
0) angezeigt werdenAuf den Unterseiten sollen die Produkte mit Bildern (Bit
2) und Produktkennzeichnungen (Bit9) angezeigt werdenAuf der Produktdetailseite sollen Bilder (Bit
3), Allergene & Zusatzstoffe (Bit4) und Spuren (Bit5) angezeigt werden
Allergene & Spuren
Glutenhaltiges Getreide Krebstiere und Krebstiererzeugnisse Eier und Eiererzeugnisse Fisch und Fischerzeugnisse Erdnüsse und Erdnusserzeugnisse Soja und Sojaerzeugnisse Milch und Milcherzeugnisse (Laktose) Schalenfrüchte und Schalenfrüchteerzeugnisse Sellerie und Sellerieerzeugnisse Senf und Senferzeugnisse Sesam und Sesamerzeugnisse Schwefeldioxid und Sulfite Lupinen und Lupinenerzeugnisse Weichtiere und Weichtiererzeugnisse<string-array name="sub_allergens_0">
<item>Weizen und Weizenerzeugnisse (wie Dinkel und Khoransan-Weizen)</item>
<item>Roggen und Roggenerzeugnisse</item>
<item>Gerste und Gersteerzeugnisse</item>
<item>Hafer und Hafererzeugnisse</item>
</string-array>
<string-array name="sub_allergens_7">
<item>Mandeln und Mandelerzeugnisse</item>
<item>Haselnüsse und Haselnusserzeugnisse</item>
<item>Walnüsse und Walnusserzeugnisse</item>
<item>Kaschunüsse und Kaschunusserzeugnisse</item>
<item>Pecanüsse und Pecanusserzeugnisse</item>
<item>Paranüsse und Paranusserzeugnisse</item>
<item>Pistazien und Pistazienerzeugnisse</item>
<item>Macadamia- oder Queenslandnüsse und daraus gewonnene Erzeugnisse</item>
</string-array>
Parameter
menuCardIdlongErforderlichInterne Datenbank-Id
1dateDateDatum vom Speiseplan
2015-12-08Request-Header
Acceptapplication/jsonAccept-Languagede-DEAuthorization03ec1431b94b9552ce713114be9c0a950If-None-Match"95009e0970f1fc7632cf9755e9aa2c57"Originaler Blueprint-Ausschnitt
API Blueprint
### Speiseplan-Details abrufen [GET]
| Property | Beschreibung |
| --- | --- |
| `Type` | Gibt den Typ des Speiseplans an: `0` (Tagesaktuell), `1` (Zeitraum), `2` (Unbegrenzt). Für tagesaktuelle Speisepläne soll eine Tagesauswahl für die nächsten `WeeksToPreview` Wochen die Tage `WeekDays` angezeigt werden. Bei Speiseplänen mit einem bestimmten Zeitraum definieren `ValidFrom` und `ValidTill` die Eckdaten. |
| `DisplayOptions` | Diese Bitmaske definiert die Darstellung des Speiseplans in der App. |
| `Date` | Sofern der Query-Parameter `date` nicht angegeben wird, gibt das Backend den Tag zurück, der angezeigt werden soll. Das muss nicht immer der aktuelle Tag sein, wenn z.B. ab 14 Uhr der Speiseplan vom Folgetag angezeigt werden soll. Für Speisekarten vom Type `1` oder `2` ist dieses Feld nicht gesetzt, da die Daten dieser Typen für mehr als einen Tag verwendet werden können. |
| `DailyAllergensTime` | Gibt die Uhrzeit an, ab wann *Tagesaktuelle Allergene* angezeigt werden sollen. Ist dieses Feld `null` so ist dieses Feature nicht aktiv und die Allergene können immer angezeigt werden. |
| `EmptyMessage` | Gibt den Text für den EmptyScreen an. Ist dieses Feld `null` so soll ein in der App hinterlegter Fallback-Text verwendet werden. |
| `EmptyCategoryMessage` | Gibt den Text für den EmptyScreen einer Kategorie und die Darstellung einer leeren Katerogie in der *SectionHeader* Version an. Ist dieses Feld `null` so soll ein in der App hinterlegter Fallback-Text verwendet werden. |
| `Prices` | Diese Liste enthält alle Preise vom Produkt. Es bietet sich an in der Listenansicht die `Label` Property und auf der Detailseite die `Name` Property zu verwenden. |
| `CustomTags` | Diese Liste enthält alle Produktkennzeichnungen. |
| `Allergens`, `Traces` | Diese Listen enthalten die Indizes der enthaltenen Allergene bzw. Spuren. Ist dieses Feld `null` so soll dieser Abschnitt übersprungen werden – auch wenn die `DisplayOptions` sie sonst erlauben würden. |
| `SubAllergens*`, `SubTraces*` | Diese Listen enthalten die Indizes der enthaltenen Unterallergene. |
| `Additives` eines Produktes | Diese Liste enthält die IDs der enthaltenen Zusatzstoffe. Ist dieses Feld `null` so soll dieser Abschnitt übersprungen werden – auch wenn die `DisplayOptions` sie sonst erlauben würden. |
| `Additives` auf oberer Obene | Diese Liste enthält alle Zusatzstoffe, die über das Dashboard angelegt wurden. Dieses Feld ist nur beim ersten Request ohne gesetzten Query-Parameter `date` vorhanden und ansonsten `null` – es muss also in die Datenstruktur der folgenden Requests auf Clientseite übernommen werden. |
#### DisplayOptions
| Bit | Beschreibung |
| --- | --- |
| `0` | Kategorien in eigener View anzeigen. Wenn ungesetzt: Kategorien als SectionHeader anzeigen. |
| `1` | *Veraltet* |
| `2` | Bilder in der Liste anzeigen. |
| `3` | Bilder bei den Produktdetails anzeigen. |
| `4` | Allergene & Zusatzstoffe bei den Produktdetails anzeigen. |
| `5` | Spuren bei den Produktdetails anzeigen. |
| `6` | Rezeptur bei den Produktdetails anzeigen. |
| `7` | Nährwerte bei den Produktdetails anzeigen. |
| `8` | Allergene in der Liste anzeigen. |
| `9` | Produktkennzeichnungen in der Liste anzeigen. |
| `10` | Preise in der Liste anzeigen. |
| `11` | Produktdetails anzeigen. |
| `12` | Produktbewertung anzeigen. (Momentan noch nicht im Dashboard einstellbar) |
##### Beispiel
`DisplayOptions = 285 (dezimal) = 0000100011101 (binär)`
Es sind also die Bits `0`, `2`, `3`, `4`, `5` und `9`. Dies bedeutet folgendes;
* Auf oberster Ebene sollen nur die Kategorien (Bit `0`) angezeigt werden
* Auf den Unterseiten sollen die Produkte mit Bildern (Bit `2`) und Produktkennzeichnungen (Bit `9`) angezeigt werden
* Auf der Produktdetailseite sollen Bilder (Bit `3`), Allergene & Zusatzstoffe (Bit `4`) und Spuren (Bit `5`) angezeigt werden
#### Allergene & Spuren
<string-array name="allergens">
<item>Glutenhaltiges Getreide</item>
<item>Krebstiere und Krebstiererzeugnisse</item>
<item>Eier und Eiererzeugnisse</item>
<item>Fisch und Fischerzeugnisse</item>
<item>Erdnüsse und Erdnusserzeugnisse</item>
<item>Soja und Sojaerzeugnisse</item>
<item>Milch und Milcherzeugnisse (Laktose)</item>
<item>Schalenfrüchte und Schalenfrüchteerzeugnisse</item>
<item>Sellerie und Sellerieerzeugnisse</item>
<item>Senf und Senferzeugnisse</item>
<item>Sesam und Sesamerzeugnisse</item>
<item>Schwefeldioxid und Sulfite</item>
<item>Lupinen und Lupinenerzeugnisse</item>
<item>Weichtiere und Weichtiererzeugnisse</item>
</string-array>
<string-array name="sub_allergens_0">
<item>Weizen und Weizenerzeugnisse (wie Dinkel und Khoransan-Weizen)</item>
<item>Roggen und Roggenerzeugnisse</item>
<item>Gerste und Gersteerzeugnisse</item>
<item>Hafer und Hafererzeugnisse</item>
</string-array>
<string-array name="sub_allergens_7">
<item>Mandeln und Mandelerzeugnisse</item>
<item>Haselnüsse und Haselnusserzeugnisse</item>
<item>Walnüsse und Walnusserzeugnisse</item>
<item>Kaschunüsse und Kaschunusserzeugnisse</item>
<item>Pecanüsse und Pecanusserzeugnisse</item>
<item>Paranüsse und Paranusserzeugnisse</item>
<item>Pistazien und Pistazienerzeugnisse</item>
<item>Macadamia- oder Queenslandnüsse und daraus gewonnene Erzeugnisse</item>
</string-array>
+ Parameters
+ menuCardId (required, long, `1`) ... Interne Datenbank-Id
+ date (optional, Date, `2015-12-08`) ... Datum vom Speiseplan
+ Request
+ Headers
Accept: application/json
Accept-Language: de-DE
Authorization: 03ec1431b94b9552ce713114be9c0a950
If-None-Match: "95009e0970f1fc7632cf9755e9aa2c57"
+ Response 200 (application/json)
+ Headers
Cache-Control: public
ETag: "95009e0970f1fc7632cf9755e9aa2c57"
+ Body
{
"MenuCardId": 1,
"StoreId": 1,
"Name": "Speiseplan Kasino",
"Date": "2015-12-09T00:00:00Z",
"DisplayOptions": 31
"Type": 0,
"ValidFrom": null,
"ValidTill": null,
"WeeksToPreview": 4,
"WeekDays": [0,1,2,3,4],
"DailyAllergensTime": "2015-08-10T14:00:00Z",
"EmptyMessage": "Für diesen Tag liegen keine Daten vor.",
"EmptyCategoryMessage": "Heute leider kein Angebot.",
"Preorder": {
"From": "2015-08-10T15:00:00Z",
"Till": "2015-08-10T10:00:00Z",
"CategoryIds": [],
"BaseUrl": "http://my.qnips.com/public/menuorder/"
},
"Categories": [{
"Id": 1,
"Name": "Hauptspeisen",
"PictureUrl": "http://www.…",
"Products": [{
"Id": 1,
"Name": "Pizza Salami",
"Description": "Simple Pizza mit Salami",
"PictureUrl": "http://www.…",
"Prices": [{
"Id": 1,
"Tag": "Studenten",
"Price": 3.45,
"Label": "ST"
}],
"Allergens": [],
"SubAllergens0": [],
"SubAllergens7": [],
"Traces": [],
"SubTraces0": [],
"SubTraces7": [],
"Additives": [],
"CustomTags": [{
"Name": "Scharf",
"IconUrl": "http://www.…"
}],
"Ingredients": "Zutat 1; Zutat 2; Zutat 3",
"CoverUrls": ["http://www.…"],
"WeightInGrams": 12.34,
"VolumeInMilliliters": null
}]
}],
"Additives": [{
"Id": 1,
"Name": "enthält Sulfite",
"IconUrl": "http://www.…"
}]
}
+ Response 304
+ Response 404
// Speiseplan konnte nicht gefunden werden