English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Guida alla configurazione dell'estensione Swagger in SpringMVC (condivisione)

一、Introduzione

Swagger ha lo scopo di definire un'interfaccia standard, indipendente dal linguaggio, per REST API, che permette agli utenti di scoprire e comprendere le funzionalità dei servizi informatici senza accedere al codice sorgente. Quando definito correttamente con Swagger, gli utenti possono comprendere e interagire con i servizi remoti con la minima logica di implementazione. Simile a un'interfaccia a basso livello nel programmazione.

二、Passi di implementazione

1、Aggiungi dipendenza Maven

<dependency>
 <groupId>io.springfox</groupId>
 <artifactId>springfox-swagger2</artifactId>
 <version>2.6.1</version>
</dependency>

2、Classe di configurazione Swagger

@Configuration
@EnableSwagger2
//@ComponentScan(basePackageClasses = JgBjBaseInfoCompanyApi.class) o
@ComponentScan(basePackages = "com.summersoft.ts.schedule.supervision.controller") // percorso del pacchetto da scansionare
public class SwaggerConfig {
 @Bean
 public Docket swaggerSpringMvcPlugin() {
 return new Docket(DocumentationType.SWAGGER_2)
  .apiInfo(apiInfo())
  .select() // seleziona quali percorsi e Api genereranno la documentazione
  .apis(RequestHandlerSelectors.any())// monitora tutti gli Api
  .paths(PathSelectors.any()) // scansiona tutti i percorsi
  .build();
 return apiInfo;
 /**
 * informazioni specifiche dell'API
 *
 * @return
 */
 private ApiInfo apiInfo() {
 ApiInfo apiInfo = new ApiInfo(
  "Documentazione API piattaforma di connessione", // titolo
  "", // descrizione
  "1.0", // versione
  "",
  "",
  "", // firma
  "" // collegamento firma
 );
 );}}
 return apiInfo;
return apiInfo;

}

3、annotazioni Swagger

Swagger scansionerà i file delle classi con annotazioni Swagger nel percorso di pacchetto configurato in SwaggerConfig e genererà infine un file Json di scansione...Spiegazione delle annotazioni Swagger:

https://github.com/swagger-api/swagger-core/wiki/Annotations#apimodel@Api :

usato sulla classe, per spiegare l'azione della classe, è necessario notare che nelle versioni più vecchie si usava value per indicare il nome della classe generata, dopo la versione 1.5 si deve usare tag per indicare il nome della classe

@Api(tag= "UserController", description = "api relativa agli utenti")@ApiOperation :

usato sul metodo, per spiegare l'azione del metodo

@ApiOperation(value = "trova utente", notes = "trova utente", httpMethod = "GET", produces =

MediaType.APPLICATION_JSON_UTF8_VALUE)@ApiParam :

usato nella lista dei parametri, per indicare il significato del parametro

@ApiImplicitParams :usato sul metodo, per includere spiegazioni di un gruppo di parametri

@ApiImplicitParam :usato nell'annotazione @ApiImplicitParams, per specificare vari aspetti di un parametro della richiesta

paramType:dove viene messo il parametro

header–>ottenimento dei parametri della richiesta:@RequestHeader

query–>ottenimento dei parametri della richiesta:@RequestParam

path(usato per l'interfaccia restful)–>ottenimento dei parametri della richiesta:@PathVariable

body(non utilizzato spesso)

form(non utilizzato spesso)

name:nome del parametro

dataType:tipo del parametro

required:se il parametro è obbligatorio

value:significato del parametro

defaultValue:valore predefinito del parametro

@ApiImplicitParams({

@ApiImplicitParam(name = "id", value = "id unico", required = true, dataType = "Long", paramType = "path"),
)

@ApiResponses :Usato per rappresentare un insieme di risposte

@ApiResponse :Utilizzato in @ApiResponses, generalmente utilizzato per esprimere un messaggio di risposta di errore

code: numero, ad esempio 400

message: informazione, ad esempio "I parametri di richiesta non sono stati compilati correttamente"

response: classe che lancia l'eccezione

@ApiResponses(value = {
@ApiResponse(code = 400, message = "Non è stato fornito un nome")
)

@ApiModel :Descrive le informazioni di un Model (solitamente utilizzato durante la creazione POST, in scenari come @RequestBody, quando i parametri di richiesta non possono essere descritti con l'annotazione @ApiImplicitParam)

@ApiModel(value = "Classe dell'utente")

@ApiModelProperty :Descrive un attributo del modello

@ApiModelProperty(value = "Utente loggato")

3. swagger-ui

Con le informazioni di configurazione sopra indicate, Swagger ci aiuterà a scansare tutte le informazioni delle classi e a generare un file JSON. Per visualizzare il file JSON in modo amichevole, è necessario utilizzare il componente swagger-ui:

1. Guida all'uso di swagger-ui:https://swagger.io/docs/swagger-tools/

2. Scarica swagger-ui Nel percorso webapp, crea una directory chiamata swagger e metti i file della directory dist nella directory swagger. Modifica anche il file index.html, che di default ottiene l'API JSON dal collegamento http://petstore.swagger.io/v2/swagger.json. È necessario modificare il valore dell'URL a http://{ip}:{port}/{projectName}/api-docs. I valori {} devono essere compilati in base alla tua situazione.

Ad esempio, il valore del mio URL è:

http://localhost:8080/vouchers/api-docs. Inoltre, è necessario configurare il rilascio delle risorse di Spring MVC: <mvc:resources mapping="/swagger/**" location="/swagger/"/>

consigli:La cartella di distribuzione predefinita dist non contiene così tanti file, swagger-ui può essere configurato personalmente, questo è quello che usiamo nel nostro progetto, non modificare il nome del progetto, il nome del progetto viene recuperato dinamicamente: https://files.cnblogs.com/files/jmcui/swagger.zip

3、Come ordinare le interfacce visualizzate da swagger-ui:

apisSorter :Applica un ordinamento alla lista delle etichette API. Può essere 'alpha' (ordinamento per nome) o una funzione (vedi Array.prototype.sort() per capire come funziona la funzione sort). Per default, l'ordine non cambia rispetto a quello restituito dal server.

operationsSorter :Applica un ordinamento alla lista delle operazioni per ogni API. Può essere 'alpha' (ordinamento alfanumerico), 'method' (ordinamento per metodo HTTP) o una funzione (vedi Array.prototype.sort() per sapere come funziona la funzione sort). Per default, l'ordine non cambia rispetto a quello restituito dal server.

Questo tutorial su come configurare l'estensione Swagger in SpringMVC (condivisione) è tutto ciò che l'editor ha condiviso con voi. Spero che questo possa essere un riferimento utile per voi e che possiate sostenere fortemente il tutorial di urla.

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright è dell'autore originale, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare