https://github.com/mdecker-mobilecomputing/nodejs_express_kantinenplan
Einfache REST-API für Kantinenplan mit Nodejs und Express.js
https://github.com/mdecker-mobilecomputing/nodejs_express_kantinenplan
express-js github-actions nodejs rest-api
Last synced: 2 months ago
JSON representation
Einfache REST-API für Kantinenplan mit Nodejs und Express.js
- Host: GitHub
- URL: https://github.com/mdecker-mobilecomputing/nodejs_express_kantinenplan
- Owner: MDecker-MobileComputing
- License: bsd-3-clause
- Created: 2024-01-28T11:37:37.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-02-11T09:26:43.000Z (over 1 year ago)
- Last Synced: 2025-02-11T10:31:18.981Z (over 1 year ago)
- Topics: express-js, github-actions, nodejs, rest-api
- Language: JavaScript
- Homepage:
- Size: 42 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# REST-API mit Nodejs und Express: Kantinenplan #
Einfacher Kantinenplan mit [Nodejs](https://nodejs.org) und [Express](https://expressjs.com):
Für ein Datum können mehrere Gerichte eingeplant werden.
Die Daten werden nicht persistiert, sondern nur im RAM gespeichert, gehen also beim Herunterfahren
der Anwendung verloren.
----
## Verwendung ##
Nach Klonen/Download des Repos: `npm install`
Webserver mit REST-API starten: `npm start`
----
## REST-Endpunkte ##
Datumswerte haben immer das Format `YYYY-MM-DD`, z.B. `2024-01-31`.
### Gerichte für ein Datum abfragen ###
* Request-Typ: `HTTP-GET`
* Endpunkt: `/kantinenplan/v1/abfrage/{datum}`
* Pfadvariable `{datum}` im Format `YYYY-MM-DD`, z.B. `2024-01-31`.
* HTTP-Status-Codes:
* Bei Erfolg: `200 OK`
* Ungültiges Datum: `400 BAD REQUEST`
* Keine Gerichte für Datum hinterlegt: `404 NOT FOUND`
Antwort im JSON-Format für den Erfolgsfall:
```
{
"datum": "2024-01-31",
"erfolg": true,
"nachricht: "2 Gericht(e) gefunden",
"gerichte": [ "Spaghetti mit Tomatensoße", "Salamipizza" ]
}
```
Wenn für den Tag nur ein Gericht eingeplant ist, dann referenziert
`gerichte` einen Array mit nur einem Element.
Wenn für den Tag kein Gericht eingeplant ist, dann referenziert
`gerichte` einen leeren Array.
Antwort im JSON-Format für den Fehlerfall (1):
```
{
"datum": "2024-01-31",
"erfolg": false,
"nachricht: "Keine Gerichte für diesen Tag gefunden",
"gerichte": []
}
```
Antwort im JSON-Format für den Fehlerfall (2):
```
{
"datum": "2024-02-31",
"erfolg": false,
"nachricht: "Ungültiger Datumswert übergeben",
"gerichte": []
}
```
Der Schlüssel `nachricht` referenziert also eine Fehlermeldung,
wenn die Abfrage nicht erfolgreich war.
### Ein Gericht für bestimmtes Datum hinzufügen ###
* Request-Typ: `HTTP-POST`
* Endpunkt: `/kantinenplan/v1/einplanen/`
* HTTP-Status-Codes:
* Bei Erfolg: `201 CREATED`
* Ungültiger Request: `400 BAD REQUEST`
Payload im JSON-Format:
```
{
"datum": "2024-01-31",
"gericht": "Spaghetti mit Tomatensoße"
}
```
Der Endpunkt kann für ein Datum mehrfach aufgerufen werden, nämlich um mehrere
Gerichte für den Tag zu definieren.
----
## License ##
See the [LICENSE file](LICENSE.md) for license rights and limitations (BSD 3-Clause License)
for the files in this repository.