2017-05-02 2 views
0

Für ein Webprojekt möchte ich eine Swagger (open api) API erstellen, die sowohl für den Backend-Server (go) als auch für das Frontend (aurela-cli + typescript) verwendet werden kann).Integrieren Sie swagger typescript-fetch api in aurelia-cli tyepscript project

Die swagger-codegen Werkzeug unterstützt die folgenden Client-Generatoren
- Maschinenschrift-Winkel
- Maschinenschrift-angular2
- Maschinenschrift-Knoten
- Maschinenschrift-fetch

Nun sind die ersten drei offensichtlich gelten nicht für Dieses Problem so bin ich mit typescript-fetch verlassen. So generieren Sie den Client von einem swagger.yml ich folgenden:
swagger-codegen generate -i swagger.yml -l typescript-fetch -o api

Dies führt zu einem Projektordner wie in den swagger repository gesehen.

Die Frage ist, wie man dies in ein Aurelia-Projekt einbezieht.

Ich lief bereits npm install was zu einer transpilierten api.js (und entsprechende api.d.ts) führte. Ich bin mir jedoch unsicher, wie ich als nächstes vorgehen soll.

1) Wo sollte ich diesen Ordner ablegen?
- src/api
- node-modules/<fake-module-name>
- woanders

2) Wie kann ich aurelia über das 'Modul' in der Datei aurelia.json informieren?
- "<fake-module-name>"
- "{ "name": "<fake-module-name>", "path": "../node_modules/<fake-module-name>dist", "main": "api" }
- etwas anderes

Das Hauptproblem ich schlagen bin, ist, dass, obwohl aurelia.json über die api weiß in dem Modul, den Build-Prozess die Abhängigkeiten innerhalb dieses Moduls bringen (au run --watch) zum Erliegen, da sie in dem Front-End des Verzeichnis src irgendwie gesucht werden.

Jede Hilfe, wie diese.

PS erkannt werden, sehr zu lösen habe ich eine leichtes Gefühl, dass ich die Abhängigkeiten und Abhängigkeiten des API-Moduls "einfach" in die aurelia.json importieren müsste ...

+0

Haben Sie versucht, Nswag anstelle von clientseitig codegen zu verwenden? Ich erwähne es, weil es eine bestimmte Aurelia Abruf-Client-Implementierung hat. Sie müssen kein .NET-Backend verwenden, damit es funktioniert. Eine swagger.json-Datei sollte den Zweck erfüllen. siehe: https://github.com/NSwag/NSwag –

+0

Ja, ich habe schon in nswag geschaut (nur vergessen, es zu erwähnen ..). Ich fühlte mich nicht wohl dabei, es in unseren Build-Prozess einzuführen, da wir nicht unter Windows arbeiten und Mono oder die .NET-Konsolenbibliothek als Dev-Abhängigkeit benötigen. – Nikola

Antwort

0

I modifizierte eines der anderen Typoskript Generatoren ein Typoskript-Client zu generieren für die Aurelia-Client Fetch:

https://github.com/jeremeevans/typescript-aurelia-fetch-client-generator

Meine Dokumentation gibt es ziemlich gerade jetzt schrecklich, aber die grundlegenden Schritte sind:

  1. Clone Swagger Codegen: git clone https://github.com/swagger-api/swagger-codegen.git
  2. Navigieren sie zu dem Prahlerei-CODEGEN Verzeichnis und bauen/installieren:
    • mvn sauber Paket
    • mvn install
  3. zu Ihrem git Verzeichnis Gehen Sie zurück und klonen das Typoskript-aurelia-Fetch-client-Generator: Git-Klon https://github.com/jeremeevans/typescript-aurelia-fetch-client-generator.git
  4. Navigieren Sie zu dem Typoskript-aurelia- fetch-client-Generator-Verzeichnis und bauen sie:
    • MVN Paket

dann eine Konfigurationsdatei für Ihre Bibliothek erstellen:

{ 
    "packageName": "MyLibraryName", 
    "modelPropertyNaming": "original" // if you want to keep your casing on the models. 
} 

Dann wird Ihr Typoskript Client zu bauen, navigieren Sie zu dem Swagger Codegen Verzeichnis und führen:

java -cp '../typescript-aurelia-fetch-client-generator/target/typescript-aurelia-fetch-client-swagger-codegen-1.0.0.jar;./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar' io.swagger.codegen.Codegen -i http://localhost:8080/swagger/docs/v4 -l typescript-aurelia-fetch-client -o c:\temp\OutputFolder -c C:\temp\yourconfig.json 

Offensichtlich ersetzen http://localhost:8080/swagger/docs/v4 mit der Pfad zu Ihrer Swagger-Definition.

Wenn dies Ihnen geholfen hat, bitte markieren Sie das Repository. Auch Beiträge sind willkommen.

Verwandte Themen