Swagger integration in Dropwizard
Ich bin ziemlich neu zu drop wizard (dropwizard.io) & gerade abgeschlossen Ihre tutorial. Ich würde gerne integrieren Swagger (prahlen.io) in diesem Beispiel-app.
Ich fand:
- github.com/federecio/dropwizard-swagger-sample-app
- github.com/federecio/dropwizard-swagger
Den generierten JSON-scheint Recht ähnlich zu sein, allerdings kann ich nicht erweitern, der REST Mittel, um Ihre jeweiligen Operationen.
Der einzige Unterschied, den ich bemerkte, war, dass der Beispiel-code von Fors integration SERVER verwendet, während die offizielle drop-Assistenten-Beispiel ist die ANWENDUNG
Hier ein Bild (i.stack.imgur.com/QzhPa.png)
Bitte könnten Sie mir sagen, was falsch ist in meinem Ansatz.
Ich danke Ihnen sehr. Hier ist der code zu meinem Ansatz: https://github.com/geoHeil/dropwizardSwaggerIntegrationNotWorking
Edit:
JS:
for api - docs {
"apiVersion": "0.0",
"swaggerVersion": "1.2",
"apis": [{
"path": "/sample"
}, {
"path": "/hello-world",
"description": "Operations about greetings"
}]
}
for sample {
"apiVersion": "0.0",
"swaggerVersion": "1.2",
"basePath": "http://geoHeil.local:8080",
"resourcePath": "/sample",
"apis": [{
"path": "/sample",
"operations": [{
"method": "GET",
"summary": "Sample endpoint",
"notes": "",
"type": "void",
"nickname": "get",
"authorizations": {},
"parameters": []
}]
}, {
"path": "/sample/hello-with-path-param/{name}",
"operations": [{
"method": "GET",
"summary": "Sample endpoint with path param",
"notes": "",
"type": "void",
"nickname": "getWithPathParam",
"authorizations": {},
"parameters": [{
"name": "name",
"required": true,
"type": "string",
"paramType": "path"
}]
}]
}, {
"path": "/sample/hello-with-query-param",
"operations": [{
"method": "GET",
"summary": "Sample endpoint with query param",
"notes": "",
"type": "void",
"nickname": "getWithQueryParam",
"authorizations": {},
"parameters": [{
"name": "name",
"required": false,
"type": "string",
"paramType": "query"
}]
}]
}]
}
for hello - world {
"apiVersion": "0.0",
"swaggerVersion": "1.2",
"basePath": "http://geoHeil.local:8080",
"resourcePath": "/hello-world",
"apis": [{
"path": "/hello-world",
"operations": [{
"method": "GET",
"summary": "Greetings endpoint",
"notes": "",
"type": "void",
"nickname": "sayHello",
"authorizations": {},
"parameters": [{
"name": "name",
"required": false,
"items": {
"type": "string"
},
"paramType": "query"
}]
}]
}]
}
- Welche version von swagger-ui benutzt du? Sie können überprüfen, dass die Oberseite der swagger-ui.js Datei.
- Ich war mit:<Abhängigkeit> <groupId>io.federecio</groupId> <artifactId>dropwizard-swagger</artifactId> <version>0.5.2</version> </Abhängigkeit> ein Bild kann gefunden werden dropbox.com/s/bsvfpvahp3ari3r/Swagger_UI.png?dl=0 ich konnte NICHT finden die Informationen zur version auf der Spitze der js-Datei.
- Aber in der JS-Konsole einige Fehler wie UncaughtType Fehler auftauchte
- Ich habe nicht ein dropwizard-Umgebung bereit. Jede chance, die Sie Bearbeiten können, die Frage und die letzten beiden den Ausgang Ihres /api-docs /api-docs/sample?
- sicher: api-docs: {"apiVersion":"0.0","swaggerVersion":"1.2","apis":[{"path":"/sample"},{"path":"/hello-world","description":" Bedienung über die Grüße"}]}
- Das ist nur die api-docs. Ich brauche die Ausgabe von /api-docs/sample-und /api-docs/Hallo-Welt als gut. Sie werden nicht in der Lage, um es in einem Kommentar, die Sie haben zu Bearbeiten Sie die Frage.
- dropbox.com/s/ztrj1j7ogpgxw0z/Swagger_UI.txt?dl=0 (war zu lang für einen Kommentar)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich sehe nichts offensichtlich in den generierten JSON-dazu führen würde, dass die Vorgänge sich nicht erweitern.
Jedoch, die swagger-ui zusammen mit der dropwizard-swagger-Paket ist ein bisschen alt. Ich würde versuchen, mit den neueren version von swagger-ui.
Ich bin mir nicht sicher, ob es in Konflikt mit der gebündelten swagger-ui oder nicht, aber im Grunde brauchen Sie zum Klonen https://github.com/swagger-api/swagger-ui und kopieren Sie die /dist-Verzeichnis auf Ihrem statischen Inhalt.
Weitere option ist die Ausführung des swagger-ui-lokal (nur für Testzwecke), aber die Eröffnung der /dist/index.html und zeigt es bei Ihr /api-docs-Verzeichnis. Jedoch in Reihenfolge für die, um richtig zu arbeiten, würden Sie brauchen, um CORS - https://github.com/swagger-api/swagger-ui#cors-support.
EDIT:
Ich habe nicht bemerkt, Sie bearbeitet die Frage, mit der JSON -, und es machte es leichter zu Lesen.
Es gibt ein problem mit der GET /Hallo-Welt Betrieb. Es sieht aus wie es soll, um zu akzeptieren ein array von strings als Abfrage-parameter, aber der parameter fehlt, ist ein
"type": "array"
in der definition. Ich kann nicht sagen, was verursacht es, ohne zu sehen, die Methode der Erklärung und seine Anmerkungen, aber das ist, was Sie betrachten sollten.Gibt es jetzt eine Stolzieren spec 2.0 Beispiel:
https://github.com/swagger-api/swagger-samples/tree/master/java/java-dropwizard
Diese nutzt die neuesten Fors core-Bibliotheken, die mit minimalen Abhängigkeiten. Beachten Sie, dass die version von Jackson musste dringend aktualisiert werden, von dropwizard ist 2.3.2 swagger ' s 2.4.2.