欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > API-标准controller接口

API-标准controller接口

2025/4/19 8:09:26 来源:https://blog.csdn.net/ChengHuanHuaning/article/details/147090004  浏览:    关键词:API-标准controller接口

请求方式

  1. 注释要求:文档注释并说明出参和返回结果
  2. 请求入参:统一使用JSON进行入参【@RequestBody】
  3. 请求实体要求:字段都需要释标注字段说明

一般情况下都使用JSON参数来使用post方式

POST-Json

/*** * 提交关键字搜索任务,并获取结果** @module Test  (对应目录)*/
@RestController
@RequestMapping("/test/xhs")
@RequiredArgsConstructor
public class TestXhsOpusTaskController {private final TestXhsOpusSearchService TestXhsOpusSearchService;/*** Test小红书作品库外搜任务提交(接口名称)* ** @param taskParams 搜索参数 * @return 任务id*/@PostMapping("/task/add")public string TaskSubmit(@Valid @RequestBody TaskParams taskParams) {return "";}
}

POST-Form表单

在这里插入图片描述

/*** * 提交关键字搜索任务,并获取结果** @module Test  (对应目录)*/
@Validated
@RestController
@RequestMapping("/test/xhs")
@RequiredArgsConstructor
public class TestXhsOpusTaskController {private final TestXhsOpusSearchService TestXhsOpusSearchService;/*** Test小红书作品库外搜任务提交(接口名称)* ** @param taskParams 搜索参数 * @return 任务id*/@PostMapping("/task/add")public string TaskSubmit(@Valid TaskParams taskParams) {return "";}
}

AI-对比

对比项表单请求(application/x-www-form-urlencoded)JSON 请求(application/json)
数据格式类似于 key1=value1&key2=value2
的字符串
结构化 JSON,如 { "key1": "value1" }
嵌套对象不支持或需手动拼接解析原生支持嵌套、数组、对象
服务端解析Spring 自动支持(如 @RequestParam)Spring 需配合 @RequestBody
通用性浏览器原生支持,适合传统表单提交更通用,适合前后端分离、API 调用
安全性参数暴露更明显(如在日志中)JSON体不容易暴露参数(尤其配合HTTPS)
可读性与扩展性可读性差,扩展复杂可读性强,扩展灵活
Content-Typeapplication/x-www-form-urlencodedapplication/json
多媒体上传可通过 multipart/form-data 上传文件通常需额外处理,如 Base64 编码

一些常用的校验

@Data
public class TaskParam {/*** 平台*/@NotBlank(message = "platform不能为空")@Pattern(regexp = "dy|xhs|wb", message = "platform只能为dy|xhs|wb")private String platform;/*** 页数*/@NotNull(message = "page不能为空")@Min(value = 1, message = "page 最小为1")private int  page = 1;/*** 大小*/@NotNull(message = "size不能为空")@Max(value = 200, message = "size 最大为200")private int size = 20;@Valid@NotEmpty(message = "list不能为空")private List<ManageParam> list;/*** 开始日期*/@CustomTime(format = "yyyy-MM-dd")private String startDate;
}

@Valid不同场景的校验触发条件

|参数绑定方式|	是否需要 @Validated	|是否需要 @Valid	示例
@RequestBody
请求体	❌ 不需要	✅ 需要	@RequestBody @Valid Xxx
表单参数或 URL 参数	✅ 需要(类上)	✅ 需要(参数上)	类加 @Validated
,参数加 @Valid
@RequestParam
单参	✅ 需要(类上)	❌ 不需要	@Validated
类 + @Min
参数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词