2017-06-20 2 views
-1

Ich habe ein bestehendes Vert.x Projekt, das zu Schwergewicht und intransparent geworden. *generieren Prahlerei-api mit bestehenden Vert.x Projekt

es zu ersetzen ich mehrere Optionen bin Überprüfung, einer von denen zu sein Prahlerei.

Kennt jemand eine Opensource-Lib, die eine swagger-api von vert.x erstellen kann?

+0

Swagger erzeugt APIs und dokumentiert sie in einer freundlichen Art und Weise. Jetzt verstehe ich, dass Sie bereits APIs haben. Möchten Sie diese dokumentieren, in der Hoffnung, dass dadurch die Transparenz verbessert wird? –

+0

Hallo @Alexey Soshin, ich dachte über diesen Plan zu folgen: 1. Generieren Sie Swagger-API-Dokumentation mit vorhandenen vert.x-Code. 2. Erzeuge nodejs oder Spring Boot Server Stubs mit dem neu erstellten swagger-api 3. geniesse ein neues vert.x-freies Leben. –

Antwort

1

Mir ist nicht so etwas bekannt. Die einzige VertX-Prahlerei Integration ist genau das Gegenteil: erzeugt Vertx Router auf Swagger Konfiguration basiert: https://github.com/phiz71/vertx-swagger

Was können Sie tun, ist es, alle Routen erzeugen mit dieser Lösung: List all registered routes in Vertx

sie Dann fügen Sie manuell Swagger Editor und Schließlich generieren Sie Ihre neuen APIs mit Swagger Codegen

Denken Sie daran, dass das Umschreiben Ihrer Anwendung in eine andere Sprache oder ein Framework wahrscheinlich nicht Ihre Probleme lösen wird. NodeJS ist nicht so sicher wie Vertx und SpringBoot ist nicht so parallel wie Vertex. Aber wenn Sie weder Typsicherheit noch Nebenläufigkeit benötigen, sind natürlich beide Optionen möglich.

+0

Danke Alexey, es scheint keinen anderen Weg zu geben, aber die Endpunkte manuell hinzuzufügen –

0

Hier ist ein Open-Source-Projekt (für die JVM), die eine Swagger/OpenAPI-Spezifikation aus Ihrem bestehenden Vert.x Router erzeugt:

https://github.com/outofcoffee/vertx-oas

(Disclosure: Es ist mein Open-Source-Projekt)

Beispiel Nutzung:

// your normal Vert.x Web Router with paths etc. 
Router router = Router.router(vertx); 
router.post("/users").handler(routingContext -> { /* etc... */ }); 
router.get("https://stackoverflow.com/users/:userId").handler(routingContext -> { /* etc... */ }); 

// publish the Swagger/OpenAPI specification to a URL 
RouterSpecGenerator.publishApiDocs(router, "/api/spec"); 

Sie YAML oder JSON-Versionen th erhalten Die Spezifikation durch Hinzufügen der entsprechenden Dateierweiterung.

Zum Beispiel /api/spec.yaml holen würde produzieren:

openapi: "3.0.1" 
info: 
    title: "Vert.x APIs" 
    description: "This specification was generated from a Vert.x Web Router." 
paths: 
    /users: 
    post: 
     parameters: [] 
    /users/{userId}: 
    get: 
     parameters: 
     - name: "userId" 
     required: true 
     allowEmptyValue: false 
Verwandte Themen