Swagger est un document d'interface Restful Document Automatic Generation + Functional Testing Function Logiciel. Cet article présente brièvement les méthodes et certains problèmes courants d'intégration de Swagger dans votre projet. Si vous souhaitez analyser le code source du projet en profondeur et en savoir plus, consultez les documents de référence.
Swagger est un cadre standardisé et complet pour générer, décrire, appeler et visualiser les services Web de style Restful. L'objectif global est de faire la mise à jour du client et du système de fichiers à la même vitesse que le serveur. Les méthodes de fichiers, les paramètres et les modèles sont étroitement intégrés dans le code côté serveur, permettant à l'API de toujours rester synchronisé. Swagger n'a jamais été plus facile de déployer et de gérer et d'utiliser des API puissantes.
Pour les étudiants qui déplacent des briques, l'écriture d'interfaces est facile, l'écriture de documents d'interface est très ennuyeuse. Si l'interface change, le maintien des documents d'interface est encore plus ennuyeux, vous pouvez donc souvent constater que le document ne correspond pas au programme.
Après un certain temps, même les développeurs étaient confus
Swagger2 résout rapidement et commodément les problèmes ci-dessus. Un nouveau favori qui peut organiser une puissante documentation d'API RESTful avec des programmes Spring MVC.
Le code suivant est directement ajouté
pom.xml
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion> 4.0.0 </ ModelVersion> <ProupId> com.zhongxin.wealth </preptid> <ArtefactId> Wealthweb </ artifactId> <DERSE> 0.0.1-snapshot </-version> <packaging> jar </packaging> <name> wealthweb </name> <description> Project de démo pour Spring Boot </ Description> <parent> <proupId> org.springframework.boot </proncId> <ArtifActid> Spring-boot-starter-Paris <version> 1.5.9.Release </ version> <RelativePath /> <! - Recherche parent de Repository -> </parent> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outpulencoding> utf-8 </project.reporting.outpulencoding> <Java.version> 1.8 </java.version> </properties> <Detendances> <Dependance> <proupId> org.springframework.boot </proncId> <Artifactid> printemps-boot-starter-web </lefacactid> </peedency> <pedidency> <proupId> Org.springFrameworkwork.boot </ groupID> <ArtefactId> Spring-Boot-Starter-Test </ Artifactid> <POPE> Test </cope> </Dependency> <Dedency> <ProupId> io.springfox </proupId> <Artefactid> Springfox-Swagger2 </ Artifactid> <DersonD> <ArtefactId> Springfox-Swagger-Ui </letefactId> <DERNÉRATION> 2.7.0 </DERNIERSE> </DENDENCENCE> </DENDENDENCES> </DRIGE>
Créer une classe de configuration
package com.zhongxin.wealth.apiconfig; import org.springframework.context.annotation.bean; import org.springframework.contex Springfox.Documentation.Builders.RequestHandlerselectors; Importer Springfox.Documentation.Service.apiinfo; Importer Springfox.Documentation.spi.DocumentationType; Importer Springfox.Documentation.spring.Web.Plugins.docket; Importer Springfox.Documentation.Sswagger2.annotitations.enableswager2; Dingys le 2017/12/8. * / @ Configuration @ activewagger2public class swagger2 {@bean public docket createstapi () {return new docket (documentationType.swagger_2) .apiinfo (apiinfo ()) .select () .apis (requestHandlerselectors.basepackage ("com.zhongxin.wealth.web")) .Paths (pathselectors.any ())) .build (); } private apiinfo apiinfo () {return new apiinfobuilder () .title ("Langfang Public Loan Big Data Statistics Results Interface") .Version ("1.0") .build (); }}Contrôleur d'écriture
Package com.zhongxin.wealth.web; import io.swagger.annotations.apioperation; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestMethod; import org.springframework.web.bind.annotation.restConter; Créé par Dingys le 2017/12/7. * / @ RestController @ requestmapping ("/ hello") public class hellowordController {@apioperation (value = "test interface", notes = "Ceci est juste une interface pour tester l'appel du contrôleur, sans aucune logique métier") @requestmapping (value = {"/ test"}, méthode = requestMethod.get) public string testhello () {return "; }}Le code est terminé, et l'effet est prêt
Cliquez sur essayer!
Est-ce très détaillé, très haut de gamme?
Remarque: La version Swagger2.2.2 que vous venez d'utiliser pendant le processus d'intégration aura un rappel d'erreur sur la page d'accueil.
{"SchemavalidationMessages": [{"Level": "Error", "Message": "Impossible de lire à partir du fichier http://127.0.0.1:8888/v2/api-docs"}]}Cependant, l'accès du navigateur: http://127.0.0.1:8888/v2/api-docs peut retrouver les résultats
? Interface "," Contact ": {}," Licence ": {}}," host ":" 127.0.0.1:8888" ,"basepath":"/" ,"tags":_ explosion":"hello-word-controller" ,lle description": hello word word word. Contrôleur "}]," paths ": {" / hello / test ": {" get ": {" tags ": [" Hello-Word-Controller "]," Résumé ":" Test Interface "," Description ":" Ceci est juste une interface pour tester l'appel du contrôleur, sans aucune logique commerciale "," OperationId ":" TestHellousGet "," Consumes ": [" Applat " ication/json”],"produces":["/"],"responses":{"200":{"description":"OK","schema":{"type":"string"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Trouvé"}}}}}}}La raison spécifique est inconnue et elle n'est pas apparue après la version 2.7.0.
Résumer
Ce qui précède est l'exemple de code de Springboot intégré Swagger qui vous a été introduit. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!