1. Introduction
L'objectif de Swagger est de définir une interface standard indépendante du langage pour l'API REST, permettant aux utilisateurs de découvrir et de comprendre les fonctionnalités des services informatiques sans accéder au code source. Lorsqu'ils sont correctement définis par Swagger, les utilisateurs peuvent comprendre et interagir avec les services distants avec une quantité minimale de logique d'implémentation. Semblable à l'interface faite par programmation de bas niveau.
2. Étapes de mise en œuvre
1. Ajouter des dépendances Maven
<dependency> <proupId> io.springfox </rom grouped> <Artifactid> springfox-swagger2 </retifactid> <version> 2.6.1 </-version> </Dependance>
2. Classe de configuration de Swagger
@ Configuration @ ActivedWagger2 // @ ComponentsCan (BasEpackageClasses = JGBJBaseInfoCompanyapi.Class) ou @ComponentsCan (basepackages = "com.summersoft.ts.schedule.superVision.Controller") // La trajectoire de pack swaggerspringmvcplugin () {return nouveau dossier (documentationType.swagger_2) .apiinfo (apiinfo ()) .select () // sélectionnant quels chemins et API générera un document .apis (demandeshandlerselectors.any ()) // SCANILER ALL APIS.PATHS (pathselector } / ** * API Informations spécifiques * * @Return * / private apiinfo apiinfo apiinfo () {apiinfo apiinfo = new apiinfo ("Doard Service Platform Document", // title "", // description "1.0", // version "," "", "", // Signature "" // lien de signature);3. Notes de fanfaronnade
Swagger analysera le fichier de classe avec l'annotation de Swagger sous le chemin du package configuré dans SwaggerConfig, et générera enfin une série de fichiers JSON numérisés ...
Annotation de fanfaron Description: https://github.com/swagger-api/swagger-core/wiki/annotations#apimodel
@API: Utilisé sur une classe pour illustrer la fonction de la classe. Il convient de noter que la valeur utilisée dans les anciennes versions représente le nom de classe généré par numérisation. Après 1,5, la balise doit être utilisée pour représenter le nom de classe.
@API (tag = "userController", description = "API lié à l'utilisateur")
@ApiOperation: utilisé dans les méthodes pour illustrer la fonction des méthodes
@ApiOperation (value = "find utilisateur", notes = "finir l'utilisateur", httpMethod = "get", produit =
Mediatype.application_json_utf8_value)
@Apiparam: utilisé dans la liste des paramètres pour indiquer la signification du paramètre
@Apiparam (valeur = "créer ou mettre à jour l'heure actuelle (mois)") Temps entier
@APIimplicitParams: Utilisé pour inclure un ensemble de descriptions de paramètres sur la méthode
@APIimplicitParam: Utilisé dans @APIimplicitParams Annotation, spécifiant divers aspects d'un paramètre de demande
Paramtype: où placer le paramètre
En-tête> Demande Acquisition des paramètres: @RequestHeader
Requête> Request Paramètre Acquisition: @RequestParam
Chemin (pour l'interface Restful)> Obtenir des paramètres de demande: @pathvariable
corps (pas couramment utilisé)
formulaire (pas couramment utilisé)
Nom: Nom du paramètre
type de données: type de paramètre
requis: si le paramètre doit être passé
Valeur: la signification du paramètre
DefaultValue: la valeur par défaut du paramètre
@APIIMPLICITPARAMS ({
@APIIMPLICtParam (name = "id", value = "Unique ID", obligatoire = true, dataType = "long", paramtype = "path"),
})
@APiRESPONSES: Utilisé pour représenter un ensemble de réponses
@APiResponse: utilisé dans @APiResponses, il est généralement utilisé pour exprimer des informations de réponse d'erreur
Code: numéro, par exemple 400
Message: des informations, telles que "les paramètres de demande non remplis"
Réponse: classe qui lance l'exception
@APiResponses (valeur = {
@ApiResponse (code = 400, message = "aucun nom fourni")
})
@APIMODEL: décrit les informations d'un modèle (ceci est généralement utilisé lors de la création d'un message, en utilisant des scénarios @Requestbody, et les paramètres de demande ne peuvent pas être décrits à l'aide de @APIimplicitParam Annotation)
@Apimodel (valeur = "classe d'entité utilisateur")
@Apimodelproperty: décrivez les propriétés d'un modèle
@Apimodelproperty (value = "Login User")
3. Swagger-UI
Avec les informations de configuration ci-dessus, Swagger nous aidera à analyser toutes les informations de classe et à générer un fichier JSON. Pour rendre les fichiers JSON amicaux avec les gens, vous devez utiliser le composant Swagger-UI:
1. Instructions de Swagger-Ui: https://swagger.io/docs/swagger-tools/
2. Télécharger Swagger-UI, créer un nouveau répertoire Swagger dans le répertoire WebApp, mettre les fichiers dans le répertoire DIST dans le répertoire Swagger et modifier le fichier index.html. Par défaut, vous devez obtenir le JSON de l'API à partir de la connexion http://petstore.swagger.io/v2/swagger.json. Ici, vous devez modifier la valeur URL en http: // {ip}: {port} / {projectName} / api-docs, et les valeurs en {} sont remplies selon leur propre situation.
Par exemple, ma valeur d'URL est:
http: // localhost: 8080 / bons / api-docs. De plus, vous devez configurer la version des ressources de Spring MVC: <MVC: Ressources Mapping = "/ Swagger / **" Location = "/ Swagger /" />
Conseils: il n'y a pas autant de fichiers dans le répertoire DIST par défaut. Swagger-UI peut être personnalisé. Ceci est utilisé dans notre projet. Il n'est pas nécessaire de modifier le nom du projet. Le nom du projet est obtenu dynamiquement: https://files.cnblogs.com/files/jmcui/swagger.zip
3. Comment trier les interfaces affichées:
APISSORT: appliquez le tri à la liste API / TAG. Il peut être «alpha» (trié par nom) ou une fonction (voir array.prototype.sort () pour le fonctionnement des fonctions de tri). La valeur par défaut est que l'ordre renvoyé par le serveur reste inchangé.
Opérations: appliquez un tri à la liste d'opérations pour chaque API. Il peut s'agir de 'alpha' (trié par alphanumérique), 'méthode' (trié par la méthode http) ou de la fonction (voir array.prototype.sort () pour savoir comment fonctionnent les fonctions de tri). La valeur par défaut est que l'ordre renvoyé par le serveur reste inchangé.
Le tutoriel ci-dessus (partage) pour configurer le plug-in Swagger dans SpringMVC est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.