• springboot整合swagger,postman,接口规范


    一、postman介绍

    1.1概述

    工具下载

    Postman(发送 http 请求的工具)
    官网(下载速度比较慢):Download Postman | Get Started for Free
    网盘下载:百度网盘 请输入提取码

    1.2Http 请求格式

    • 请求地址
    • 请求方法
    • 状态码
    • 同源策略
    • 请求头
    • 响应头

    1.3接口类型

    Post 接口(新增数据)

    1. @RequestMapping(method = RequestMethod.POST)
    2. @PostMapping("/post")

    如果你这样写,是 url 参数,并且 url 参数可以为空

    1. @PostMapping("/post") // http://localhost:9090/web/post?name=青哥哥&age=30
    2. public Result post(Obj obj) {
    3. return Result.success(obj);
    4. }
    怎么请求 json 数据?

    Put 接口(更新数据)

    1. @RequestMapping(method = RequestMethod.PUT)
    2. @PutMapping("/put")

    Delete 接口(删除数据)

    1. @RequestMapping(method = RequestMethod.DELETE)
    2. @DeleteMapping("/delete/{id}")

    delete 可以传 json 数据

    我们批量删除可以使用 delete 类型的接口

    Get 接口

    1. @RequestMapping()
    2. 或者
    3. @GetMapping("/hello")

    怎么定义路由

    1.4Http 状态码

    下述做常见的基本介绍,详细请看有趣的小知识(一)HTTP请求响应状态码:一份不可或缺的指南,从容面对任何请求挑战!

    • 200:成功
    • 400:接口参数错误

    image.png

    • 404:接口路径写错了或者参数写错了
    • 405:接口请求类型不匹配
    • image.png

    image.png

    image.png

    • 500:后台错误

    image.png

    当你的请求出现500 错误的时候,你应该怎么办?
    第一时间,赶紧去看下后台的控制台

    二、swagger

    2.1文档规范概述

    OpenAPI规范(OpenAPI Specification简称OAS)是Linux基金会的一个项目,OpenAPI规范是用于描述API的行业标准,它允许开发人员在不阅读源代码或文档的情况下就能理解API的功能;通过JSON格式描述

     2.2API文档神器Swagger介绍

    Swagger是目前最受欢迎的基于OpenAPI规范的开源API构建工具;
    官网:https:/swagger.io/
    作用:在代码中添加注解即可生成AP接口文档;

    1. io.swagger.core.v3
    2. swagger-annotations
    3. 2.2.20

    Swagger 是一套基于 OpenAPI 规范(OpenAPI Specification,OAS)构建的开源工具,可以帮助我们设计、构建、记录以及使用 REST API。

    OpenAPI规范是在2015年由OpenAPI Initiative捐赠给Linux基金会的。该规范创建了RESTful接口,可通过有效映射与之关联的所有资源和操作来轻松开发和使用API​​。

    Swagger 主要包含了以下三个部分:

    • Swagger Editor:基于浏览器的编辑器,我们可以使用它编写我们 OpenAPI 规范。
    • Swagger UI:它会将我们编写的 OpenAPI 规范呈现为交互式的 API 文档,后文我将使用浏览器来查看并且操作我们的 Rest API。
    • Swagger Codegen:它可以通过为 OpenAPI(以前称为 Swagger)规范定义的任何 API 生成服务器存根和客户端 SDK 来简化构建过程。

    2.3SpringFox

    Springfox的Java库套件旨在自动生成使用spring系列项目编写的JSON API的机器和人类可读规范。

    Springfox的工作原理是在运行时检查应用程序,以基于Spring配置,类结构和各种编译时Java注释来推断API语义。

    相关依赖

    1. <dependency>
    2. <groupId>io.springfoxgroupId>
    3. <artifactId>springfox-boot-starterartifactId>
    4. <version>3.0.0version>
    5. dependency>

    相关注解

    2.4使用

    依赖

    1. org.springdoc
    2. springdoc-openapi-starter-webmvc-ui
    3. 2.0.2

    常用注解

    1. @Tag(name = "文件上传下载" ,description = "文件上传下载接口")
    2. public String File() {
    3. return "file_upload_download";
    4. }
    1. @GetMapping("/download/{fileName}")
    2. @Operation(summary = "文件下载",description = "文件下载接口")
    3. public Result download(@PathVariable("fileName") String fileName, HttpServletResponse response) throws IOException {
    4. String filePath = ROOT_PATH + File.separator + fileName;
    5. if (!FileUtil.exist(filePath)) {
    6. return Result.error("文件不存在");
    7. }
    8. // response.addHeader("Content-Disposition", "inline;filename=" + URLEncoder.encode(fileName, "UTF-8")); // 预览
    9. byte[] bytes = FileUtil.readBytes(filePath);
    10. ServletOutputStream outputStream = response.getOutputStream();
    11. outputStream.write(bytes); // 数组是一个字节数组,也就是文件的字节流数组
    12. outputStream.flush();
    13. outputStream.close();
    14. System.out.println("文件下载成功");
    15. return Result.success();
    16. }
    1. @Schema(description = "返回结果")
    2. public class Result {
    3. public static final String CODE_SUCCESS = "200";
    4. public static final String CODE_AUTH_ERROR = "401";
    5. public static final String CODE_SYS_ERROR = "500";
    6. @Schema(description = "状态码")
    7. private String code;
    8. @Schema(description = "消息")
    9. private String msg;
    10. @Schema(description = "数据")
    11. private Object data;

    配置类

    1. package com.yanyu.upload3.Config;
    2. import io.swagger.v3.oas.models.ExternalDocumentation;
    3. import io.swagger.v3.oas.models.OpenAPI;
    4. import io.swagger.v3.oas.models.info.Info;
    5. import org.springdoc.core.GroupedOpenApi;
    6. import org.springframework.context.annotation.Bean;
    7. import org.springframework.context.annotation.Configuration;
    8. @Configuration // 表示这是一个配置类
    9. public class Swagger3Config1 {
    10. @Bean // 创建一个Bean
    11. public GroupedOpenApi FileApi() {
    12. // 创建一个GroupedOpenApi对象,设置其组名为"支付微服务模块",并匹配所有以"/file/"开头的路径
    13. return GroupedOpenApi.builder().group("支付微服务模块").pathsToMatch("/file/**").build();
    14. }
    15. @Bean // 创建一个Bean
    16. public GroupedOpenApi OtherApi() {
    17. // 创建一个GroupedOpenApi对象,设置其组名为"其它微服务模块",并匹配所有以"/other/"开头或等于"/others"的路径
    18. return GroupedOpenApi.builder().group("其它微服务模块").pathsToMatch("/other/**", "/others").build();
    19. }
    20. @Bean // 创建一个Bean
    21. public OpenAPI docsOpenApi() {
    22. // 创建一个OpenAPI对象,设置其标题为"cloud2024",描述为"通用设计rest",版本为"v1.0"
    23. // 并设置其外部文档的描述为"www.yanyu.com",URL为"https://yanyu.com/"
    24. return new OpenAPI()
    25. .info(new Info().title("upload3")
    26. .description("通用设计rest")
    27. .version("v3.0"))
    28. .externalDocs(new ExternalDocumentation()
    29. .description("www.yanyu.com")
    30. .url("\"https://yanyu.com/"));
    31. }
    32. }

    启动测试

    三、idea内部测试工具

  • 相关阅读:
    conda常用命令合集
    SpEL表达式详解
    【校招VIP】前端专业课考点之可靠传输协议
    http协议浅分析
    超详细带你用Java实现QQ的聊天功能
    java游戏制作-拼图游戏
    线程优先级
    python安装.whl文件
    【Node.js】 第四章 模块化
    Java自学的话怎么样最有效果?
  • 原文地址:https://blog.csdn.net/qq_62377885/article/details/136570343