Maison  >  Article  >  Java  >  Introduction à la méthode d'intégration de SpringBoot avec Swagger (avec code)

Introduction à la méthode d'intégration de SpringBoot avec Swagger (avec code)

不言
不言avant
2019-03-21 10:11:013100parcourir

Cet article vous présente la méthode d'intégration de Swagger avec SpringBoot (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Qu'est-ce que Swagger

  1. Swagger peut générer une console API interactive que les développeurs peuvent utiliser pour apprendre et essayer rapidement les API
  2. Swagger peut générer des clients Le code du SDK de fin est utilisé pour une mise en œuvre sur une variété de plates-formes différentes
  3. Les fichiers Swagger peuvent être automatiquement générés à partir de commentaires de code sur de nombreuses plates-formes différentes
  4. Swagger a une forte communauté

Importation de dépendances

<!-- Swagger -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.4.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.4.0</version>
</dependency>
🎜>

Ajouter une configuration
swagger:
  title: 项目 API
  description: SpringBoot 集成 Swagger 项目 API
  version: 1.0
  terms-of-service-url: http://www.baidu.com/
  base-package: cn.anothertale.springbootshiro  # 这一项指定需要生成 API 的包,一般就是 Controller
  contact:
    name: taohan
    url: http://www.baidu.ccom/
    email: 1289747698@qq.com

Créer une configuration Swagger
package cn.anothertale.springbootshiro.config.swagger;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * description: swagger 配置中心
 *
 * @author: taohan
 * @date: 2019年03月20日
 * @time: 16:52
 */
@Getter
@Setter
@Configuration
@EnableSwagger2
@ConditionalOnClass(EnableSwagger2.class)
@ConfigurationProperties(prefix = "swagger")
public class SwaggerConfig {

    /**
     * API 接口包路径
     */
    private String basePackage;

    /**
     * API 页面标题
     */
    private String title;

    /**
     * API 描述
     */
    private String description;

    /**
     * 服务条款地址
     */
    private String termsOfServiceUrl;

    /**
     * 版本号
     */
    private String version;

    /**
     * 联系人
     */
    private Contact contact;

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title(title)
                .description(description)
                .termsOfServiceUrl(termsOfServiceUrl)
                .version(version)
                .contact(contact)
                .build();
    }
}

Indiquer l'API via annotations

Swagger analyse toutes les interfaces et génère la description de l'API correspondante et les informations sur les paramètres en fonction du package configuré par défaut.

Les annotations couramment utilisées et les attributs correspondants sont les suivants :
  • @Api

    (décrit une classe API et est marqué sur le contrôleur)
    1. value :
    2. La valeur du chemin de l'url
    3. balises :
    4. Si cette valeur est définie, la valeur de value sera écrasée
    5. description :
    6. Description de la ressource API
    7. basePath :
    8. Le chemin de base n'a pas besoin d'être défini
    9. produit :
    10. Par exemple : application/json, application/xml Similaire à RequestMapping, attributs correspondants
    11. consomme :
    12. Par exemple : application/json, application/xml
    13. autorisations :
    14. Configuration lors de l'authentification des fonctionnalités avancées
    15. masqué :
      S'il faut masquer dans le document
  • @ApiOperation

    (utilisé dans la méthode Controller, illustre la fonction de la méthode)
    1. valeur :
    2. La valeur du chemin de l'url
    3. tags :
    4. Si cette valeur est définie, la valeur de value sera remplacée
    5. description :
    6. Description de la ressource API
    7. basePath :
    8. Le chemin de base peut ne pas être défini
    9. position :
    10. Si vous configurez plusieurs API et souhaitez modifier l'emplacement, vous pouvez utiliser cet attribut pour définir
    11. response :
    12. L'objet renvoyé
    13. responseContainer :
    14. Ces objets sont des List, Set et Map valides, d'autres ne sont pas valides
    15. httpMethod :
    16. Méthode de requête
    17. code :
    18. Code d'état HTTP, par défaut 200
    19. extensions :
      Propriétés de l'extension
  • @ApiImplicitParams

    (utilisé sur les méthodes Controller, décrivant un ensemble de paramètres de requête)
    1. value :
      ApiImplicitParam tableau, voir la note suivante
  • @ApiImplicitParam

    (Décrit un paramètre de requête)
    1. nom :
    2. Nom du paramètre
    3. valeur :
    4. Valeur du paramètre
    5. defaultValue :
    6. Valeur par défaut du paramètre
    7. obligatoire :
    8. Que ce soit obligatoire, par défaut faux
    9. accès :
    10. Pas trop descriptif
    11. exemple :
      Exemple
  • @ApiResponses

    (description Un ensemble de réponses)
    1. valeur :
      ApiResponse tableau, voir la note suivante
  • @ApiResponse

    (Décrivez une réponse)
    1. code :
    2. Code d'état HTTP
    3. message :
    4. Décrivez le message

Introduction à la méthode dintégration de SpringBoot avec Swagger (avec code)Enfin, vous pouvez saisir http:/ /localhost:8080/swagger-ui.html dans le navigateur pour y accéder !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer