1. Introducción
El objetivo de Swagger es definir una interfaz estándar independiente del idioma para la API REST, lo que permite a los usuarios descubrir y comprender la funcionalidad de los servicios informáticos sin acceder al código fuente. Cuando Swagger definió correctamente, los usuarios pueden comprender e interactuar con los servicios remotos con una cantidad mínima de lógica de implementación. Similar a la interfaz realizada por programación de bajo nivel.
2. Pasos de implementación
1. Agregue dependencias maven
<Spendency> <MoupRoMID> io.springfox </groupid> <artifactId> springfox-swagger2 </arfactid> <verserse> 2.6.1 </versión> </pendency>
2. Clase de configuración de arrogancia
@Configuration @EngablesWagger2 // @ComponentScan (BasePackageClasses = jgbjbaseInfocompanyapi.class) o @ComponentsCan (basiente = "com.summersoft.ts.schedule.supervision.controller") // el paquete para escanear la clase pública swaggerConfig {@bean público swaggerspringspringspringspringMvcingMvcingMvcingMvclugin () () {return New Docket (DocumationType.Swagger_2) .ApiInfo (apiInfo ()) .select () // seleccionando qué rutas y API generarán documentos .APIS (requestHandLersElectors.any ()) // supervisando todas } /** * API Información específica * * @return * /private apiinfo apiinfo apiinfo () {apiinfo apiinfo = new apiInfo ("Documento de plataforma de servicio de puertas", // Title ", // Descripción" 1.0 ", // Release", "", "", "", // Signature Link LinkAtre3. Notas de arrogancia
Swagger escaneará el archivo de clase con la anotación de Swagger en la ruta del paquete configurada en SwaggerConfig, y finalmente generará una serie de archivos JSON escaneados ...
Descripción de la anotación de Swagger: https://github.com/swagger-api/swagger-core/wiki/annotations#apimodel
@API: se usa en una clase para ilustrar la función de la clase. Cabe señalar que el valor utilizado en versiones anteriores representa el nombre de clase generado por Scanning. Después de 1.5, la etiqueta debe usarse para representar el nombre de la clase.
@Api (tag = "UserController", Descripción = "API relacionada con el usuario")
@Apioperación: se usa en métodos para ilustrar la función de los métodos
@Apioperation (valor = "buscar usuario", notas = "buscar usuario", httpmethod = "get", produce =
Mediatype.application_json_utf8_value)
@Apiparam: utilizado en la lista de parámetros para indicar el significado del parámetro
@Apiparam (value = "Crear o actualizar la hora actual (mes)") Tiempo entero
@ApiimpliceTParams: se usa para incluir un conjunto de descripciones de parámetros en el método
@ApiimpliceTparam: se usa en @apiimpliceTparams Annotation, especificando varios aspectos de un parámetro de solicitud
ParamType: dónde colocar el parámetro
Encabezado> Solicitud de adquisición de parámetros: @RequestHeader
consulta> Solicitud de adquisición de parámetros: @RequestParam
ruta (para interfaz RESTFUL)> Obtener los parámetros de solicitud: @PathVariables
cuerpo (no se usa comúnmente)
forma (no se usa comúnmente)
Nombre: Nombre del parámetro
Tipo de datos: tipo de parámetro
Requerido: si se debe aprobar el parámetro
Valor: el significado del parámetro
DefaultValue: el valor predeterminado del parámetro
@ApiimpliceTparams ({
@ApiimpliceTParam (name = "id", value = "ID único", requerido = true, datatype = "long", paramType = "ruta"),
})
@Apirosponses: se usa para representar un conjunto de respuestas
@Apiresponse: utilizado en @apirosponses, generalmente se usa para expresar una información de respuesta de error
Código: Número, por ejemplo 400
Mensaje: Información, como "Parámetros de solicitud no completados"
Respuesta: clase que arroja excepción
@ApiresponseS (valor = {
@Apiresponse (código = 400, mensaje = "No se proporciona nombre")
})
@Apimodel: describe la información de un modelo (esto generalmente se usa al crear una publicación, utilizando @RequestBody Scenarios, y los parámetros de solicitud no se pueden describir usando @apiimpliceTparam Annotation)
@Apimodel (valor = "clase de entidad de usuario")
@Apimodelproperty: Describa las propiedades de un modelo
@Apimodelproperty (valor = "usuario de inicio de sesión")
3. Swagger-ui
Con la información de configuración anterior, Swagger nos ayudará a escanear toda la información de la clase y generar un archivo JSON. Para hacer que los archivos JSON sean amigables para las personas, debe usar el componente Swagger-UI:
1. Instrucciones Swagger-UI: https://swagger.io/docs/swagger-tools/
2. Descargue Swagger-UI, cree un nuevo directorio de Swagger en el directorio de WebApp, coloque los archivos en el directorio DIST en el directorio Swagger y modifique el archivo index.html. Por defecto, debe obtener el JSON de la API de la conexión http://petstore.swagger.io/v2/swagger.json. Aquí debe modificar el valor de URL a http: // {ip}: {puerto}/{ProjectName}/API-DOCS, y los valores en {} se completan de acuerdo con su propia situación.
Por ejemplo, mi valor de URL es:
http: // localhost: 8080/vouchers/api-docs. Además, debe configurar la liberación de recursos de Spring MVC: <mvc: recursos mapping = "/swagger/**" ubicación = "/swagger/"/>
Consejos: no hay tantos archivos en el directorio DIST predeterminado. Swagger-UI se puede personalizar. Esto se usa en nuestro proyecto. No hay necesidad de cambiar el nombre del proyecto. El nombre del proyecto se obtiene dinámicamente: https://files.cnblogs.com/files/jmcui/swagger.zip
3. Cómo ordenar las interfaces mostradas:
Apissorter: aplique la clasificación a la lista API/etiqueta. Puede ser 'alfa' (ordenado por nombre) o una función (ver Array.prototype.sort () para cómo funcionan las funciones de clasificación). El valor predeterminado es que el pedido devuelto por el servidor permanece sin cambios.
OperationsSorter: Aplique un tipo en la lista de operaciones para cada API. Puede ser 'alfa' (ordenado por alfanumérico), 'método' (ordenado por el método HTTP) o la función (ver Array.prototype.sort () para saber cómo funcionan las funciones de clasificación). El valor predeterminado es que el pedido devuelto por el servidor permanece sin cambios.
El tutorial anterior (Compartir) para configurar el complemento Swagger en SpringMVC es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.