4. 不定参数入参

简介: 支持非JSON格式(如@RequestBody、@RequestParam)和JSON格式入参处理,涵盖基本类型、封装对象及多参数场景。通过@Valid结合注解实现请求参数校验,提升接口安全性与稳定性,适用于Spring Boot等Web项目开发。

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;
@Data
public class RequestParam {

private long id;

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

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

}

相关文章
|
人工智能 数据可视化 Java
ElasticSearch安装、插件介绍及Kibana的安装与使用详解
ElasticSearch安装、插件介绍及Kibana的安装与使用详解
ElasticSearch安装、插件介绍及Kibana的安装与使用详解
|
2月前
|
机器学习/深度学习 存储 人工智能
国内首个全国产化千亿参数细粒度 MoE:开源!
TeleChat3-105B-A4.7-Thinking,国内首个全国产化千亿参数细粒度MoE大模型,开源!代码、数学、Agent等多能力比肩头部,支持高效任务拆解与代码生成。
229 2
国内首个全国产化千亿参数细粒度 MoE:开源!
|
3月前
|
JSON 监控 API
借助京东API,轻松分析用户行为,优化店铺页面布局!
本文介绍如何利用京东开放平台API获取用户浏览、点击、加购、搜索等行为数据,通过分析PV、UV、转化率、热力图等关键指标,洞察用户行为路径与页面问题,进而科学优化店铺首页布局、导航结构、商品展示及购物流程,并结合A/B测试与数据可视化工具持续迭代,提升用户体验与销售转化。
240 1
|
2月前
|
机器学习/深度学习 传感器 算法
从代码到物理世界:具身智能的强化学习实战指南
你好,我是maoku!本文带你入门具身智能的强化学习——用直觉与实践替代繁复公式,详解感知融合、连续控制、仿真迁移等核心挑战,并规划PPO→SAC→模仿学习→分层RL的四步进阶路径,助你跨越“仿真到现实”鸿沟。
|
2月前
|
人工智能 安全 C#
阿里云域名价格2026最新整理:注册、续费、转入和赎回收费标准
阿里云域名价格2026最新整理:注册、续费、转入和赎回收费标准,com域名注册85元1年、续费95元一年,cn域名注册38元1年,续费42元一年。阿里云域名活动目前最新的选择AI建站万小智送cn域名活动、域名注册0元首年、域名1元购以及域名限时降价等
|
4月前
|
机器学习/深度学习 存储 自然语言处理
从文字到向量:Transformer的语言数字化之旅
向量化是将文字转化为数学向量的过程,使计算机能理解语义。通过分词、构建词汇表、词嵌入与位置编码,文本被映射到高维空间,实现语义相似度计算、搜索、分类等智能处理,是NLP的核心基础。
|
6月前
|
存储 SQL NoSQL
终于有人把数据库讲明白了
数据库是存储、管理与高效查询数据的系统,广泛应用于各类软件与企业系统。本文详解关系型与非关系型数据库的分类、特点及适用场景,结合实际案例教你如何选型,并介绍多数据库协同架构,助你构建高效、可扩展的数据体系。
终于有人把数据库讲明白了
|
机器学习/深度学习 人工智能 自然语言处理
DeepRant:一款专为国际游戏玩家设计的翻译工具,一键翻译聊天对话,无需切出游戏
专为游戏玩家设计的多语言快捷翻译工具,支持多种翻译模式和主流语言,基于Tauri和React开发。
1045 12
DeepRant:一款专为国际游戏玩家设计的翻译工具,一键翻译聊天对话,无需切出游戏
|
负载均衡 容灾 Cloud Native
云原生应用网关进阶:阿里云网络ALB Ingress 全面增强
云原生应用网关进阶:阿里云网络ALB Ingress 全面增强
372 6

热门文章

最新文章