web-dev-qa-db-fra.com

Spring REST Documentation API utilisant Swagger

Je recherche un outil qui pourrait m'aider à générer de la documentation API RESTful. Mon serveur est écrit en Java et utilise le framework Spring MVC. Je n'ai pas de VUES sur mon serveur. C'est un service 100% RESTful et tout ce qu'il fait est de consommer du JSON et de cracher du JSON.

Je me demandais si Swagger est compatible avec les annotations Spring?

34
jsf

Il n'y a actuellement pas de module de swagger Spring MVC disponible (au moins de Wordnik) mais en général, activer le swagger sur un service basé sur JVM REST service est assez simple.

La prise en charge du serveur Swagger est divisée en deux parties - le serveur principal et l'intégration avec le service REST. Voir le Repo Swagger github . Le noyau Swagger définit le document qui représente le service REST, paramètres, valeurs autorisées, opérations HTTP, etc. L'intégration du serveur relie ce document à la structure du cadre REST. Wordnik utilise Jersey via JAX-RS et swagger-jaxrs ont été publiés pour effectuer cette intégration. Il existe également un module Swagger-Play qui sera publié sous peu dans le référentiel du module Play.

Si vous souhaitez activer le swagger sur un autre framework REST (comme Spring MVC), procédez comme suit:

1) Générez un lecteur API pour générer un objet com.wordnik.swagger.core.Documentation. Voir la version JAX-RS ainsi que celle pour play .

2) Créez un point de terminaison REST qui renvoie une version JSON/XML de l'objet Documentation au client. Encore une fois, JAX-RS et play =.

3) Ajoutez un filtre pour intercepter les demandes d'application de l'accès au niveau des ressources ou des objets.

Bref, cela pourrait être mis en place assez facilement.

21
fehguy

Il y a une implémentation Swagger-SpringMVC en cours ici et des exemples ici .

La spécification v1.2 est entièrement implémentée et prise en charge (c'est-à-dire que les modèles sont générés, avec une prise en charge complète des génériques), et elle est en cours de développement actif.

20
Marty Pitt

Une autre implémentation de Swagger pour Spring MVC est swagger4spring-web .

Il est similaire à Swagger-SpringMVC et prend en charge toutes les annotations Swagger et génère un schéma JSON pour les types de retour et les paramètres. Il fonctionne également sans annotations hétéroclites.

5
Waggins

Si vous n'êtes qu'après avoir généré un document API interactif (sans avoir besoin de collaboration de style wiki), I/O Docs serait une meilleure solution nécessite beaucoup moins d'efforts pour configurer, utiliser et personnaliser IMHO.

Il fonctionne sur nodejs et Redis. Il vous suffit d'écrire un schéma JSON de votre API et il génère un site HTML/JS qui décrit votre API et permet aux développeurs de jouer avec en direct à partir de leur navigateur.

Je prévois d'héberger mon API sur mon serveur (car exiger de quiconque d'installer 2 autres logiciels juste pour voir l'API serait fou) mais le schéma JSON lui-même a déjà une belle structure lisible et compacte qui je pense serait suffisante pour une collaboration avec d'autres programmeurs. C'est un petit projet.

Il y a une question similaire que vous voudrez peut-être vérifier.

3
Miranda

Swagger 2. est la dernière version de Swagger.

Il existe différentes variantes de Swagger maintenant disponibles pour différents besoins.

io.swagger est le package pour les bibliothèques swagger et vous avez besoin de jars Spring séparés pour le coupler avec Spring. Ceci est la version 2 de swagger.

io.springfox est Springfox Swagger2, où swagger est intégré à Spring.

com.mangofactory est un swagger intégré au framework Spring Web MVC.

3
Sampada