不定参数入参

简介: 支持多种参数传递方式:非JSON格式可通过注解区分路径、表单或请求体传参;JSON格式支持JSONObject解析单个/多个参数,或通过@RequestBody封装对象接收,结合@Valid实现参数校验,提升接口安全性与可维护性。(238字)

1.非JSON格式入参

@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initDoctorConfig(@Valid User param) {
   do something...
}

@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initDoctorConfig(int id) {
    do something...
}

@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initDoctorConfig(@RequestParam int id) {
    do something...
}

@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initDoctorConfig(@RequestBody int id) {
   do something...
}

2.JSON入参
2.1 单个或多个独立参数

@PostMapping(value = "/order/detail", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO getInfo(@RequestBody JSONObject jsonParams) {
long id = jsonParams.getLong("id");
String name = jsonParams.getString("name");
}
2.2 封装参数

@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initConfig(@Valid @RequestBody RequestParam param) {
return initService.initConfig(param);
}
其中封装入参对象就是一个包含各入参函数对象的Object
这里同步做了数据校验,可忽略也可在其项目参考,其中包资源
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
Java
运行代码
复制代码

@Data
public class RequestParam {

private long id;

@NotBlank(message = "姓名不能为空")
private String name;

@NotBlank(message = "年龄不能为空")
private String age;

}

相关文章
|
分布式计算 并行计算 Java
浅析Python自带的线程池和进程池
浅析Python自带的线程池和进程池
1258 0
|
6月前
|
JSON Java fastjson
Spring Boot返回Json数据及数据封装
Spring Boot默认使用Jackson处理JSON,通过@RestController可直接返回JSON数据。本文详解Jackson与FastJson的配置与对比,并封装统一的JSON返回结构,提升前后端交互规范性与开发效率。
|
6月前
|
Java Spring
Spring Boot开发环境搭建和项目启动
图片展示了一幅色彩斑斓的抽象艺术画作,流动的线条与绚丽的色块交织,营造出梦幻般的视觉效果,仿佛宇宙星河或意识流的具象化表达,引人遐想。
 Feign远程调用
 Feign远程调用
|
6月前
|
Java 测试技术 Linux
生产环境发布管理
本文介绍大型团队如何通过自动化部署平台实现多环境(dev/test/pre/prod)高效发布与运维。涵盖各环境职责、基于Jenkins+K8S的CI/CD流程、分支管理、一键发布及回滚机制,并结合Skywalking实现日志链路追踪,提升问题定位与修复效率,助力企业实现标准化、可视化发布管控。(238字)
 持久层框架MyBatisPlus
 持久层框架MyBatisPlus
|
前端开发 中间件 程序员
如何尽可能快地上手一个业务or项目
本文简单讲述作者对于“怎么尽可能快地上手一个新业务/项目?”这个问题的个人理解。
327 16
|
消息中间件 Cloud Native Kafka
AutoMQ vs Kafka: 来自小红书的独立深度评测与对比
AutoMQ vs Kafka: 来自小红书的独立深度评测与对比
439 0
AutoMQ vs Kafka: 来自小红书的独立深度评测与对比
|
存储 监控 Linux
在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践
本文详细介绍了在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践,包括使用 `fdisk` 创建分区、`mkfs` 格式化分区、创建挂载点、编辑 `/etc/fstab` 实现永久挂载等步骤,旨在有效管理服务器磁盘空间,提高系统稳定性和可维护性。
4143 1
|
网络协议 网络安全 虚拟化
计算机网络——链路层(1)
计算机网络——链路层(1)