Repository angelegt, json Files erstellt -> Kategorie und Speisen, service angelegt

This commit is contained in:
marcusferl@weifer.de 2022-05-17 12:26:45 +02:00
parent 14a952e8b5
commit d644d5094d
75 changed files with 565 additions and 35 deletions

View File

@ -0,0 +1,31 @@
using Aps_Single_Page_Anwendung.Models;
using Aps_Single_Page_Anwendung.Repositories;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace Aps_Single_Page_Anwendung.Controllers
{
// Routing für den Controller
[ApiController]
[Route("api/[controller]")]
// Muss von ControllerBase erben, sonst muss die Schnittstelle selbst implmentiert werden
public class SpeisenController : ControllerBase
{
private readonly ISpeiseRepository _repository;
public SpeisenController(ISpeiseRepository repository)
{
_repository = repository;
}
[HttpGet]
// Muss etwas zurück geben
public IEnumerable<Speise> Get()
{
}
}
}

View File

@ -0,0 +1,12 @@
using System.Collections.Generic;
namespace Aps_Single_Page_Anwendung.Models
{
public class Kategorie
{
public int Id { get; set; }
public string Name { get; set; }
public string Beschreibung { get; set; }
public virtual ICollection<Speise> Speisen { get; set; } = new HashSet<Speise>();
}
}

View File

@ -0,0 +1,12 @@
namespace Aps_Single_Page_Anwendung.Models
{
public class Speise
{
public int Id { get; set; }
public string Name { get; set; }
public string Beschreibung { get; set; }
public double Preis { get; set; }
public int KategorieId { get; set; }
public Kategorie Kategorie { get; set; }
}
}

View File

@ -0,0 +1,51 @@
using Aps_Single_Page_Anwendung.Models;
using Microsoft.AspNetCore.Hosting;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
namespace Aps_Single_Page_Anwendung.Repositories
{
public class FileSpeiseRepository : ISpeiseRepository
{
private readonly string _path;
// Um den Absoluten Pfad zu bekommen, unabhängig davon, wo das Programm liegt
public FileSpeiseRepository(IWebHostEnvironment env)
{
_path = Path.Combine(env.ContentRootPath, "data", "speisen.json"); // Die Trennung via Slashes wird automatisch erkannt
}
// Implementierung der Methoden vom Interfave ISpeisenRepository
public Speise CreateSpeise(Speise speise)
{
throw new System.NotImplementedException();
}
public void DeleteSpeise(int id)
{
throw new System.NotImplementedException();
}
public Speise GetSpeiseById(int id)
{
throw new System.NotImplementedException();
}
public IEnumerable<Speise> GetSpeisen()
{
var json = File.ReadAllText(_path);
var option = new JsonSerializerOptions
{
AllowTrailingCommas = true, // Ignoriert letzte Komma, fals vorhanden
PropertyNameCaseInsensitive = true // Ignoriert Groß und Kleinschreibung
};
var speisen = JsonSerializer.Deserialize<Speise[]>(json, option);
return speisen;
}
public Speise UpdateSpeise(Speise speise)
{
throw new System.NotImplementedException();
}
}
}

View File

@ -0,0 +1,14 @@
using Aps_Single_Page_Anwendung.Models;
using System.Collections.Generic;
namespace Aps_Single_Page_Anwendung.Repositories
{
public interface ISpeiseRepository
{
IEnumerable<Speise> GetSpeisen();
Speise GetSpeiseById(int id);
Speise CreateSpeise(Speise speise);
Speise UpdateSpeise(Speise speise);
void DeleteSpeise(int id);
}
}

View File

@ -1,3 +1,4 @@
using Aps_Single_Page_Anwendung.Repositories;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
@ -21,6 +22,11 @@ namespace Aps_Single_Page_Anwendung
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
// Sorgt dafür, das jedesmal wenn ein ISpeiseRep angefragt wird, wird ein FileSpeiseRep zurückgegeben
services.AddScoped<ISpeiseRepository, FileSpeiseRepository>();
// In production, the Angular files will be served from this directory
services.AddSpaStaticFiles(configuration =>
{

View File

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

View File

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 105 KiB

View File

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 99 KiB

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View File

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

View File

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

View File

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View File

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 146 KiB

View File

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

View File

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

@ -0,0 +1,31 @@
[{
"id": 1,
"name": "Salate",
"description": "Fröhlich bunte Salate"
},
{
"id": 2,
"name": "Suppen",
"description": "Cremige Suppen"
},
{
"id": 3,
"name": "Vorspeißen",
"description": "Kleine Portionen"
},
{
"id": 4,
"name": "Hauptgerichte",
"description": "Eine vielfalt aus verschiedenen Gerichten"
},
{
"id": 5,
"name": "Nachspeißen",
"description": "Leckere süße Desserts"
},
{
"id": 6,
"name": "Getränke",
"description": "Eine große Auswahl an Getränkeetränken"
}
]

View File

@ -1,27 +1,27 @@
[{
"id": 1,
"name": "Ensalada de Casa",
"name": "Gemischter Salat",
"description": "Salat nach Art des Hauses. Gemischter Salat, Mais, Paprika, Käse, Zwiebeln",
"price": 3.49,
"categoryId": 1
},
{
"id": 2,
"name": "Ensalada furia",
"name": "Salat Diabolo",
"description": "Gemischter Salat mit Chillis, Paprika, Radieschen und Zwiebeln (scharf!)",
"price": 3.99,
"categoryId": 1
},
{
"id": 3,
"name": "Sopa de Tomate",
"name": "Rote Suppe",
"description": "Tomatensuppe",
"price": 3.29,
"categoryId": 2
},
{
"id": 4,
"name": "Crema de verduras",
"name": "Grüne Suppe",
"description": "Gemüsecremesuppe",
"price": 4.39,
"categoryId": 2

View File

@ -1,31 +0,0 @@
[{
"id": 1,
"name": "Ensaladas",
"description": "Salate"
},
{
"id": 2,
"name": "Cremas y sopas",
"description": "Suppen"
},
{
"id": 3,
"name": "Tapas",
"description": "Kleine Portionen"
},
{
"id": 4,
"name": "Platos principales",
"description": "Hauptgerichte"
},
{
"id": 5,
"name": "Postres",
"description": "Desserts"
},
{
"id": 6,
"name": "Bebidas",
"description": "Getränke"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -0,0 +1,23 @@
1.jpg
https://unsplash.com/photos/IGfIGP5ONV0
Unsplash / Anna Pelzer
2.jpg
https://unsplash.com/photos/OMcrCX6wDpU
Unsplash / Jade Aucamp
3.jpg
https://pixabay.com/de/photos/creme-k%C3%A4se-tomate-sousse-chips-1503526/
Pixybay / hamomdomingues
4.jpg
https://www.pexels.com/photo/blur-bowl-close-up-cook-461326/
Pexels / Pixabay
5.jpg
https://pixabay.com/de/photos/eisbecher-speiseeis-eiscreme-2194070/
Pixybay / silviarita
6.jpg
https://mavl.io/photo/7331/summer-drink
Mavl / picjumbo.com

View File

@ -0,0 +1,45 @@
All pictures are taken from the following sources:
- Mavl
- Pexels
- Pixabay
- Unsplash
The licenses of those plattforms are:
## Mavl
https://mavl.io/license
Creative Commons Zero enables artists, photographers, authors, scientists, educators, and other creators and owners of copyright- or database-protected content to waive those interests in their works and thereby place them as completely as possible in the public domain, so that others may freely build upon, enhance and reuse the works for any purposes without restriction under copyright or database law.
In contrast to CCs licenses that allow copyright holders to choose from a range of permissions while retaining their copyright, CC0 empowers yet another choice altogether the choice to opt out of copyright and database protection, and the exclusive rights automatically granted to creators the “no rights reserved” alternative to our licenses.
## Pexels
https://www.pexels.com/photo-license/
- All photos on Pexels are free to use.
- Attribution is not required. Giving credit to the photographer or Pexels is not necessary but always appreciated.
- You can modify the photos. Be creative and edit the photos as you like.
entifiable people may not appear in a bad light or in a way that is offensive.
- Don't sell unaltered copies of a photo, e.g. don't sell it as a stock photo, poster, print or on a physical product without adding any value.
- Don't imply endorsement of your product by people or brands on the image.
- Don't redistribute or sell the photos on other stock photo or wallpaper platforms.
## Pixabay
https://pixabay.com/de/service/terms/#license
ilder und Videos auf Pixabay werden unter der Pixabay Lizenz mit den folgenden Bedingungen zur Verfügung gestellt. Durch die Pixabay Lizenz erhältst Du ein unwiderrufliches, weltweites, nicht exklusives und gebührenfreies Recht, die Bilder und Videos für kommerzielle und nicht kommerzielle Zwecke zu verwenden, herunterzuladen, zu kopieren und zu verändern. Eine Nennung des Bildautors bzw. von Pixabay ist nicht erforderlich, wir wissen jedoch eine freiwillige Quellenangabe zu schätzen.
Die Pixabay-Lizenz gestattet nicht:
den Verkauf oder Vertrieb von Bildern oder Videos in digitaler Form, insbesondere als Stockfotos oder digitale Wallpaper;
den Verkauf oder Vertrieb von Bildern oder Videos z.B. als Poster, Digitaldrucke oder physische Produkte, ohne zusätzliche Elemente hinzuzufügen oder anderweitig einen Mehrwert zu schaffen;
die Darstellung von identifizierbaren Personen auf beleidigende, pornografische, obszöne, unmoralische, diffamierende oder verleumderische Weise; oder
die Suggestion, dass abgebildete Personen, Marken, Organisationen, etc. bestimmte Produkte oder Dienstleistungen befürworten oder billigen, es sei denn es wurde eine Genehmigung dazu erteilt.
Beachte bitte, dass alle Inhalte auf Pixabay zwar für kommerzielle und nicht-kommerzielle Zwecke frei verwendbar sind, gezeigte Elemente in den Bildern und Videos, wie identifizierbare Personen, Logos und Marken, jedoch zusätzlichen Urheberrechten, Eigentumsrechten, Personenrechten, Markenrechten usw. unterliegen können. Die Zustimmung eines Dritten oder die Lizenz dieser Rechte können insbesondere für kommerzielle Anwendungen erforderlich sein. Pixabay garantiert nicht, dass solche Zustimmungen oder Lizenzen eingeholt wurden, und lehnt ausdrücklich jegliche Haftung in dieser Hinsicht ab.
## Unsplash
https://unsplash.com/license
All photos published on Unsplash can be used for free. You can use them for commercial and noncommercial purposes. You do not need to ask permission from or provide credit to the photographer or Unsplash, although it is appreciated when possible.
More precisely, Unsplash grants you an irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use photos from Unsplash for free, including for commercial purposes, without permission from or attributing the photographer or Unsplash. This license does not include the right to compile photos from Unsplash to replicate a similar or competing service.

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

View File

@ -0,0 +1,87 @@
1.jpg
https://unsplash.com/photos/MlPD-AzZYMg
Unsplash / Louis Hansel
2.jpg
https://unsplash.com/photos/AiHJiRCwB3w
Unsplash / Yoav Aziz
3.jpg
https://www.pexels.com/photo/appetizer-bowl-bread-breakfast-539451/
Pexels / Foodie Factor
4.jpg
https://pixabay.com/de/photos/erbsensuppe-suppe-vorspeise-2786133/
Pixabay / Ritae
5.jpg
https://pxhere.com/en/photo/758610
pxhere
6.jpg
https://unsplash.com/photos/vzIgmhbEN9w
Unsplash / Nacho Carretero Molero
7.jpg
https://pxhere.com/de/photo/459409
pxhere
8.jpg
https://pxhere.com/es/photo/607309
pxhere
9.jpg
https://pxhere.com/es/photo/529102
pxhere
10.jpg
https://www.rawpixel.com/image/448047/free-photo-image-dip-mexican-cuisine-appetite
rawpixel / Jakub Kapusnak
11.jpg
https://pixabay.com/de/photos/tjena-k%C3%BCche-chili-con-carne-reis-3175645/
pixabay / TJENA
12.jpg
https://unsplash.com/photos/xsfX3AqLDKo
Unsplash / Alexandra Golovac
13.jpg
https://pixabay.com/de/photos/burrito-tortilla-lebensmittel-4126116/
pixabay / nevena1313
14.jpg
https://pixnio.com/food-and-drink/rice-food-dinner-lunch-dish-meal-vegetable-meat-delicious
pixnio
15.jpg
https://pixabay.com/de/photos/empanadas-empanaditas-partei-macht-3410288/
pixybay / Emersontc
16.jpg
https://pxhere.com/en/photo/863645
pxhere
17.jpg
https://pixnio.com/flora-plants/fruits/fruit-salad-diet-food-nutrition-delicious-kiwi-sweet
pixnio
18.jpg
https://pixabay.com/de/photos/churros-backen-cookies-dessert-2188871/
pixabay / Daria-Yakovleva
19.jpg
https://pxhere.com/en/photo/1274085
20.jpg
https://pxhere.com/en/photo/1582781
pxhere / rawpixel.com
21.jpg
https://unsplash.com/photos/p5EiqkBYIEE
Unsplash / Francesca Hotchin
22.jpg
https://pxhere.com/en/photo/655302
pxhere

View File

@ -0,0 +1,59 @@
All pictures are taken from the following sources:
- Pexels
- Pixabay
- Pixnio
- Pxhere
- Rawpixl
- Unsplash
The licenses of those plattforms are:
## Pexels
https://www.pexels.com/photo-license/
- All photos on Pexels are free to use.
- Attribution is not required. Giving credit to the photographer or Pexels is not necessary but always appreciated.
- You can modify the photos. Be creative and edit the photos as you like.
entifiable people may not appear in a bad light or in a way that is offensive.
- Don't sell unaltered copies of a photo, e.g. don't sell it as a stock photo, poster, print or on a physical product without adding any value.
- Don't imply endorsement of your product by people or brands on the image.
- Don't redistribute or sell the photos on other stock photo or wallpaper platforms.
## Pixabay
https://pixabay.com/de/service/terms/#license
ilder und Videos auf Pixabay werden unter der Pixabay Lizenz mit den folgenden Bedingungen zur Verfügung gestellt. Durch die Pixabay Lizenz erhältst Du ein unwiderrufliches, weltweites, nicht exklusives und gebührenfreies Recht, die Bilder und Videos für kommerzielle und nicht kommerzielle Zwecke zu verwenden, herunterzuladen, zu kopieren und zu verändern. Eine Nennung des Bildautors bzw. von Pixabay ist nicht erforderlich, wir wissen jedoch eine freiwillige Quellenangabe zu schätzen.
Die Pixabay-Lizenz gestattet nicht:
den Verkauf oder Vertrieb von Bildern oder Videos in digitaler Form, insbesondere als Stockfotos oder digitale Wallpaper;
den Verkauf oder Vertrieb von Bildern oder Videos z.B. als Poster, Digitaldrucke oder physische Produkte, ohne zusätzliche Elemente hinzuzufügen oder anderweitig einen Mehrwert zu schaffen;
die Darstellung von identifizierbaren Personen auf beleidigende, pornografische, obszöne, unmoralische, diffamierende oder verleumderische Weise; oder
die Suggestion, dass abgebildete Personen, Marken, Organisationen, etc. bestimmte Produkte oder Dienstleistungen befürworten oder billigen, es sei denn es wurde eine Genehmigung dazu erteilt.
Beachte bitte, dass alle Inhalte auf Pixabay zwar für kommerzielle und nicht-kommerzielle Zwecke frei verwendbar sind, gezeigte Elemente in den Bildern und Videos, wie identifizierbare Personen, Logos und Marken, jedoch zusätzlichen Urheberrechten, Eigentumsrechten, Personenrechten, Markenrechten usw. unterliegen können. Die Zustimmung eines Dritten oder die Lizenz dieser Rechte können insbesondere für kommerzielle Anwendungen erforderlich sein. Pixabay garantiert nicht, dass solche Zustimmungen oder Lizenzen eingeholt wurden, und lehnt ausdrücklich jegliche Haftung in dieser Hinsicht ab.
## Pixnio
https://pixnio.com/de/
https://pixnio.com/public-domain-definition
Hochwertige urheberrechts-freundliche Bilder, urheberrechtsfreie Bilder und Bilder ohne Beschränkung für deren Verwendung. Explizit in der Public Domain platzierte Bilder, keine Rechte vorbehalten. Public Domain Bilder können für beliebige Zwecke genutzt werden, nutzen Sie diese frei für persönliche oder kommerzielle Nutzung.
## Pxhere
https://pxhere.com/de/license
It's hard to understand complex licenses that is why all photos on PxHere are licensed under the Creative Commons Zero (CC0) license. This means the pictures are completely free to be used for any legal purpose.
The pictures are free for personal and even for commercial use.
You can modify, copy and distribute the photos.
All without asking for permission or setting a link to the source. So, attribution is not required.
The only restriction is that identifiable people may not appear in a bad light or in a way that they may find offensive, unless they give their consent.
The CC0 license was released by the non-profit organization Creative Commons (CC). Get more information about Creative Commons images and the license on the official license page.
## Rawpixl
https://www.rawpixel.com/services/image-licenses
## Unsplash
https://unsplash.com/license
All photos published on Unsplash can be used for free. You can use them for commercial and noncommercial purposes. You do not need to ask permission from or provide credit to the photographer or Unsplash, although it is appreciated when possible.
More precisely, Unsplash grants you an irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use photos from Unsplash for free, including for commercial purposes, without permission from or attributing the photographer or Unsplash. This license does not include the right to compile photos from Unsplash to replicate a similar or competing service.

View File

@ -0,0 +1,31 @@
[{
"id": 1,
"name": "Salate",
"description": "Fröhlich bunte Salate"
},
{
"id": 2,
"name": "Suppen",
"description": "Cremige Suppen"
},
{
"id": 3,
"name": "Vorspeißen",
"description": "Kleine Portionen"
},
{
"id": 4,
"name": "Hauptgerichte",
"description": "Eine vielfalt aus verschiedenen Gerichten"
},
{
"id": 5,
"name": "Nachspeißen",
"description": "Leckere süße Desserts"
},
{
"id": 6,
"name": "Getränke",
"description": "Eine große Auswahl an Getränkeetränken"
}
]

View File

@ -0,0 +1,159 @@
[{
"id": 1,
"name": "Gemischter Salat",
"description": "Salat nach Art des Hauses. Gemischter Salat, Mais, Paprika, Käse, Zwiebeln",
"price": 3.49,
"categoryId": 1
},
{
"id": 2,
"name": "Salat Diabolo",
"description": "Gemischter Salat mit Chillis, Paprika, Radieschen und Zwiebeln (scharf!)",
"price": 3.99,
"categoryId": 1
},
{
"id": 3,
"name": "Rote Suppe",
"description": "Tomatensuppe",
"price": 3.29,
"categoryId": 2
},
{
"id": 4,
"name": "Grüne Suppe",
"description": "Gemüsecremesuppe",
"price": 4.39,
"categoryId": 2
},
{
"id": 5,
"name": "Tortilla de patatas",
"description": "Spanisches Omlett aus Eiern und Kartoffeln",
"price": 4.99,
"categoryId": 3
},
{
"id": 6,
"name": "Patatas bravas",
"description": "Gebratene Kartoffelstücke in pikanter Sauce",
"price": 3.99,
"categoryId": 3
},
{
"id": 7,
"name": "Pimientos al grill",
"description": "Gegrillte Paprika",
"price": 2.99,
"categoryId": 3
},
{
"id": 8,
"name": "Pan con alioli",
"description": "Ailoli mit Brot",
"price": 2.29,
"categoryId": 3
},
{
"id": 9,
"name": "Pan con tomate y ajo",
"description": "Brot mit Tomate und Knoblauch",
"price": 2.29,
"categoryId": 3
},
{
"id": 10,
"name": "Tortilla Chips",
"description": "Tortilla Chips mit Salsa Dip, Guacamole oder Alioli",
"price": 1.29,
"categoryId": 3
},
{
"id": 11,
"name": "Chilli sin carne",
"description": "Vegetarisches Chilli, serviert mit Reis",
"price": 5.39,
"categoryId": 4
},
{
"id": 12,
"name": "Enchiladas de verduras",
"description": "Überbackene Maistortillas gefüllt mit Gemüse",
"price": 4.99,
"categoryId": 4
},
{
"id": 13,
"name": "Burritos de verduras",
"description": "Weizentortillas gefüllt mit Gemüse",
"price": 4.99,
"categoryId": 4
},
{
"id": 14,
"name": "Arroz con verduras",
"description": "Reis-/Gemüsepfanne",
"price": 4.49,
"categoryId": 4
},
{
"id": 15,
"name": "Empanadas de espinacas y maíz",
"description": "Teigtaschen gefüllt mit Spinat und Mais",
"price": 4.49,
"categoryId": 4
},
{
"id": 16,
"name": "Crema Catalana",
"description": "Katalanische Creme",
"price": 2.49,
"categoryId": 5
},
{
"id": 17,
"name": "Ensalada de frutas",
"description": "Obstsalat mit frischen Früchten",
"price": 2.99,
"categoryId": 5
},
{
"id": 18,
"name": "Churros",
"description": "Spritzgebäck mit Zucker",
"price": 1.99,
"categoryId": 5
},
{
"id": 19,
"name": "Agua mineral",
"description": "Mineralwasser",
"price": 1.59,
"categoryId": 6
},
{
"id": 20,
"name": "Zumo de manzana",
"description": "Apfelsaft",
"price": 1.59,
"categoryId": 6
},
{
"id": 21,
"name": "Limonada",
"description": "Zitronenlimonade",
"price": 1.59,
"categoryId": 6
},
{
"id": 22,
"name": "Café",
"description": "Kaffee",
"price": 1.59,
"categoryId": 6
}
]