当前位置: 首页 > news >正文

网站开发文本网站提交收录入口链接

网站开发文本,网站提交收录入口链接,seo的关键词无需,信息图表设计网站swagger是什么? 在平时开发中,一个好的API文档可以减少大量的沟通成本,还可以帮助新加入项目的同事快速上手业务。大家都知道平时开发时,接口变化总是很多,有了变化就要去维护,也是一件比较头大的事情。尤…

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 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.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.port=8001

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", "aaa@qq.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 Result<User> 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 Result<Integer> 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 Result<User> findByID( @PathVariable("id") Long id){User user = userService.findById(id);return new Result(StateCode.OK,StateCode.QUERY_SUCCESS,user);}@ApiOperation("查询全部用户信息")@GetMapping("/user")public Result<List<User>> findAll(){List<User> list = userService.findAll();return new Result(StateCode.OK,StateCode.QUERY_SUCCESS,list);}@PostMapping("/user")public Result<User> add(@RequestBody User user){Long id = userService.save(user);user.setId(id);return new Result<User>(StateCode.OK,StateCode.SAVE_SUCCESS,user);}}

 

springboot 集成swagger3

 

在需要 添加swagger3 的 module 中增加依赖

  <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.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;​@Configuration@EnableOpenApipublic 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", "aaa@qq.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);}​}​

 @Data@AllArgsConstructor@NoArgsConstructor@ApiModel("用户实体类")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 是不同的,这里大家一定要注意,

可以进行测试了.

http://www.ds6.com.cn/news/54913.html

相关文章:

  • 网站建设 上海苏州网站建设方案
  • 网站建设参考文献外文深圳推广不动产可视化查询
  • 网站建设文字2000字百度网站名称及网址
  • 做百度竞价网站修改影响排名吗哈尔滨最新今日头条新闻
  • 如何做网站收录百度搜索高级搜索
  • 镇江网站建设推广建筑设计网站
  • 网络电商培训课程网站设计线上推广具体应该怎么做
  • wordpress 仪表盘隐藏排名优化哪家好
  • 福州网站设计哪里比较好腾讯广告推广怎么做
  • angular2.0网站制作网站怎么快速收录
  • 湖南微信网站建设网店运营策划方案
  • 做网站补贴百度推广后台登陆入口
  • 杭州网站建设网络网站搭建需要什么技术
  • 哪个网站可以做兼职ppt模板南京网站制作公司
  • 做直销网站互联网哪个行业前景好
  • wordpress插件怎么破解宁波优化网站哪家好
  • 佛山网站建设3lue3lue批量查询指数
  • 外贸公司几个网站百度账号登录入口官网
  • wordpress升级seo快速排名是什么
  • 沐风模板WordPress企业seo推广外包
  • WordPress生成网站地图google收录提交入口
  • 怎么做网店网站电子商务网站建设流程
  • php 公司网站武汉seo搜索引擎
  • 网站店铺的图片怎么做的有哪些网页设计公司
  • 北京网站建设公司如何排版优化网站的目的
  • easyui网站开发实战电子书市场营销策划方案
  • 东莞网站制作建设公司最新热搜新闻事件
  • 网站的策划方案百度指数网站
  • 网站建设跟网站结构app平台搭建
  • 有没有教做蛋糕的网站做seo必须有网站吗