• Springboot+swagger2


    1.swagger配置

    1. /**
    2. * Swagger 配置文件
    3. */
    4. @Configuration
    5. public class SwaggerConfig {
    6. @Bean
    7. public Docket createRestApi() {
    8. return new Docket(DocumentationType.SWAGGER_2)
    9. .apiInfo(apiInfo())
    10. .select()
    11. .apis(RequestHandlerSelectors.basePackage("com.swagger.two"))
    12. .paths(PathSelectors.any())
    13. .build();
    14. }
    15. private ApiInfo apiInfo() {
    16. return new ApiInfoBuilder()
    17. .title("SpringBoot利用Swagger构建API文档")
    18. .description("创建人:wjg")
    19. .termsOfServiceUrl("")
    20. .version("version 2.0")
    21. .build();
    22. }
    23. }

    2.请求路径

     http://localhost:8006/swagger2/swagger-ui.html

    3.Swagger2 注解整理

     
     Api:修饰整个类,描述Controller的作用
     ApiOperation:描述一个类的一个方法,或者说一个接口
     ApiParam:单个参数描述
     ApiModel:用对象来接收参数
     ApiProperty:用对象接收参数时,描述对象的一个字段
     ApiResponse:HTTP响应其中1个描述
     ApiResponses:HTTP响应整体描述
     ApiIgnore:使用该注解忽略这个API
     ApiError :发生错误返回的信息
     ApiImplicitParam:一个请求参数
     ApiImplicitParams:多个请求参数 

     4.代码示例

    1. @RestController
    2. @Api(tags = "用户控制层")
    3. public class UserController {
    4. // 创建线程安全的Map
    5. static Map<Integer, User> users = Collections.synchronizedMap(new HashMap<Integer, User>());
    6. /**
    7. * 添加用户
    8. */
    9. @ApiOperation(value="添加用户", notes="创建新用户")
    10. @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")
    11. @RequestMapping(value = "/addUser", method = RequestMethod.POST)
    12. public ResponseEntity<JsonResult> addUser (@RequestBody User user){
    13. JsonResult result = new JsonResult();
    14. try {
    15. users.put(user.getId(), user);
    16. result.setResult(user.getId());
    17. result.setStatus("ok");
    18. } catch (Exception e) {
    19. result.setResult("服务异常");
    20. result.setStatus("500");
    21. e.printStackTrace();
    22. }
    23. return ResponseEntity.ok(result);
    24. }
    25. /**
    26. * 根据ID查询用户
    27. */
    28. @ApiOperation(value="用户查询", notes="根据ID查询用户")
    29. @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer", paramType = "path")
    30. @RequestMapping(value = "/getUserById/{id}", method = RequestMethod.GET)
    31. public ResponseEntity<JsonResult> getUserById (@PathVariable(value = "id") Integer id){
    32. JsonResult result = new JsonResult();
    33. try {
    34. User user = users.get(id);
    35. result.setResult(user);
    36. result.setStatus("200");
    37. } catch (Exception e) {
    38. result.setResult("服务异常");
    39. result.setStatus("500");
    40. e.printStackTrace();
    41. }
    42. return ResponseEntity.ok(result);
    43. }
    44. /**
    45. * 查询用户列表
    46. */
    47. @ApiOperation(value="用户列表", notes="查询用户列表")
    48. @RequestMapping(value = "/getUserList", method = RequestMethod.GET)
    49. public ResponseEntity<JsonResult> getUserList (){
    50. JsonResult result = new JsonResult();
    51. try {
    52. List<User> userList = new ArrayList<>(users.values());
    53. result.setResult(userList);
    54. result.setStatus("200");
    55. } catch (Exception e) {
    56. result.setResult("服务异常");
    57. result.setStatus("500");
    58. e.printStackTrace();
    59. }
    60. return ResponseEntity.ok(result);
    61. }
    62. /**
    63. * 根据ID修改用户信息
    64. */
    65. @ApiOperation(value="更新用户", notes="根据Id更新用户信息")
    66. @ApiImplicitParams({
    67. @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long",paramType = "path"),
    68. @ApiImplicitParam(name = "user", value = "用户对象user", required = true, dataType = "User")
    69. })
    70. @RequestMapping(value = "/updateById/{id}", method = RequestMethod.PUT)
    71. public ResponseEntity<JsonResult> updateById (@PathVariable("id") Integer id, @RequestBody User user){
    72. JsonResult result = new JsonResult();
    73. try {
    74. User user1 = users.get(id);
    75. user1.setUsername(user.getUsername());
    76. user1.setAge(user.getAge());
    77. users.put(id, user1);
    78. result.setResult(user1);
    79. result.setStatus("ok");
    80. } catch (Exception e) {
    81. result.setResult("服务异常");
    82. result.setStatus("500");
    83. e.printStackTrace();
    84. }
    85. return ResponseEntity.ok(result);
    86. }
    87. /**
    88. * 根据id删除用户
    89. */
    90. @ApiOperation(value="删除用户", notes="根据id删除指定用户")
    91. @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long", paramType = "path")
    92. @RequestMapping(value = "/deleteById/{id}", method = RequestMethod.DELETE)
    93. public ResponseEntity<JsonResult> deleteById (@PathVariable(value = "id") Integer id){
    94. JsonResult result = new JsonResult();
    95. try {
    96. users.remove(id);
    97. result.setResult(id);
    98. result.setStatus("ok");
    99. } catch (Exception e) {
    100. result.setResult("服务异常");
    101. result.setStatus("500");
    102. e.printStackTrace();
    103. }
    104. return ResponseEntity.ok(result);
    105. }
    106. }

     

     

     

     

     

  • 相关阅读:
    如何更优雅的编程?面向接口编程四大法宝!
    【技术积累】Vue.js中的CSS过渡【一】
    激活码问题解疑【点盾云】
    基于机器学习的古代汉语自动分词标注算法及语料库研究
    React关于渲染列表时的key属性
    Pod控制器-ReplicaSet(RS)
    数据库timestamp遇到的小问题
    JAVA 多态
    JDK1.8新特性---Stream API
    RFID溯源驱动汽车座椅制造的智能时代
  • 原文地址:https://blog.csdn.net/qq_44981598/article/details/132830604