当前位置: 首页 > news >正文

潍坊网站的优化网络营销课程感悟

潍坊网站的优化,网络营销课程感悟,做网站图片属性,wordpress 安装php将项目从 Springfox 迁移到 Springdoc OpenAPI 3 时,主要的工作是将原先使用的 Springfox 注解替换为 Springdoc OpenAPI 3 中的对应注解。虽然 Springdoc OpenAPI 3 基于 OpenAPI 3 规范,并且有一些不同的命名方式和设计理念,但大部分注解的…

将项目从 Springfox 迁移到 Springdoc OpenAPI 3 时,主要的工作是将原先使用的 Springfox 注解替换为 Springdoc OpenAPI 3 中的对应注解。虽然 Springdoc OpenAPI 3 基于 OpenAPI 3 规范,并且有一些不同的命名方式和设计理念,但大部分注解的功能是类似的。

主要注解对比表

功能/注解Springfox 注解Springdoc OpenAPI 3 注解
接口文档描述@ApiOperation@Operation
接口文档描述(错误响应等)@ApiResponses@ApiResponses
接口文档描述(单个响应)@ApiResponse@ApiResponse
接口参数描述@ApiParam@Parameter
请求模型描述@ApiModel@Schema
响应模型描述@ApiModelProperty@Schema
类/接口文档描述@Api@Tag
全局文档描述@ApiOperation@ApiResponses@OpenAPIDefinition
请求头描述@ApiImplicitParam@RequestHeader

Springfox 到 Springdoc 的主要迁移步骤与注解对比

1. @ApiOperation@Operation

在 Springfox 中,@ApiOperation 用于描述 RESTful 接口的功能。Springdoc 使用 @Operation 代替。

Springfox 示例:

@ApiOperation(value = "获取用户信息", notes = "通过用户ID获取详细信息")
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {return userService.getUserById(id);
}

Springdoc 示例:

@Operation(summary = "获取用户信息", description = "通过用户ID获取详细信息")
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {return userService.getUserById(id);
}
2. @ApiResponses@ApiResponses

@ApiResponses 在 Springfox 和 Springdoc 中的功能是相同的,用来描述接口的多个响应状态和返回类型。

Springfox 示例:

@ApiResponses({@ApiResponse(code = 200, message = "成功", response = User.class),@ApiResponse(code = 404, message = "用户未找到")
})
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {return userService.getUserById(id);
}

Springdoc 示例:

@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "成功", content = @Content(mediaType = "application/json", schema = @Schema(implementation = User.class))),@ApiResponse(responseCode = "404", description = "用户未找到")
})
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {return userService.getUserById(id);
}
3. @ApiResponse@ApiResponse

描述单个响应状态的注解在 Springfox 和 Springdoc 中是一致的。@ApiResponse 用于指定响应的代码、描述和返回的类型。

Springfox 示例:

@ApiResponse(code = 200, message = "成功", response = User.class)
public ResponseEntity<User> getUser(@PathVariable Long id) {return ResponseEntity.ok(userService.getUserById(id));
}

Springdoc 示例:

@ApiResponse(responseCode = "200", description = "成功", content = @Content(mediaType = "application/json", schema = @Schema(implementation = User.class)))
public ResponseEntity<User> getUser(@PathVariable Long id) {return ResponseEntity.ok(userService.getUserById(id));
}
4. @ApiParam@Parameter

在 Springfox 中,@ApiParam 用于描述方法参数。在 Springdoc 中,使用 @Parameter 来描述。

Springfox 示例:

@GetMapping("/users")
public List<User> getUsers(@ApiParam(value = "分页参数", required = true) @RequestParam int page) {return userService.getUsers(page);
}

Springdoc 示例:

@GetMapping("/users")
public List<User> getUsers(@Parameter(description = "分页参数", required = true) @RequestParam int page) {return userService.getUsers(page);
}
5. @ApiModel@ApiModelProperty@Schema

Springfox 使用 @ApiModel@ApiModelProperty 来描述请求体和响应体的模型属性。而在 Springdoc 中,这些都通过 @Schema 注解来完成。

Springfox 示例:

@ApiModel(description = "用户对象")
public class User {@ApiModelProperty(notes = "用户ID", required = true)private Long id;@ApiModelProperty(notes = "用户名", required = true)private String name;
}

Springdoc 示例:

@Schema(description = "用户对象")
public class User {@Schema(description = "用户ID", required = true)private Long id;@Schema(description = "用户名", required = true)private String name;
}
6. @Api@Tag

@Api 用于描述整个类的 API 元信息。在 Springdoc 中,使用 @Tag 来替代它。

Springfox 示例:

@Api(tags = "用户管理 API")
@RestController
@RequestMapping("/users")
public class UserController {// Controller methods
}

Springdoc 示例:

@Tag(name = "用户管理 API")
@RestController
@RequestMapping("/users")
public class UserController {// Controller methods
}

7. @ApiImplicitParam@RequestParam@RequestHeader@PathVariable

在 Springfox 中,@ApiImplicitParam 用于声明请求参数的元信息。在 Springdoc 中,这些信息通过 @RequestParam@RequestHeader@PathVariable 等注解直接在参数上描述。

Springfox 示例:

@ApiImplicitParam(name = "Authorization", value = "JWT token", required = true, paramType = "header")
@GetMapping("/profile")
public User getProfile(@RequestHeader("Authorization") String token) {return userService.getProfile(token);
}

Springdoc 示例:

@GetMapping("/profile")
public User getProfile(@RequestHeader(description = "JWT token", required = true) String token) {return userService.getProfile(token);
}

总结

Springdoc OpenAPI 3 中的注解与 Springfox 大致相同,主要的变化在于命名方式。以下是迁移时的关键对比:

Springfox 注解Springdoc 注解
@ApiOperation@Operation
@ApiResponses@ApiResponses
@ApiResponse@ApiResponse
@ApiParam@Parameter
@ApiModel@Schema
@ApiModelProperty@Schema
@Api@Tag
@ApiImplicitParam@RequestParam@RequestHeader

迁移时,主要是将 Springfox 中的注解替换为 Springdoc 中对应的注解,并根据 OpenAPI 3 的规范调整 API 文档描述。

http://www.tj-hxxt.cn/news/122234.html

相关文章:

  • zhaosf做这样网站微信群推广
  • 开锁换锁公司网站模板百度小说风云榜今天
  • 优品ppt模板免费下载seo服务内容
  • 建wap手机网站网站开发需要的技术
  • 网站注册可以免费吗搜狗权重查询
  • 电子商务网站建设的心得民生热点新闻
  • 西安网站建设设计的好公司哪家好友情链接有用吗
  • php网站整合dz论坛营销宣传策划方案
  • 行业门户网站 建站免费跨国浏览器
  • 做校招的网站有哪些网站整合营销推广
  • 织梦末班和dw建设网站哪个方便优化谷歌账号注册
  • 织梦程序如何搭建网站快速推广
  • 做网站需要网站负责人个人博客网站模板
  • 怎么做整人网站现在做百度推广有用吗
  • 上海网络平台网站建设网络营销策划ppt范例
  • 网站开发有前景吗搜索引擎优化的英文缩写是什么
  • 网站域名怎么设置it培训班
  • 网上开店铺需要多少钱广州seo推广
  • dw是做静态网站还是动态的扬州整站seo
  • 网站整站优化关键词优化是什么意思?
  • 做明星ps黄图网站sem分析是什么
  • 河南企业网站建设如何做好网络营销推广
  • 用微信微博网站来做睡眠经济重庆人力资源和社会保障网
  • 黔西南州党风廉政建设网站app线下推广怎么做
  • 南昌做网站的公司哪个比较好的潍坊网站定制模板建站
  • 丝绸之路网站建设策划书太原网络营销公司
  • 网站开发使用api对seo世界搜索引擎大全
  • 苏州营销型网站建设方案小学生班级优化大师
  • 学做网站前景搜索广告是什么
  • 做网站的软件著作权神童预言新冠2023结束