重庆高铁建设网站,公司网站搜索不到,怎样做网站流量,上海人才网官网登录1、问题描述 随着互联网技术的发展#xff0c;现在的网站架构基本都由原来的后端渲染#xff0c;变成了#xff1a;前端渲染、先后端分离的形态#xff0c;而且前端技术和后端技术在各自的道路上越走越远。 前端和后端的唯一联系#xff0c;变成了API接口#xff1b;API文…1、问题描述 随着互联网技术的发展现在的网站架构基本都由原来的后端渲染变成了前端渲染、先后端分离的形态而且前端技术和后端技术在各自的道路上越走越远。 前端和后端的唯一联系变成了API接口API文档变成了前后端开发人员联系的纽带变得越来越重要swagger就是一款让你更好的书写API文档的框架而且swagger可以完全模拟http请求入参出参和实际情况差别几乎为零。 没有API文档工具之前大家都是手写API文档的维护起来相当困难在什么地方书写的都有有在confluence上写的有在对应的项目目录下readme.md上写的每个公司都有每个公司的玩法无所谓好坏。但是能称之为“框架”的估计也只有swagger了
2、操作步骤 2.1配置pom.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version1.4.0.RELEASE/version /parent properties project.build.sourceEncodingUTF-8/project.build.sourceEncoding /properties dependencies !-- junit -- dependency groupIdjunit/groupId artifactIdjunit/artifactId scopetest/scope /dependency !-- spring boot -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- swagger -- dependency groupIdio.springfox/groupId artifactIdspringfox-swagger2/artifactId version2.5.0/version /dependency !-- swagger-ui -- dependency groupIdio.springfox/groupId artifactIdspringfox-swagger-ui/artifactId version2.5.0/version /dependency /dependencies 2.2启动类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package com.mao.swagger; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Hello world! * */ EnableAutoConfiguration SpringBootApplication(scanBasePackages com.mao) public class DemoApp { public static void main(String[] args) throws Exception { SpringApplication.run(DemoApp.class, args); } } 2.3配置config 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package com.mao.swagger.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import io.swagger.annotations.ApiOperation; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; Configuration EnableSwagger2 public class SwaggerConfig { Bean public Docket swaggerSpringMvcPlugin() { return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build(); } } 2.4配置controller 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 package com.mao.swagger.controller; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.mao.swagger.beans.ResObject; import com.mao.swagger.beans.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; /** * Hello world! * */ Api(description 用户接口) RestController RequestMapping(/demoController) public class DemoController { ApiOperation(value 新增用户 , notes新增注册) RequestMapping(value/createUser,methodRequestMethod.POST,consumes MediaType.APPLICATION_JSON_VALUE) public ResObject createUser(RequestBody User user){ System.out.println(createUser:::user.toString()); return new ResObject(HttpStatus.OK.value(), 新增成功.); } ApiOperation(value 修改用户 , notes修改用户) RequestMapping(value/updateUser,methodRequestMethod.POST,consumes MediaType.APPLICATION_JSON_VALUE) public ResObject updateUser(RequestBody User user){ System.out.println(updateUser:::user.toString()); return new ResObject(HttpStatus.OK.value(), 修改成功.); } ApiOperation(value 删除用户 , notes删除用户) ApiImplicitParams({ ApiImplicitParam(name userId, value 用户标识, required true, paramType query, dataType String) }) RequestMapping(value/deleteUser,methodRequestMethod.DELETE) public ResObject deleteUser(RequestParam(userId) String userId){ System.out.println(deleteUser:::userId); return new ResObject(HttpStatus.OK.value(), 删除成功.); } ApiOperation(value 查询用户 , notes查询用户) ApiImplicitParams({ ApiImplicitParam(name userId, value 用户标识, required true, paramType query, dataType String) }) RequestMapping(value/queryUser,methodRequestMethod.GET) public ResObject queryUser(RequestParam(userId) String userId){ System.out.println(queryUser:::userId); User user new User(userId, 张三, ******, mao2080sina.com); return new ResObject(HttpStatus.OK.value(), user); } }
3、效果展示
按照上面的启动之后访问http://localhost:8080/swagger-ui.html 发现找不到接口 后面排查是因为没有添加扫描包 重启之后再刷新即可 点击demo-controller可以看到详细接口 点击具体接口可以看到具体参数 点击try it out! 可以测试接口。 后台打印日志 4、附件下载
swagger-demo.zip
5、参考网站
https://blog.csdn.net/i6448038/article/details/77622977
https://blog.csdn.net/blackmambaprogrammer/article/details/72354007
6、推广阅读
Sagger常用参数用法 转载自http://www.cnblogs.com/mao2080/