1. Einführung
Das Ziel von Swagger ist es, eine sprachunabhängige Standardschnittstelle für die Rest-API zu definieren, mit der Benutzer die Funktionalität von Computerdiensten ohne Zugriff auf den Quellcode ermitteln und verstehen können. Bei korrekter Definition durch Swagger können Benutzer Fernbedienungen mit einer minimalen Implementierungslogik verstehen und mit ihnen interagieren. Ähnlich wie die Schnittstelle durch Programmierung auf niedriger Ebene.
2. Implementierungsschritte
1. Fügen Sie Maven -Abhängigkeiten hinzu
<Depopenty> <gruppe> io.springfox </Groupid> <artifactId> Springfox-Swagger2 </artifactId> <version> 2.6.1 </Version> </abhängig>
2. Swagger -Konfigurationsklasse
@Configuration@EnableSwagger2//@ComponentScan(basePackageClasses = JgBjBaseInfoCompanyApi.class) or @ComponentScan(basePackages = "com.summersoft.ts.schedule.supervision.controller") //The package path to scan public class SwaggerConfig { @Bean public Docket swaggerSpringMvcPlugin() { Neues Docket (documentationType.swagger_2) .APIInfo (apiInfo ()) .Select () // Auswählen, welche Pfade und API Dokument generieren .APIS (RequestHandlerSelectors.any ()) // Überwachung aller APIS.Paths (pathselectors.any () // alle Paths () // alle Paths () builds (builds (); } /** * API -spezifische Informationen * * @return * /private apiinfo apiinfo apiinfo () {apiinfo apiinfo = new apiinfo ("Dooring Service Platform API -Dokument", // title "", // Beschreibung "1.0", // Release ",", ",", "", "" "" "."3. Swagger Notizen
Swagger scannt die Klassendatei mit Swagger -Annotation unter dem in SwaggerConfig konfigurierten Paketpfad und generiert schließlich eine Reihe gescannter JSON -Dateien ...
Swagger Annotation Beschreibung: https://github.com/swagger-api/swagger-core/wiki/annotations#apimodel
@API: Wird in einer Klasse verwendet, um die Funktion der Klasse zu veranschaulichen. Es ist zu beachten, dass der in älteren Versionen verwendete Wert den durch Scannen generierten Klassennamen darstellt. Nach 1.5 sollte das Tag verwendet werden, um den Klassennamen darzustellen.
@API (tag = "userController", Beschreibung = "benutzerbezogene API"))
@APIOperation: Wird in Methoden verwendet, um die Funktion von Methoden zu veranschaulichen
@Apioperation (value = "Benutzer finden", Notes = "Benutzer finden", httpMethod = "get", produziert =
Mediatype.application_json_utf8_value)
@Apiparam: Wird in der Parameterliste verwendet, um die Bedeutung des Parameters anzugeben
@APIPARAM (value = "Erstellen oder aktualisieren Sie die aktuelle Zeit (Monat)") Integer -Zeit
@ApiimplicitParams: Wird verwendet, um eine Reihe von Parameterbeschreibungen in die Methode aufzunehmen
@APIImplicitParam: Wird in @APIimPlictarams -Annotation verwendet, wobei verschiedene Aspekte eines Anforderungsparameters angegeben werden
Paramtype: Wo kann der Parameter platziert werden
Header> Anforderungsparameter Akquisition: @Requestheader
Abfrage> Anforderungsparameter Akquisition: @RequestParam
Pfad (für eine erholsame Schnittstelle)> Abrufen von Anforderungsparametern: @PathVariable
Körper (nicht häufig verwendet)
Form (nicht häufig verwendet)
Name: Parametername
Datentyp: Parametertyp
Erforderlich: Ob der Parameter übergeben werden muss
Wert: Die Bedeutung des Parameters
StandardValue: Der Standardwert des Parameters
@ApiimplicitParams ({{
@APIimPlictaram (name = "id", value = "eindeutig ID", fordert = true, DataType = "Long", paramtype = "path"),
})
@Apiresponses: Wird verwendet, um eine Reihe von Antworten darzustellen
@Apiresponse: Wird in @APIReales verwendet, wird es im Allgemeinen verwendet, um eine Fehlerantwortinformationen auszudrücken
Code: Nummer, zum Beispiel 400
Meldung: Informationen wie "Anforderungsparameter nicht ausgefüllt"
Antwort: Klasse, die Ausnahme ausgelegt hat
@Apiresponses (value = {
@Apiresponse (Code = 400, Message = "No Name angegeben"))
})
@Apimodel: Beschreibt die Informationen eines Modells (dies wird normalerweise beim Erstellen eines Beitrags verwendet @RequestBody -Szenarien, und die Anforderungsparameter können nicht mit @APIimPlictaram -Annotation beschrieben werden)
@Apimodel (value = "Benutzerentitätsklasse")
@ApimodelProperty: Beschreiben Sie die Eigenschaften eines Modells
@ApimodelProperty (value = "Login -Benutzer")
3. Swagger-UI
Mit den oben genannten Konfigurationsinformationen hilft uns Swagger dabei, alle Klasseninformationen zu scannen und eine JSON -Datei zu generieren. Um JSON-Dateien freundlich zu Menschen zu machen, müssen Sie die Swagger-UI-Komponente verwenden:
1. Swagger-UI Anweisungen: https://swagger.io/docs/swagger-tools/
2. Laden Sie Swagger-UI herunter, erstellen Sie ein neues Swagger-Verzeichnis im WebApp-Verzeichnis, legen Sie die Dateien in das DIM-Verzeichnis in das Swagger-Verzeichnis und ändern Sie die Datei index.html. Standardmäßig müssen Sie den JSON der API von der Verbindung http://petstore.swagger.io/v2/swagger.json holen. Hier müssen Sie den URL-Wert auf http: // {ip}: {port}/{projectName}/api-docs ändern, und die Werte in {} werden gemäß ihrer eigenen Situation ausgefüllt.
Zum Beispiel ist mein URL -Wert:
http: // localhost: 8080/voucher/api-docs. Darüber hinaus müssen Sie die Ressourcenveröffentlichung von Spring MVC konfigurieren: <MVC: Ressourcen maping = "/Swagger/**" location = "/Swagger/"/>
Tipps: Es gibt nicht so viele Dateien im Standard -Dist -Verzeichnis. Swagger-UI kann angepasst werden. Dies wird in unserem Projekt verwendet. Es ist nicht erforderlich, den Projektnamen zu ändern. Der Projektname wird dynamisch erhalten: https://files.cnblogs.com/files/jmcui/swagger.zip
3.. So sortieren Sie die angezeigten Schnittstellen:
APISSORTER: Sortieren auf die API/Tag -Liste. Es kann "Alpha" (sortiert nach Namen) oder eine Funktion (siehe Array.Prototype.sort () sein, wie Sortierfunktionen funktionieren). Die Standardeinstellung ist, dass die vom Server zurückgegebene Bestellung unverändert bleibt.
OperationsSorter: Wenden Sie eine Sortierung für jede API auf die Betriebsliste an. Es kann "Alpha" (sortiert nach alphanumerisch), "Methode" (sortiert nach HTTP -Methode) oder Funktion (siehe Array.Prototype.sort (), um zu wissen, wie Sortierfunktionen funktionieren). Die Standardeinstellung ist, dass die vom Server zurückgegebene Bestellung unverändert bleibt.
Das obige Tutorial (Share) zum Konfigurieren des Swagger-Plug-Ins in SpringMVC ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.