1. Présentation des dépendances
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
2. Fichier de configuration
spring:
mvc:
# swagger配置
pathmatch:
matching-strategy: ant_path_matcher
Trois, classe de configuration swagger
@Configuration
public class Swagger3Config { @Bean public Docket createRestApi() { return new Docket(DocumentationType.OAS_30) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors. tout()) .build(); }
private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Swagger3 Interface Documentation") .description("Document Description") .contact(new Contact("Name", "URL", "Email")) .version( "1.0") .build(); } }
Quatrièmement, utilisez (annotations courantes)
sur la classe contrôleur
@Api(tags = "Interface de requête utilisateur", description = "Ajouter, supprimer, modifier, interroger la liste des utilisateurs, initialisation du mot de passe")
sur la méthode du contrôleur
@ApiOperation("query user list")
test : ouvrez http://localhost:9000/swagger-ui/index.html
1. @Api() : utilisé sur la classe demandée, indiquant la description de la classe, et représentant également que cette classe est une ressource swagger2
paramètre:
tags:说明该类的作用,参数是个数组,可以填多个。
value="该参数没什么意义,在UI界面上不显示,所以不用配置"
description = "用户基本信息操作"
2. @ApiOperation() : utilisé pour les méthodes, indiquant qu'une requête http accède à l'opération de la méthode
paramètre:
value="方法的用途和作用"
notes="方法的注意事项和备注"
tags:说明该方法的作用,参数是个数组,可以填多个。
格式:tags={"作用1","作用2"}
(在这里建议不使用这个参数,会使界面看上去有点乱,前两个常用)
3. @ApiModel() : utilisé pour répondre aux classes d'entités, utilisé pour illustrer le rôle des entités
paramètre:
description="描述实体的作用"
4. @ApiModelProperty : Utilisé sur les attributs pour décrire les attributs des classes d'entités
paramètre:
value="用户名" 描述参数的意义
name="name" 参数的变量名
required=true 参数是否必选
5. @ApiImplicitParams : utilisé dans la méthode de requête, y compris plusieurs @ApiImplicitParams
6. @ApiImplicitParam : utilisé pour les méthodes, représentant les paramètres de requête individuels
paramètre:
name="参数ming"
value="参数说明"
dataType="数据类型"
paramType="query" 表示参数放在哪里
· header 请求参数的获取:@RequestHeader
· query 请求参数的获取:@RequestParam
· path(用于restful接口) 请求参数的获取:@PathVariable
· body(不常用)
· form(不常用)
defaultValue="参数的默认值"
required="true" 表示参数是否必须传
7. @ApiParam() : utilisé pour les méthodes, les paramètres et les descriptions de champs pour indiquer les exigences et les descriptions des paramètres
paramètre:
name="参数名称"
value="参数的简要说明"
defaultValue="参数默认值"
required="true" 表示属性是否必填,默认为false
8. @ApiResponses : Utilisé dans la méthode de requête, différentes réponses sont indiquées en fonction du code de réponse
Un @ApiResponses contient plusieurs @ApiResponse
9. @ApiResponse : Utilisé dans la méthode de requête pour indiquer différentes réponses
Paramètres :
code="404" 表示响应码(int型),可自定义
message="状态码对应的响应信息"
10. @ApiIgnore() : Utilisé sur les classes ou les méthodes, non affiché sur la page
11. @Profile({"dev", "test"}) : utilisé sur les classes de configuration, indiquant qu'il n'est utile que pour les environnements de développement et de test