Skip to Content

OpenAPI Generator

@5minds/node-red-openapi-generator — Automatische OpenAPI 3.0-Dokumentation aus Node-RED HTTP-Nodes mit Swagger UI.

Überblick

Der OpenAPI Generator erstellt automatisch eine OpenAPI 3.0-Spezifikation aus Node-RED HTTP-In-Nodes. Die generierte Dokumentation ist über ein integriertes Swagger UI zugänglich.

npm-Paket: @5minds/node-red-openapi-generator Version: 1.1.x Lizenz: Proprietary

Config-Node

swagger-doc

Wird einem HTTP-In-Node zugeordnet, um Metadaten für die OpenAPI-Dokumentation zu definieren.

Konfiguration:

EigenschaftTypBeschreibung
summarystringKurzbeschreibung des Endpoints
descriptionstringAusführliche Beschreibung
tagsstringKommaseparierte Tags
deprecatedbooleanEndpoint als deprecated markieren
parametersArrayParameter-Definitionen
requestBodyObjectRequest-Body-Spezifikation
responsesObjectResponse-Definitionen

Parameter-Struktur:

{ name: "orderId", in: "path", // query, header, path, cookie required: true, description: "ID der Bestellung", schema: { type: "string" } }

RequestBody-Struktur:

{ description: "Bestelldaten", required: true, content: { "application/json": { schema: { type: "object", properties: { name: { type: "string" }, amount: { type: "number" } } } } } }

Response-Struktur:

{ "200": { description: "Erfolgreiche Antwort", content: { "application/json": { schema: { type: "object" } } } }, "404": { description: "Nicht gefunden" } }

HTTP-Endpunkte

EndpunktBeschreibung
GET /http-api/swagger.jsonGenerierte OpenAPI 3.0-Spezifikation
GET /swagger-ui/swagger-ui.htmlInteraktive Swagger UI

Konfiguration in settings.js

openapi: { template: { openapi: "3.0.0", info: { title: "Meine API", version: "1.0.0", description: "API-Beschreibung" }, servers: [ { url: "https://api.example.com", description: "Produktion" } ], components: { schemas: { Order: { type: "object", properties: { id: { type: "string" }, amount: { type: "number" } } } }, securitySchemes: { bearerAuth: { type: "http", scheme: "bearer", bearerFormat: "JWT" } } } } }

Verwendung

  1. HTTP-In-Node erstellen (z.B. GET /api/orders)
  2. swagger-doc Config-Node zuweisen
  3. Metadaten konfigurieren (Summary, Parameters, Responses)
  4. Deploy ausführen
  5. Dokumentation unter /swagger-ui/swagger-ui.html aufrufen

Features

  • Automatische Erkennung: Findet alle HTTP-In-Nodes mit swagger-doc
  • Path-Parameter: Konvertiert Node-RED-Format (:param) zu OpenAPI ({param})
  • Reusable Components: Wiederverwendbare Schemas und Parameter
  • Security Schemes: OAuth2, Bearer Token, API Key
  • Tag-Gruppierung: Endpoints nach Tags gruppieren
  • Swagger UI: Integrierte interaktive Dokumentation

Beispiel

[HTTP-In: GET /api/orders/:id] → [Function: Query] → [HTTP-Response] swagger-doc: summary: "Bestellung abrufen" parameters: [{name: "id", in: "path"}] responses: {200: {description: "Bestellung"}}

Installation

Im Enterprise Image enthalten. Keine separate Installation erforderlich.

Nächste Schritte