快站官方客户端下载信息科技有限公司网站建设
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:32
当前位置: 首页 > news >正文
快站官方客户端下载,信息科技有限公司网站建设,游戏行业seo整站优化,帝国cms入门到精通企业门户网站制作建站视频教程swagger是什么#xff1f;
在平时开发中#xff0c;一个好的API文档可以减少大量的沟通成本#xff0c;还可以帮助新加入项目的同事快速上手业务。大家都知道平时开发时#xff0c;接口变化总是很多#xff0c;有了变化就要去维护#xff0c;也是一件比较头大的事情。尤…swagger是什么
在平时开发中一个好的API文档可以减少大量的沟通成本还可以帮助新加入项目的同事快速上手业务。大家都知道平时开发时接口变化总是很多有了变化就要去维护也是一件比较头大的事情。尤其是现在前后端分离情况更容易造成文档和代码不一致。这时我们可以通过Swagger2来使接口规范方便维护。
Swagger 是一款自动生成在线文档 接口调试的工具。在 WEB 开发中不可否认的是我们需要给客户端提供 API 接口这个时候需要借助 postman、rap 等工具 进行调试以便于接口能正常交付给客户端人员用过其它工具的应该知道一个 POST 请求一堆参数是非常枯燥且烦人的事情而 swagger 就是让你摆脱这种束缚感….
Swagger是一款RESTFUL接口的文档在线自动生成功能测试功能软件。Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器。
这个解释简单点来讲就是说swagger是一款可以根据resutful风格生成的生成的接口开发文档并且支持做测试的一款中间软件。
为什么要使用swaager?
对于后端开发人员来说 不用再手写WiKi接口拼大量的参数避免手写错误 对代码侵入性低采用全注解的方式开发简单 方法参数名修改、增加、减少参数都可以直接生效不用手动维护 缺点增加了开发成本写接口还得再写一套参数配置
对于前端开发来说 后端只需要定义好接口会自动生成文档接口功能、参数一目了然 联调方便如果出问题直接测试接口实时检查参数和返回值,就可以快速定位是前端还是后端的问题
对于测试 对于某些没有前端界面UI的功能可以用它来测试接口 操作简单不用了解具体代码就可以操作 操作简单不用了解具体代码就可以操作
Swagger说明
Swagger是一款Restful接口的文档在线自动生成和功能测试功能软件。 Swagger是一个规范和完整的框架用于生成、描述、调用和可视化Restful风格的Web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法参数和模型紧密集成到服务器端的代码允许API来始终保持同步。 springboot 集成 Swagger2 1. 新建springboot工程,编写pom.xml !– https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 –dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.9.2/version/dependency!– https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui –dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.9.2/version/dependency 2.编写controller package com.ly.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class TCon {GetMapping(/hello)public String test(){return hello;}
} 3.编写配置 记得设置 端口号 server.port8001 package com.ly.config;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.swagger2.annotations.EnableSwagger2;Configuration
EnableSwagger2 //开启swagger2
public class SwaggerConfig implements WebMvcConfigurer {Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/).addResourceLocations(classpath:/static/);registry.addResourceHandler(swagger-ui.html).addResourceLocations(classpath:/META-INF/resources/);registry.addResourceHandler(/webjars/).addResourceLocations(classpath:/META-INF/resources/webjars/);}
} 4.编写启动类 package com.ly;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import springfox.documentation.swagger2.annotations.EnableSwagger2;SpringBootApplication
EnableWebMvc //增加该注解 开启
public class VueBootApp {public static void main(String[] args) {SpringApplication.run(VueBootApp.class,args);}
} 5.测试 由于上面的图片中的信息 有些事官方的,如果想改为自己公司的,则需要编写配置类 配置 Swagger的bean 实例 Docket package com.ly.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
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;import java.util.ArrayList;Configuration
EnableSwagger2 //开启swagger2
public class SwaggerConfig implements WebMvcConfigurer {Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/).addResourceLocations(classpath:/static/);registry.addResourceHandler(swagger-ui.html).addResourceLocations(classpath:/META-INF/resources/);registry.addResourceHandler(/webjars/).addResourceLocations(classpath:/META-INF/resources/webjars/);}Beanpublic Docket docket(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())//.enable(false) //是否启动swagger ,如果为false 则不可以使用 swagger.select().apis(RequestHandlerSelectors.basePackage(com.ly.controller)) //指定扫描的包//.paths(PathSelectors.ant(/api/*)) //路径 过滤.build();}private ApiInfo apiInfo(){return new ApiInfo(My Swagger API document,你好,1.0,http://www.baidu.com,new Contact(ly, http://www.baidu.com, aaaqq.com), //作者信息Apache 2.0,http://www.apache.org/licenses/LICENSE-2.0,new ArrayList());}}再次运行localhost:8001/swagger-ui.html 实体类也可以进行配置
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;ApiModel(用户实体类)
Data
NoArgsConstructor
AllArgsConstructor
public class User implements Serializable {ApiModelProperty(用户编号)private Long id;ApiModelProperty(用户姓名)private String name;ApiModelProperty(用户年龄)private int age;ApiModelProperty(用户邮箱)private String email;} package com.ly.controller;import com.ly.entity.User;
import com.ly.service.UserService;
import com.ly.util.Result;
import com.ly.util.StateCode;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.;import java.util.ArrayList;
import java.util.List;Api(vue控制类)
RestController
CrossOrigin //允许跨域
public class VueController {Autowiredprivate UserService userService;ApiOperation(修改用户信息)PutMapping(/user)public ResultUser update(RequestBody User user){userService.update(user);return new Result(StateCode.OK,StateCode.UPDATE_SUCCESS,user);}ApiOperation(删除用户信息)ApiImplicitParam(name id,value 要删除的编号,required true,paramType Long)DeleteMapping(/user/{id})public ResultInteger del(PathVariable(id) Long id){System.out.println(———-del— id);userService.delById(id);return new Result(StateCode.OK,StateCode.QUERY_SUCCESS,null);}ApiOperation(按照主键查询用户信息)ApiImplicitParam(name id,value 查询的编号,required true,paramType Long)GetMapping(/user/{id})public ResultUser findByID( PathVariable(id) Long id){User user userService.findById(id);return new Result(StateCode.OK,StateCode.QUERY_SUCCESS,user);}ApiOperation(查询全部用户信息)GetMapping(/user)public ResultListUser findAll(){ListUser list userService.findAll();return new Result(StateCode.OK,StateCode.QUERY_SUCCESS,list);}PostMapping(/user)public ResultUser add(RequestBody User user){Long id userService.save(user);user.setId(id);return new ResultUser(StateCode.OK,StateCode.SAVE_SUCCESS,user);}} springboot 集成swagger3 在需要 添加swagger3 的 module 中增加依赖 dependencygroupIdio.springfox/groupIdartifactIdspringfox-boot-starter/artifactIdversion3.0.0/version/dependency
swagger2 需要2个依赖, swagger3 需要1个 编写 配置类 package com.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.oas.annotations.EnableOpenApi;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import java.util.ArrayList;ConfigurationEnableOpenApipublic class SwaggerConfig {Beanpublic Docket docket(){return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select()//扫描指定路径下的文件.apis(RequestHandlerSelectors.basePackage(com.controller))//指定路径处理,PathSelectors.any() 代表 不过滤任何路径//.paths(PathSelectors.any()).build();}private ApiInfo apiInfo(){return new ApiInfo(My Swagger API document,你好,1.0,http://www.baidu.com,new Contact(ly, http://www.baidu.com, aaaqq.com), //作者信息Apache 2.0,http://www.apache.org/licenses/LICENSE-2.0,new ArrayList());}} 修改配置文件 spring:mvc:pathmatch:matching-strategy: ant_path_matcher #swagger 使用 修改 控制层 package com.controller;import com.entity.Product;import com.service.ProductService;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import io.swagger.annotations.ApiParam;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;Api(tags provider控制类)RestControllerpublic class IndexController {Autowiredprivate ProductService productService;ApiOperation(按照编号查询)GetMapping(/test/{id})public Product test(ApiParam(value 编号,required true,example 1) PathVariable(id) int id){return productService.findById(id);}} DataAllArgsConstructorNoArgsConstructorApiModel(用户实体类)public class User {ApiModelProperty(value 姓名, required true, example 村雨遥)private String name;ApiModelProperty(value 年龄, required true, example 20)private Integer age;} 查看并测试接口
启动我们的项目然后在浏览器中访问如下地址就可以访问项目的接口文档了。 http://localhost:8080/swagger-ui/index.html 访问上面的地址后如果出现下面的界面则说明集成 Swagger3 就成功了。
这里也要注意一点Swagger2 中的接口访问地址是 http://localhost:8080/swagger-ui.html 这里 Swagger2 和 Swagger3 是不同的这里大家一定要注意 可以进行测试了.
- 上一篇: 快站app下载手机网站被自动跳转
- 下一篇: 快站免费网站建设哪家好沈阳做招聘网站
相关文章
-
快站app下载手机网站被自动跳转
快站app下载手机网站被自动跳转
- 技术栈
- 2026年03月21日
-
快速做网站的技术对软件工程专业的认识
快速做网站的技术对软件工程专业的认识
- 技术栈
- 2026年03月21日
-
快速网站开发 带数据库月夜影视在线观看免费完整版
快速网站开发 带数据库月夜影视在线观看免费完整版
- 技术栈
- 2026年03月21日
-
快站免费网站建设哪家好沈阳做招聘网站
快站免费网站建设哪家好沈阳做招聘网站
- 技术栈
- 2026年03月21日
-
宽屏网站宽度个人博客网站开发
宽屏网站宽度个人博客网站开发
- 技术栈
- 2026年03月21日
-
宽屏网站模板网站建设 软件 开源
宽屏网站模板网站建设 软件 开源
- 技术栈
- 2026年03月21日
