开发者学堂课程干货总结——Spring Boot 2.5.x开发实战(八)

简介: Spring Boot 2.5.x开发实战课时8——Spring Boot 2.5实战API帮助文档Swagger,Spring Boot 2.5.x开发实战是学习Java Spring Cloud微服务架构的必经之路。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦

哈喽各位同学们大家好呀,假期大家休息的怎么样?放假回来上班的第一天小编继续大家分享开发者学院中课程Spring Boot 2.5实战API帮助文档Swagger”干货总结哦~Spring Boot 2.5.x开发实战可Java中级工程师必备课程!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:Spring Boot 2.5.x开发实战

课程地址:https://developer.aliyun.com/learning/course/71?spm=a2c6h.21254954.0.0.4e905907uoWZzr

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJ


Spring Boot 2.5实战API帮助文档Swagger


一、REST API帮助文档 

目前大型移动互联网平台,像淘宝、微信,抖音、拼多多,包括滴滴打车、美团等,都是前后端分离的架构,我们叫微服务架构。 

Swagger是自动化API文档的生成工具,这个工具之前是Spring Boot项目来进行集成,现在使用Spring Boot项目做后端开发,写API的代码的机会比较多,咱们把这个工具给大家介绍一下。 

作为一个快速开发框架,是Spring Boot提供了自己的一套API的文档工具,目前来看,Swagger使用比较多,这几年来普及率非常高,因为它非常方便,它的文档生成基本上都是自动化,只需要加一个简单的处理就可以 

 

image.png 

 

对于后端开发来说,不需要自己专门写一套word文档,发给前端,前端再自己去测试,再调进来后台API。Swagger文档部署完以后,前端可以直接拿到,然后进行在线调试,非常方便。简化前后端协助,协助避免出错 

 

二、REST API自动生成帮助文档Swagger 

image.png 

官网 https://swagger.io 

Swagger自动化文档工具 

1. Swagger是一个完整的API生态,工具,规范,代码生成 

2. 用于描述,生成,使用和可视化RESTful Web服务 

3. Swagger API project 2011 Tony Tam创立 最早Java版 

4. SmartBear Software公司支持,Apache License 2.0 

5. OpenAPI Spec 

6. Swagger and OAS 

7. Swagger 2 to OpenAPI 3 

8. 捐赠给linux基金会 

9. 行业标准规范 

10. Swagger Tools一套工具:设计、开发、测试、监控、治理 

image.png 

 

 

Spring REST Docs 

Spring REST Docs 

1. Spring REST Docs帮助自动化生成RESTful服务的文档 

2. 使用Asciidoctor编写的手写文档 

3. Spring REST Docs为RESTful服务生成准确且可读的文档 

4. 将手写文档与使用Spring测试生成的文档片段相结合 

5. 不受Swagger等工具生成的文档的限制 

6. 它可以生成准确,简洁和结构良好的API文档 

7. Spring REST Docs支持测试驱动Test Driven。 

8. Spring REST Docs支持Spring MVC Test框架,Spring WebFlux的   WebTestClient或REST Assured 3测试驱动。 

9. Spring Boot 提供了注解@AutoConfigureRestDocs 

10. 替代SpringFox Swagger 

 

优点 

1. 手写文档与使用Spring Test框架生成的文档片段结合 

2. curl and http request snippets are generated 

3. easy to package documentation in projects jar file 

4. easy to add extra information to the snippets 

5. supports both JSON and XML 

 

MockMvc 

1. MockMvc是Spring MVC Test工具类,支持Assert和Chain 

2. @Mock创建模拟对象,Mock 

3. @InjectMocks会自动将mock依赖注入测试对象 

4. MockitoAnnotations.initMocks(this)初始化 

5. MockMvcBuilders.standaloneSetup(..).build()通过注册一个或多  个@Controller实例并以编程方式配置Spring MVC基础结构来构建     MockMvc实例 

6. @Test 标注测试方法 

7. @WebMvcTest注解用于Spring MVC测试它禁用完全自动配置,而只应用与MVC测试相关的配置 

8. WebMvcTest注解也自动配置MockMvc实例 

 

Asciidoctor插件步骤 

1. pom.xml添加Asciidoctor插件 

2. 添加对spring-restdocs-mockmvc的依赖 

3. 配置属性asciidocs输出位置sourceDirectory 

4. 配置测试任务task输出位置outputDirectory 

5. 配置asciidoctor task 

6. snippets定义snippets输出位置 

7. 使task依赖于test任务,以便在创建文档之前运行测试 

8. 将snippets配置为输入。将在此目录下创建所有代码段 

 

REST Assured 

1. Rest-Assured 由 Java 实现的 REST API 测试框架 

2. 在Java中测试和验证REST服务比在Ruby和Groovy等动态语言中更难 

3. REST Assured简化REST API测试 

4. 专为测试 REST API 而设计的 DSL 

5. Java DSL,用于轻松测试REST服务 

6. REST Assured支持任何HTTP方法,但明确支持POST,GET,PUT,DELETE  OPTIONS,PATCH和HEAD,并包括指定和验证例如 parameters, headers,    cookies body  

7. 自动化测试 

8. http://rest-assured.io/ 

 

 

Spring  Auto Rest Docs 

Spring REST Docs 最低要求 

1. Java 8 

2. Spring Framework 5 (5.0.2 or later) 

3. 此外, the spring-restdocs-restassured要求 : 

4. REST Assured 3.0 

 

 

Spring Rest Docs Demo 

Spring Rest Docs实战 

image.png 

 

Asciidocs Maven Plugins 

image.pngimage.png 

Spring REST Docs可以在线方便的调试自己的API,但是没有 Swagger 使用方便,这边就简单介绍下,重点还是讲实战Swagger 

 

Spring Boot 2.0 实战Swagger 

image.png 

引用Swagger的包,需要自己做一些参数化的配置,简单的可以在配置文件进行,复杂一些配置需要在代码里面进行。生成的调试方式也比较简单,生成的网页里面在详细的检索描述性,可以在线的发送get、Post等经典请求格式,很方便的去调接口,对于前后端分离的架构来说是很方便。 

 

页面打开两种方式: 

http://localhost:8081/swagger-ui.html 

1. /v2/api-docs  

2. Swagger UI /swagger-ui.html 

 

接口文档的版本可以不断的变化,也可以在后台进行配置 

 

Swagger-core 注解image.png 

 

在开发过程中,默认的话什么都不加的话,实际解析的信息如说控制器或者类别的基本信息。如果希望对内加一些描述信息。对原接口加原表述信息的话,可以加进来如传输的数据类型,加个model的 API model加个说明,模组里面字段你可以加property这个说明。操作具体方法的话可以operation,参数的话有pyramid的说明,应答消息和请求消息的话也可以加 response,这种相对的这些注解说明都可以了。它会自动的把这些信息提取出来,生成放到Swagger在线帮助文档里。 

 

Spring Boot 2.0 Rest API注解 

image.png 

应答消息401、404、403等消息可以自己定制,如整合API的类型的话,可以加入淘宝用户的API接口等,根据自己的需求进行添加。 

 

image.png 

image.png 

接口也可以分类,目前是这里简单做了几个分类:订单接口,用户接口,并可以在里面进行测试,方便在线检查,并视图形式,反馈各个消息类型的结果。 

测试有错注意点: 

需要使用RestController,不要是用Controller 

出现order repository 问题,是没有数据的原因 

Swagger功能非常强大,也方便调试开发,尤其是前后端分离的架构。下节课继续讲Spring Boot的性能监控,内容容器等重要内容 

相关文章
|
25天前
|
自然语言处理 Java API
Spring Boot 接入大模型实战:通义千问赋能智能应用快速构建
【10月更文挑战第23天】在人工智能(AI)技术飞速发展的今天,大模型如通义千问(阿里云推出的生成式对话引擎)等已成为推动智能应用创新的重要力量。然而,对于许多开发者而言,如何高效、便捷地接入这些大模型并构建出功能丰富的智能应用仍是一个挑战。
100 6
|
5月前
|
存储 Java Maven
Spring Boot WebFlux 增删改查完整实战 demo
Spring Boot WebFlux 增删改查完整实战 demo
|
2月前
|
缓存 NoSQL Java
Springboot实战——黑马点评之秒杀优化
【9月更文挑战第27天】在黑马点评项目中,秒杀功能的优化对提升系统性能和用户体验至关重要。本文提出了多项Spring Boot项目的秒杀优化策略,包括数据库优化(如索引和分库分表)、缓存优化(如Redis缓存和缓存预热)、并发控制(如乐观锁、悲观锁和分布式锁)以及异步处理(如消息队列和异步任务执行)。这些策略能有效提高秒杀功能的性能和稳定性,为用户提供更佳体验。
148 6
|
6月前
|
Java 应用服务中间件 测试技术
深入探索Spring Boot Web应用源码及实战应用
【5月更文挑战第11天】本文将详细解析Spring Boot Web应用的源码架构,并通过一个实际案例,展示如何构建一个基于Spring Boot的Web应用。本文旨在帮助读者更好地理解Spring Boot的内部工作机制,以及如何利用这些机制优化自己的Web应用开发。
89 3
|
6月前
|
安全 Java 开发者
深入理解Spring Boot配置绑定及其实战应用
【4月更文挑战第10天】本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
69 1
|
3月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
3月前
|
Java API UED
【实战秘籍】Spring Boot开发者的福音:掌握网络防抖动,告别无效请求,提升用户体验!
【8月更文挑战第29天】网络防抖动技术能有效处理频繁触发的事件或请求,避免资源浪费,提升系统响应速度与用户体验。本文介绍如何在Spring Boot中实现防抖动,并提供代码示例。通过使用ScheduledExecutorService,可轻松实现延迟执行功能,确保仅在用户停止输入后才触发操作,大幅减少服务器负载。此外,还可利用`@Async`注解简化异步处理逻辑。防抖动是优化应用性能的关键策略,有助于打造高效稳定的软件系统。
73 2
|
3月前
|
JSON Java API
解码Spring Boot与JSON的完美融合:提升你的Web开发效率,实战技巧大公开!
【8月更文挑战第29天】Spring Boot作为Java开发的轻量级框架,通过`jackson`库提供了强大的JSON处理功能,简化了Web服务和数据交互的实现。本文通过代码示例介绍如何在Spring Boot中进行JSON序列化和反序列化操作,并展示了处理复杂JSON数据及创建RESTful API的方法,帮助开发者提高效率和应用性能。
154 0
|
3月前
|
SQL Java 数据库连接
Spring Boot联手MyBatis,打造开发利器:从入门到精通,实战教程带你飞越编程高峰!
【8月更文挑战第29天】Spring Boot与MyBatis分别是Java快速开发和持久层框架的优秀代表。本文通过整合Spring Boot与MyBatis,展示了如何在项目中添加相关依赖、配置数据源及MyBatis,并通过实战示例介绍了实体类、Mapper接口及Controller的创建过程。通过本文,你将学会如何利用这两款工具提高开发效率,实现数据的增删查改等复杂操作,为实际项目开发提供有力支持。
176 0
|
3月前
|
Java 开发者 Spring
Spring Boot实战宝典:揭秘定时任务的幕后英雄,让业务处理如流水般顺畅,轻松驾驭时间管理艺术!
【8月更文挑战第29天】在现代应用开发中,定时任务如数据备份、报告生成等至关重要。Spring Boot作为流行的Java框架,凭借其强大的集成能力和简洁的配置方式,为开发者提供了高效的定时任务解决方案。本文详细介绍了如何在Spring Boot项目中启用定时任务支持、编写定时任务方法,并通过实战案例展示了其在业务场景中的应用,同时提供了注意事项以确保任务的正确执行。
52 0