Hallo zusammen đź‘‹ In Woche 3 haben wir uns intensiv mit der Erstellung eines Software Requirements Specification (SRS) befasst.
Auf das Dokumment können Sie mit dem folgenden Link zugreifen:
Für die Erstellung der Mocks haben wir auf das Tool namens Miro zurückgegriffen. Miro ist eine Online-Kollaborationsplattform, die es uns ermöglicht, Ideen zu visualisieren, Prozesse zu modellieren und Mockups zu erstellen. Es ist ein äußerst nützliches Werkzeug, um unsere Gedanken zu organisieren und die Anforderungen in einer visuell ansprechenden Weise zu präsentieren.
Wir verwenden das Hono WebStandard Framework, ein Laufzeit-unabhängiges (TypeScript) WebFramework mit kinderleichter HTTP/RPC Funktion (mittels .json({..})/.jsonT({…}) Callbacks).
Um zudem alle Anfragen uniform zu validieren und um das Schema zu definieren setzen wir Zod-Openapi ein, das automatisch anhand des API-Schemas ein OpenAPI-Dokument erstellt.
🛡️ Die Schemata für Anfragen/Rückgaben werden schlussendlich mit der Zod-Notation umgesetzt.
Bei der Erstellung können demnach relativ einfach Validierungs-Regeln
angegeben werden,
um im jeweligen Service-Endpoint nur mit gültigen Anfragen arbeiten zu können.
Konkrete Beispiele mit Hono sind im README.md der offiziellen @hono/zod-openapi-Middleware zu finden.
Das alles in TypeScript und mit vollständiger Typisierung (meint, keine genickbrechenden any
’s :)
F: Was ist OpenAPI?
A: Ein unifizeiertes API-Dokumentations-Format (in JSON/YML) mit Versionierungs-Funktion..
F: Wie geht das?
A: Das Vorgehen ist straight Forward:
- Ein OpenAPI Objekt hält Metadaten und Paths.
- Paths ist ein Objekt das Endpunkte hält
'/endpoint':{}
Doku- Ein Endpoint-Objekt hält wiederrum Anfrage-Methoden (get/post/put/delete/trace/head) als Schlüssel und Operation-Objekte als Wert.
- Ein Operation-Objekt ist nun die unterste Enpoint-Ebene und enthält Informationen über den Endpoint und die Methode, sowie einen
requestBody
,responses
.
👇
Weitere infos dazu im Backend unter deno_backend/api
oder unter deno_backend/đź§START_HERE.md
.
Letzte Woche: Zweiter Post (KW43)
Nächste Woche: Vierter Post (KW45)