Gute Erholung-code-Generierung und Dokumentation-tool
Habe ich zu überlegen, eine Dokumentation, ein Werkzeug für den Aufbau eines backend für eine web-service verwendet werden, in der mehrere clients zusammen mit OAuth und die Möglichkeit, mehrere Revisionen. Ich wusste bereits über die Imkerei, aber dabei ein wenig Forschung, die ich fand andere wesentlich gute Lösungen mit lukrativen Versprechungen.
RAML scheint sein Versprechen gute code-Generierung und-api Wiederverwendbarkeit. Aber es scheint nicht in der Lage sein, erstellen Sie ein mock-server. Und ich kann nicht verstehen, warum apiblueprint kann nicht verwendet werden zum generieren von client-Seite libs und server-Seite skeletons für die REST-API.
Die besten Fall für uns sein wird bei der Dokumentation der api, client iOS/Android/wp/js-Bibliothek für den Konsum der service kann automatisch generiert, zusammen mit einem node-express/restify app, die bietet skeleton-code zu schreiben. Zusammen mit api-tests und Last-tests.
Welche Lösung aus RAML/Swagger/Bienenstand am besten passt?
Code gen für javascript ist bereits verfügbar, es wird hier verwendet, github.com/mulesoft/api-console/blob/master/bower.json.
github.com/raml-org/raml-js-parser Finden Sie unten in der Readme-Datei.md "in browser usage".
Die api-Konsole ist nicht eine leichte Berührung. Es ist fast ein megabyte code minified. Um zu analysieren, eine Daten-Struktur und wandelt es in eine Liste, die Sie fühlte, es wäre notwendig, Stopfen eckig, bootstrap und jQuery in Ihre vendor.js Datei und Ihren eigenen code... Heilige Kuh. Sie erfinden das date-Objekt an einem Punkt und definieren Sie Ihre eigenen forEach-Methode. Oh, und es gibt eine schöne Funktion, wo Sie können, lassen Sie alle RAML Abhängigkeiten und Eigenschaften gebaut, die auf der client-Seite, indem Sie weitere Dateien aus dem !@#$ing-server. Was % der Java-Entwickler denken Sie immer wählen, wird die perf Mord?
InformationsquelleAutor JehandadK | 2014-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte Swagger Codegen (kostenlos, open-source), welche erzeugen kann, die sowohl server-stubs und-API-clients in verschiedenen Sprachen.
Viele Unternehmen/Projekte sind unter Verwendung es in der Produktion: https://github.com/swagger-api/swagger-codegen#companiesprojects-using-swagger-codegen
Unterstützte Sprachen/frameworks:
API-clients: ActionScript, Bash, C# (.net 2.0, 4.0 oder höher), C++ (cpprest, Qt5, Tizen), Clojure, Dart, Elixier, Go, Groovy, Haskell, Java (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Finte), Node.js (ES5, ES6, AngularJS mit Google Closure Compiler Anmerkungen) Objective-C, Perl, PHP, Python, Ruby, Scala, Swift (2.x, 3.x), Typoskript (Angular1.x, Angular2.x, Fetch, jQuery, Node)
Server-stubs: C# (ASP.NET Kern, NancyFx), Erlang, Go, Haskell, Java (MSF4J, Feder, Sog, JAX-RS: CDI, CXF, Beugung, RestEasy), PHP (Lumen, Schlank, Silex, Zend Expressive), Python (Flask), NodeJS, Ruby (Sinatra, Rails5), Scala (Finch, Scalatra)
API-Dokumentation Generatoren: HTML, Confluence Wiki
Disclaimer: ich bin einer der top-Autoren auf der open-source-Projekt.
UPDATE: Mai 2018, über 50 top-Autoren und-Vorlage Macher von Swagger Codegen beschlossen, Gabel Swagger Codegen zu pflegen, eine von der community getriebene version namens Open API-Generator. Bitte beachten Sie die Q&A für weitere Informationen.
swagger codegen ist Teil der
Swagger
ökosystem. Der Autor hat Fragen, aber niemand hat, sofern keine details über Fors oder Fors-codegen so weit. Das ist, warum ich zeigte es deutlicher machen, um andere, die haben die gleichen Fragen.InformationsquelleAutor William Cheng
Disclaimer: ich arbeite für Bienenstand
Ich glaube nicht, dass es eine gute Idee.
Ihren Bedarf für mock-server Hinweise auf die Tatsache, dass du akzeptiert hast den Pfad Beschreibung-bevor-Umsetzung, die ist gut.
Aber die Idee ist, dass nach der Entwicklung mit mock-server, die Sie Durchlaufen auf dem API design (das ist einer der Gründe, warum es Sinn macht, es zu tun in "text" - tools anstelle von code)...und , dass ist der harte Teil.
Gibt es einige schwellen-tools zur Unterstützung von Gerüsten, aber das eigentliche problem ist, wie Sie das update eingerüstet app nach der Blaupause wurde aktualisiert. Ich kenne einige Leute die Bewältigung dieser, aber Sie sind noch nicht veröffentlicht.
Meiner Meinung nach, der beste Ansatz ist die Entwicklung von realen Prototyp gegen die verspottet-API zum testen der UX für die entsprechende app. Ist die Konstruktion ausreichend stabil ist, Sie beginnen mit der Entwicklung von anderen clients als auch für server -, schließlich die Verlängerung der ursprünglichen design.
Testen Sie Sie mit den entsprechenden tools befinden sich in den jeweiligen Sprachen als am besten für den gegebenen Anwendungsfall. Um zu testen, die Implementierung ist konform zu blueprint (aka SCHRIFTLICHEN Vertrag), die Sie verwenden können,dredd.
Jedes tool, das arbeitet obendrein sollten, nehmen Blaupause als input statt Generierung der Bibliothek zu erweitern, manuell, dass ist nicht mehr zu halten.
Die Frage wäre, kann ein mock-API Blaupause verwendet werden, um automatisch generieren einer stark typisierten Bibliothek mit der richtigen Dokumentation für iOS und android, so dass UX getestet werden können? Werden die Informationen aufgeführt, die in Blau gedruckt genug für dies?
Außerdem-Format 1A Blueprint API dosent zu unterstützen scheint, die Sicherheit jederzeit schnell?
Ja, es gibt genug Informationen zu generieren, die stark typisierte Bibliothek. Nein, wir machen es nicht noch für die Gründe, die ich erwähnt.
Als "Sicherheit", das ist eine ausgefallene Art zu sagen "Authentifizierung"? Dieser ist bald mit 1B mit breiter Unterstützung für wiederverwendbare Muster. Siehe github.com/apiaryio/api-blueprint/issues/11 mit Fragen.
InformationsquelleAutor Almad
RAML bietet einen integrierten, kostenlosen, gehosteten service mocking, können Sie die Bereitstellung mit einem einzelnen Taste klicken Sie in der API Designer. Sobald du Sie aktiviert hast Spott, versuchen-es wird sofort aktiviert in die integrierte API-Konsole, und Sie können die weitere Ausübung Ihres verspottet API durch die baseURI-eingefügt in Ihre RAML-Datei.
Darüber hinaus werden wir die open-sourcing zusätzliche server-frameworks (wir haben bereits Maultier und JAX-RS frameworks) in Naher Zukunft (einschließlich der Knoten). Client-Generierung ist ein bisschen weiter draußen, aber kommt auch ziemlich bald (javascript zuerst, dann die anderen).
Offenlegung: ich bin schwer beschäftigt mit der RAML-initiative, und die Arbeit für MuleSoft als Produkt-Manager für viele der RAML-tools, die wir entwickeln.
Wann kann ganz schnell bedeuten, für iOS gibt es eine roadmap?
InformationsquelleAutor comptly
Wenn die RAML-Konsole ist nicht leicht genug, finden Sie vielleicht https://github.com/kevinrenskers/raml2html wirklich nützlich und einfach, mit zu beginnen.
Enthalten nicht alle features, die RAML-Konsole ist (wie Ausprobieren, zum testen der API von dort), aber ist immer noch eine großartige Dokumentation-tool.
InformationsquelleAutor nohorbee