Update Vorgehensweise
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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user