Update Vorgehensweise

Marcel Schwarz 2021-01-17 20:28:41 +00:00
parent aa2c8a3ab4
commit a64b4dd848

@ -56,12 +56,25 @@ Zusätzlich dazu wurden noch die Accidents und die Bikepoints aus der Live API g
**Anmerkung:** Allgemein lässt sich sagen, dass die Datensätze und Exports sich in einem sehr schlechten Zustand befinden.
## API-Framework
* FastAPI
* Nimmt einem viel ab
* Generiert Doc automatisch
* Bringt Webserver mit (gunicorn)
* Später nginx reverse proxy
* Python
Es war schnell klar, dass sich Python sehr gut für die Implementation einer so einfachen Endpunkt-Struktur bestens eignet. Die erste Implementation wurde mit [Flask](https://flask.palletsprojects.com/en/1.1.x/) durchgeführt. Allerdings muss hier sehr viel selbst implementiert werden.
[FastAPI](https://fastapi.tiangolo.com/) hingegen liefert ein komplettes Framework mit automatischer Generierung der Dokumentation. Auch das Parsen der URL Bestandteile, sowie das Serialisieren der Antwort geschieht vollkommen automatisch. Eingaben können über sog. Request-Filter vorgefiltert werden, um invalide Eingaben schnell zu erkennen.
Ein Beispiel für einen "Hello World" Endpoint sieht wie folgt aus.
```python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"message": "Hello World"}
```
Der Output ist dann `{"message": "Hello World"}`
Die API kann dann über den eingebauten Gunicorn Server gestartet werden. Dieser wird dann später über einen Nginx Reverse-Proxy nach außen geöffnet.
Ein anderer Grund für die Nutzung von Python war jedoch auch die Interoperabilität mit SQLite, userer gewählten Datenbank-Engine. Python nutzt hierzu die C-Implementierung (lib-sqlite) von SQLite, was bestmögliche Performance bietet.
## Endpunkterklärung