2026/4/17 1:30:38
网站建设
项目流程
长春网站怎么推广,扬州做网站的价格,戴尔的网站建设有哪些主要特色,网站制作公司智能 乐云践新在前后端分离开发中通常由后端程序员设计接口#xff0c;完成后需要编写接口文档#xff0c;最后将文档交给前端工程师#xff0c;前端工程师参考文档进行开发。
可以通过一些工具快速生成接口文档 #xff0c;本项目通过Swagger生成接口在线文档 。 什么是Swagger#x…在前后端分离开发中通常由后端程序员设计接口完成后需要编写接口文档最后将文档交给前端工程师前端工程师参考文档进行开发。可以通过一些工具快速生成接口文档 本项目通过Swagger生成接口在线文档 。什么是SwaggerOpenAPI规范OpenAPI Specification 简称OAS是Linux基金会的一个项目试图通过定义一种用来描述API格式或API定义的语言来规范RESTful服务开发过程目前版本是V3.0并且已经发布并开源在github上。https://github.com/OAI/OpenAPI-SpecificationSwagger是全球最大的OpenAPI规范OASAPI开发工具框架Swagger是一个在线接口文档的生成工具前后端开发人员依据接口文档进行开发。 (https://swagger.io/)Spring Boot 可以集成SwaggerSwaager根据Controller类中的注解生成接口文档 只要添加Swagger的依赖和配置信息即可使用它。1、在API工程添加swagger-spring-boot-starter依赖Java!-- Spring Boot 集成 swagger --dependencygroupIdcom.spring4all/groupIdartifactIdswagger-spring-boot-starter/artifactId/dependency2、在 bootstrap.yml中配置swagger的扫描包路径及其它信息base-package为扫描的包路径扫描Controller类。Javaswagger:title: 学成在线内容管理系统description: 内容系统管理系统对课程相关信息进行管理base-package: com.xuecheng.contentenabled: trueversion: 1.0.03、在启动类中添加EnableSwagger2Doc注解再次启动服务工程启动起来访问http://localhost:63040/content/swagger-ui.html查看接口信息下图为swagger接口文档的界面这个文档存在两个问题1、接口名称显示course-base-info-controller名称不直观2、课程查询是post方式只显示post /course/list即可。下边进行修改添加一些接口说明的注解并且将RequestMapping改为PostMapping如下BashApi(value 课程信息编辑接口,tags 课程信息编辑接口)RestControllerpublic class CourseBaseInfoController {ApiOperation(课程查询接口)PostMapping(/course/list)public PageResultCourseBase list(PageParams pageParams, RequestBody(requiredfalse) QueryCourseParamsDto queryCourseParams){//....}}5、再次启动服务工程启动起来访问http://localhost:63040/content/swagger-ui.html查看接口信息下图为swagger接口文档的界面接口文档中会有关于接口参数的说明在模型类上也可以添加注解对模型类中的属性进行说明方便对接口文档的阅读。比如下边标红的属性名称可以通过swaager注解标注一个中文名称方便阅读接口文档。标注的方法非常简单找到模型类在属性上添加注解Javapublic class PageParams {...ApiModelProperty(当前页码)private Long pageNo 1L;ApiModelProperty(每页记录数默认值)private Long pageSize 30L;...public class QueryCourseParamsDto {//审核状态ApiModelProperty(审核状态)private String auditStatus;//课程名称ApiModelProperty(课程名称)private String courseName;}重启服务再次进入接口文档如下图Swaager的常用注解如下在Java类中添加Swagger的注解即可生成Swagger接口常用Swagger注解如下JavaApi修饰整个类描述Controller的作用ApiOperation描述一个类的一个方法或者说一个接口ApiParam单个参数描述ApiModel用对象来接收参数ApiModelProperty用对象接收参数时描述对象的一个字段ApiResponseHTTP响应其中1个描述ApiResponsesHTTP响应整体描述ApiIgnore使用该注解忽略这个APIApiError 发生错误返回的信息ApiImplicitParam一个请求参数ApiImplicitParams多个请求参数ApiImplicitParam属性如下属性取值作用paramType查询参数类型path以地址的形式提交数据query直接跟参数完成自动映射赋值body以流的形式提交 仅支持POSTheader参数在request headers 里边提交form以form表单的形式提交 仅支持POSTdataType参数的数据类型 只作为标志说明并没有实际验证LongStringname接收参数名value接收参数的意义描述required参数是否必填true必填false非必填defaultValue默认值使用Swagger可以进行接口的测试。修改接口内容添加一些测试代码JavaApiOperation(课程查询接口)PostMapping(/course/list)public PageResultCourseBase list(PageParams pageParams, RequestBody(requiredfalse) QueryCourseParamsDto queryCourseParams){CourseBase courseBase new CourseBase();courseBase.setName(测试名称);courseBase.setCreateDate(LocalDateTime.now());ListCourseBase courseBases new ArrayList();courseBases.add(courseBase);PageResult pageResult new PageResultCourseBase(courseBases,10,1,10);return pageResult;}debug方式启动在 return 处打断点再用swagger请求接口。通过下图可以看到请求参数已经正常请求至controller方法放行继续运行观察swagger界面结果可以正常返回不过存在一个问题就是LocalDateTime类型的数据转json后数据格式并不是我们要的年月日时分秒在base工程com.xuecheng.base.config包下加配置LocalDateTimeConfig 类实现转json时字符串与LocalDateTime类型的转换LocalDateTimeConfig 类可从课程资料下的项目工程目录中直接拷贝。