首页 > 其他分享 >YApi——Swagger

YApi——Swagger

时间:2023-04-10 20:55:28浏览次数:33  
标签:Swagger YApi documentation 接口 registry import springfox

YApi

YApi是高效、易用、功能强大的api管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护API,YApi还为用户提供了优秀的交互经验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

YApi让接口开发更简单高效,让接口的管理更具可读性、可维护性,让团队协作更合理

https://github.com/YMFE/yapi

要使用YApi,需要自己进行部署

 

Swagger

只需要按照Swagger的规范定义接口及接口相关的信息,再通过Swager衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。

https://swagger.io/

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案

使用方式:

1、导入knife4j的maven坐标

<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>

2、导入knife4j相关配置类(WebMvcConfig)

package com.itheima.config;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import com.itheima.common.JacksonObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.List;

@Slf4j
@Configuration
@EnableSwagger2
@EnableKnife4j
public class WebMvcConfig extends WebMvcConfigurationSupport {


    /**
     * 因为默认情况下只能访问到static和templates下的静态资源,index.html找不到
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        /**
         * 设置静态资源映射
         */
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
        log.info("开始静态资源映射");
    }


    /**
     * 扩展mvc消息转换器
     * @param converters
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        log.info("扩展消息转换器");
        //创建消息转换器对象
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
        //设置对象转换器,底层使用Jackson将Java对象转为json
        messageConverter.setObjectMapper(new JacksonObjectMapper());
        //将上面的消息转换器对象追加到mvc框架的转换器集合中,0:放到集合最前面优先使用
        converters.add(0, messageConverter);
    }
    
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("瑞吉外卖")
                .version("1.0")
                .description("瑞吉外卖接口文档")
                .build();
    }
    @Bean
    public Docket createRestApi(){
        //文档类型
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.itheima.controller"))
                .paths(PathSelectors.any())
                .build();
    }
}

 

3、设置静态资源,否则接口文档页面无法访问

/**
     * 因为默认情况下只能访问到static和templates下的静态资源,index.html找不到
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        /**
         * 设置静态资源映射
         */
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        log.info("开始静态资源映射");
    }

 

4在LoginCheckFilter中设置不再需要处理的请求路径

//定义不需要处理的请求路径
        String[] urls = new String[]{
                "/employee/login",
                "/employee/logout",
                "/backend/**",
                "/front/**",
                "/common/**",
                "/user/sendMsg",//移动端发送短信
                "/user/login",//移动端登录
                "/doc.html",
                "/webjars/**",
                "/swagger-resources",
                "/v2/api-docs"
        };

 

 启动项目,访问localhost:8080/doc.html。查看生成controller下的各种api文档,可以调试。

Swagger常用注解【目的:增加文档可读性】

注解            说明

@Api            用在请求的类上,例如Controller,表示对类的说明

@ApiModel          用在类上,通常是实体类,表示一个返回响应数据的信息

@ApiModelProperty     用在属性上,描述响应类的属性

@ApiOperation       用在请求的方法上,说明方法的用途、作用

@ApiImplicitParams     用在请求的方法上,表示一组参数说明

@ApiImplicitParam       用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

 

标签:Swagger,YApi,documentation,接口,registry,import,springfox
From: https://www.cnblogs.com/fxzm/p/17304260.html

相关文章

  • swagger测试的使用
    pom文件的配置<!--swagger依赖--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId......
  • swagger的使用
    1.导入坐标 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version></dependency>2.导入knife4j相关配置类在WebMvcConfig类上面加注解@EnableSwagge......
  • Springfox与SpringDoc——swagger如何选择(SpringDoc入门)
     本文分享自天翼云开发者社区@《Springfox与SpringDoc——swagger如何选择(SpringDoc入门)》,作者:才开始学技术的小白  0.引言之前写过一篇关于swagger(实际上是springfox)的使用指南(https://www.ctyun.cn/developer/article/371704742199365),涵盖了本人在开发与学习的时候碰......
  • NestJs swagger接口文档
    文档:https://docs.nestjs.cn/9/recipes?id=swagger安装首先,您必须安装所需的包:npminstall--save@nestjs/swaggerswagger-ui-express如果你正在使用fastify,你必须安装fastify-swagger而不是swagger-ui-express:npminstall--save@nestjs/swaggerfastify-swagger......
  • Springboot和swagger或者knife4j版本冲突
    idea报错:Errorcreatingbeanwithname'serviceModelToOpenApiMapperImpl':出错原因(我的是这):springboot中自带的swagger版本,和knife4j-3.0.3自带的swagger的版本出现冲突解决:springboot(3.6.11)--knife4j-openapi2-spring-boot-starter(4.1.0)【将两个都更新到新版本,这两个不冲突......
  • 一站式解决swagger报错Whitelabel Error Page
    有以下经常出现的几点会导致swagger的访问报错WhitelabelErrorPage1、POM文件配置,版本根据实际情况可变<swagger.version>2.9.2</swagger.version><swagger.annotation.version>1.5.20</swagger.annotation.version><!--swagger2--><dependency><groupId>......
  • 前端通过Swagger生成相关接口文件
    1.Swagger 多分组在很多大型系统中,为了方便对接口进行归类,往往使用了 Swagger 多分组功能,这样会使系统的接口散落在多个 swagger.json 中。将SpecificationDocumentSettings属性的EnableAllGroups设置为true。启用之后在 Swagger 导航栏顶部下拉分组将出现......
  • Asp.Net Core 配置 Swagger
    1.Swagger版本控制1.1添加版本枚举类publicenumApiVersion{V1,V2,V3}1.2在启动类中添加Swagger的配置builder.Services.AddSwaggerGen(option=>{#region分版本的Swagger配置......
  • Swagger knife4j响应参数不显示
    问题描述 解决方法  一定要加上@Data   接口要返回实体类型  参考链接【1】https://gitee.com/xiaoym/knife4j/issues/I2CY7K......
  • yapi文档使用说明记录
    yapi文档地址:http://192.168.0.97:3000/    在idea下载插件:easy-yapi  配置插件 在 Settings->Other Settings -> EasyAPI 中的 **server **栏中填写服务器地址:http://yapi.gwm.cn/在 Settings->Other Settings -> EasyAPI 的 **tokens **......