Meine Bibliothek-Dokumente

Multi-Root-Seitenleiste

flex-layout

  • Getting Started

  • Guides

  • Reference

typed-rx-http

  • Getting Started

  • Guides

  • Reference

global-rx-state

  • Getting Started

  • Guides

  • Reference

webflux-fe-dev-assistant

reactive-mongo-dsl

OpenAPI & Service Generator

Optionales Node-Skript, das zusätzlich zum Core HTTP-Client bereitgestellt wird. Wird nur verwendet, um TypeScript-Typen und Dienstdateien aus OpenAPI/Swagger JSON zu generieren.


Optionale Funktion: Nicht erforderlich für die Verwendung des Cores

Allgemeine Benutzer von @byeolnaerim/typed-rx-http, /next oder /rsocket müssen dieses Skript nicht ausführen und müssen openapi-typescript nicht im Projekt installieren.

ts
Isolierung der openapi-typescript-Abhängigkeit

Für die Erstellung von OpenAPI-Typen ist die openapi-typescript CLI erforderlich, aber das Paket wird nicht in die allgemeinen Abhängigkeiten aufgenommen. Die devDependencies.typescript von typed-rx-http halten sich an den Standard von TypeScript 6.0.3 und verwenden nur eine separate npx-Temporärumgebung im OpenAPI-Auto-Node-Skript.

Im grundlegenden OpenAPI-Generierungsprozess werden openapi-typescript und [email protected] zusammen ausgeführt, sodass die in Ihrem Projekt installierte TypeScript/openapi-typescript-Version nicht geändert oder nicht verwendet wird.

bash

Wenn nötig, kann der gesamte Befehl auf openApiTypescriptCommand festgelegt werden.

ts

Alternativ können Sie nur die Paketversion ändern, die den Standardbefehl konfiguriert.

ts
Zuerst: Bereiten Sie die Projektdatei vor, auf die commonServiceFile verweist.

Bevor commonServiceFile im Generatorbeispiel erscheint, müssen Sie diese Datei verstehen. commonServiceFile ist der Pfad zur Projektbesitzdatei, die die gemeinsamen HTTP-Funktionen des generierten Dienstes importiert, nicht eine Option, die eine Datei erstellt. Der Dateiname kann frei gewählt werden, z. B. rxjsHttpService.ts, commonService.ts.

Minimale vollständige Codeversion

Die folgende Datei erstellt einmal den createHttpClient im Projekt und exportiert callApi und callApiStream zur Wiederverwendung durch den generierten Dienst. Wenn kein Cache oder keine Sitzungsauthentifizierung erforderlich ist, können Sie mit dieser Struktur beginnen.

rxjsHttpService.ts
ts
Vollständiger Code einschließlich Session/CSR/SSR-Cache

Wenn der generierte Dienst callApiClientCache oder callApiServerCache verwenden soll oder wenn Next.js die header und Sitzungsauthentifizierung pro Anfrage gemeinsam verarbeiten soll, erweitern Sie es in dieser vollständigen Form.

rxjsHttpService.ts
ts
Ausführungsweise
ts
Generierte Dateien

Die Standardeinstellungen erzeugen die folgenden Dateien.

text

apiUnionArrays.tserzeugt nicht nur OpenAPI-Schema-Enums, sondern auch readonly-Konstantenarrays für die Enums von Abfrage-, Pfad-, Header- und Cookie-Parametern und verarbeitet auch die items.enum von Abfrageparametern.


Optional: Verbindung zwischen Backend-Swagger und Projekt-commonService

Hier beginnt ein Beispiel, wie der Generator mit einem echten Projekt verbunden wird. WebFlux/webflux-fe-dev-assistant ist nur eine Möglichkeit, Swagger bereitzustellen, und keine zwingende Abhängigkeit.

Vorbereitung der Swagger-Dokumentation

Swagger kann von Springdoc, anderen OpenAPI-Tools oder von Ihnen selbst erstellten Dateien stammen. Wenn Sie WebFlux-Funktionsendpunkte verwenden, können Sie webflux-fe-dev-assistantEs kann auch eine Methode verwendet werden, um Swagger-Dokumentation bereitzustellen.

Beispiel für die Generierung mit expliziten Optionen im Projekt

Sie können den Backend-Endpunkt, den zu speichernden swagger.json, den Typ-/Service-Ausgabepfad und commonServiceFile entsprechend der Projektstruktur angeben.

generateSwagger.cjs
js

In Umgebungen, in denen Dokumente nicht über HTTP empfangen werden können, können Sie die gleichen Ausgabeoptionen verwenden. Swagger aus Datei generierenkann verwendet werden.

commonServiceFile ist der Importzielpfad

commonServiceFileist der Pfad zur Projektbesitzdatei, die die generierte Dienstleistung callApi, callApiStream und den Cache-Wrapper importiert. Der Generator hat keine Option, diese Datei zu erstellen oder zu überschreiben.

ApiBusinessService.ts
ts
Beispiel für die Platzierung der Generierungsergebnisse im Projekt
text

Eine gemeinsame Datei, die als commonServiceFile wie rxjsHttpService.ts angegeben ist, wird direkt vom Projekt verwaltet. Die Ergebnisse unter auto und @types/auto werden neu generiert, wenn sich das Dokument ändert.

Dateinamen- und Funktionsnamensregeln

Der Name der Dienstdatei wird aus den ersten beiden Segmenten der URL gebildet, der Funktionsname aus dem dritten und den folgenden Segmenten. Pfadvariablen werden in der Form By + PascalCase in den Funktionsnamen aufgenommen.

GET /api/business/workplaces/search

ApiBusinessService.ts → workplacesSearch({ params })

GET /api/business/workplaces/{id}

ApiBusinessService.ts → workplacesById({ path })

GET /api/orders/history/search

ApiOrdersService.ts → historySearch({ params })

POST /oauth2/login

Oauth2LoginService.ts → post({ body })

Argumente für den Aufruf der Generierungsfunktion
GeneratedServiceUsage.tsx
tsx

Der Schlüssel für die Abfrageparameter des generierten Dienstes ist params, die Pfadvariable ist path, der Anfragekörper ist body. Innerhalb der Generierungsfunktion werden sie jeweils in die ServiceArguments von queryString, pathVariable und body umgewandelt.

© 2026 Byeolnaerim. Alle Rechte vorbehalten.EinführungDatenschutzrichtlinie