美文网首页
JavaAPI接口规范

JavaAPI接口规范

作者: 那些年搬过的砖 | 来源:发表于2023-11-27 09:47 被阅读0次
  1. 接口URL规范

【强制】命名规范:采用RESTful风格,使用小写字母,单词之间使用短横线连接,如 /user/get-user-info。

【建议】版本管理: 在URL中包含版本号,如 /v1/user/get-user-info.

【强制】环境标识: 对于不同环境(开发、测试、生产),使用环境标识,如 /dev/v1/user/get-user-info.

【建议】微服务开发时,URL应包括微服务名称作为前缀,例如:/dev/v1/user-service/user/profile。

  1. 接口命名规范

【强制】RESTful风格:使用有意义的名词,遵循驼峰命名规范。

【强制】资源命名: 使用名词表示资源,尽量使用复数形式,如 /users, /products.

【强制】请求方式:涵盖资源的基本操作,如增删改查,可以使用标准的HTTP方法(GET、POST、PUT、DELETE)来表示。

GET请求: 用于获取资源,参数通过URL传递。

POST请求: 用于创建资源,参数通过请求体传递,格式为JSON。

PUT请求: 用于更新资源,参数通过请求体传递,格式为JSON。

DELETE请求: 用于删除资源,参数通过URL传递。

  1. 入参规范

【强制】POST、PUT请求统一使用JSON格式作为请求体。

【建议】对于GET、DELETE请求,可以将参数放在URL中,使用?分隔,多个参数使用&连接。

  1. 出参规范

【强制】统一使用JSON格式作为响应体。

【强制】返回的JSON对象应包含必要的元数据,如状态码、消息等。

【强制】采用统一的响应结构。

{
  "code": 200,
  "message": "成功",
  "data": { /* 实际数据 */ }
}

出参状态码规范:

  • 200:成功

  • 201:资源创建成功

  • 204:资源删除成功

  • 400:请求参数错误

  • 401:未授权

  • 403:禁止访问

  • 404:资源不存在

  • 500:服务器内部错误

  • 用户自定义状态码应避免与HTTP标准状态码冲突,建议使用大于等于1000的数值。

格式 状态码区间 模块
10xxxx 100000~109999 基础能力模块
20xxxx 200000~209999 交付项目
30xxxx 300000~309999
40xxxx 400000~409999
10xxxx 100000~109999
- - 预留50xxxx/60xxxx/70xxxx这三个区间段
80xxxx 800000~809999 外部系统
90xxxx 900000~909999 通用错误
  1. Swagger注解规范
  • 使用Swagger V3注解为API提供文档,方便团队成员和其他开发者理解和使用接口。

【强制】在Controller类上添加@Tag注解,对每个接口方法添加@Operation注解,描述接口的作用。

【强制】使用@Parameter注解描述接口参数,使用@RequestBody注解描述请求体。

【强制】使用@ApiResponse注解描述响应。

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; 
import io.swagger.v3.oas.annotations.media.Content; 
import io.swagger.v3.oas.annotations.media.Schema; 
import io.swagger.v3.oas.annotations.responses.ApiResponse; 
import io.swagger.v3.oas.annotations.tags.Tag;

@RestController @RequestMapping("/api/user") @Tag(name = "用户管理", description = "用户相关操作接口") 
public class UserController {

    @Operation(summary = "获取用户信息", description = "根据用户ID获取用户信息")
@GetMapping("/{userId}")
public ResponseEntity<UserDTO> getUser(
        @Parameter(description = "用户ID", required = true) @PathVariable Long userId) {
    // 实现逻辑
}

@Operation(summary = "创建用户", description = "根据请求体中的用户信息创建新用户")
@PostMapping
public ResponseEntity<UserDTO> createUser(
        @RequestBody(description = "用户信息", required = true, content = @Content(schema = @Schema(implementation = CreateUserRequest.class))) CreateUserRequest request) {
    // 实现逻辑
}

@Operation(summary = "更新用户信息", description = "根据用户ID更新用户信息")
@PutMapping("/{userId}")
public ResponseEntity<UserDTO> updateUser(
        @Parameter(description = "用户ID", required = true) @PathVariable Long userId,
        @RequestBody(description = "用户信息", required = true, content = @Content(schema = @Schema(implementation = UpdateUserRequest.class))) UpdateUserRequest request) {
    // 实现逻辑
}

@Operation(summary = "删除用户", description = "根据用户ID删除用户")
@DeleteMapping("/{userId}")
@ApiResponses(value = {
        @ApiResponse(responseCode = "200", description = "成功", content = @Content(schema = @Schema(implementation = Void.class))),
        @ApiResponse(responseCode = "404", description = "用户不存在", content = @Content(schema = @Schema(implementation = ErrorResponse.class)))
})
public ResponseEntity<Void> deleteUser(
        @Parameter(description = "用户ID", required = true) @PathVariable Long userId) {
    // 实现逻辑
}


}

相关文章

  • javaAPI操作HDFS文件

    javaAPI写入HDFS文件。 javaAPI读取HDFS javaAPI删除HDFS

  • 2019-10-14 SpringMVC与Servlet接口 S

    SpringMVC与Servlet接口 Servlet接口规范 Servlet 接口 定义servlet接口规范i...

  • API接口定义规范

    API接口定义规范 编写时间:2020年02月06号 基本接口共识来源于RESTful接口规范,在这个接口规范的基...

  • 常用API_1

    Scanner类 API 概述:API,应用程序编程接口。JavaAPI是一本程序员的字典。 Scanner概述及...

  • Go 学习笔记 11 | Golang 接口详解

    一、Golang 接口 Golang 中接口定义了对象的行为规范,只定义规范不实现。接口中定义的规范由具体的对象来...

  • 13.接口

    接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 接口 接口类...

  • Go语言基础之接口

    接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 接口 接口类...

  • 2018-10-30http协议&接口规范&接口测试入门

    http协议&接口规范&接口测试入门

  • 21 Golang中的接口(一)

    Golang中接口定义了对象的行为规范,只定义规范不实现。接口中定义的规范由具体的对象来实现。 每个接口由数个方法...

  • 接口规范

    统一接口命名 /接口版本/模块/对象/行为 统一请求头 请求参数和返回参数统一使用驼峰命名法 接口请求 时间,方法...

网友评论

      本文标题:JavaAPI接口规范

      本文链接:https://www.haomeiwen.com/subject/olbvwdtx.html