4. 不定参数入参

简介: 本文介绍了接口入参的两种方式:非JSON格式与JSON格式。前者支持基本类型、对象等直接绑定,后者通过@RequestBody接收JSON数据,可封装为对象并结合@Valid进行参数校验,提升代码规范性与安全性。

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;
}
相关文章
|
4月前
|
人工智能 自然语言处理 API
通义千问 Qwen 3.0 前景分析:开源为王,国产 AI 的全球化突围战
2025年4月底,阿里发布Qwen 3.0,8款模型全量开源。其dual-mode reasoning(快/慢思考)提升响应效率与推理深度;MoE架构显著降本增效,小模型性能惊艳;256K长上下文、119语种支持及强大中文理解构筑差异化优势;Apache 2.0开源生态已成全球最大。虽面临幻觉率、全球竞争与商业化挑战,但技术迭代迅猛,前景稳健可期。(239字)
【重要公告】关于云大使返佣规则升级及过渡期安排的说明
阿里云将于2026年5月1日启用新版云大使推广奖励规则。存量客户返佣仍按原规则执行至关联有效期结束;新旧规则差额将于9月1日前统一补发至账户。详情及咨询请访问官网或添加官方钉钉号。
|
9月前
|
设计模式 Java
【TMF】源码分析 1.0 LatticeClassLoader
LatticeClassLoader扩展Java双亲委派模型,支持多自定义类加载器的委托加载。类加载失败后依次尝试自定义加载器,实现插件化容错;资源获取优先父加载器,支持单资源查找与多资源聚合,适用于插件系统、多租户隔离及SPI扩展,保障业务隔离与灵活扩展。
317 1
|
8月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图。横轴为对象,纵轴为时间,通过消息展现动态协作。强调时间顺序,可用于建模系统交互、展示并发进程。主要元素包括角色、对象、生命线、控制焦点和各类消息,如同步、异步与返回消息,支持自关联调用,直观呈现系统行为流程。
系统时序图
|
5月前
|
存储 人工智能 监控
阿里云一键部署OpenClaw 及5大高阶实用玩法:长期记忆+热点追踪+远程编程+多AI协作+通宵自动化
OpenClaw(俗称龙虾)的核心价值远不止基础对话与简单任务执行,其真正的生产力体现在“长期记忆沉淀、跨平台联动、多智能体协作、无人值守自动化”四大高阶能力上。本文基于2026年最新版本特性,深度拆解5个改变工作方式的实用玩法——长期记忆日志系统、热门内容实时提醒、手机远程氛围编程、多AI私人研发团队、通宵无人值守任务,同时提供阿里云+本地多系统部署流程、阿里云百炼免费大模型配置,所有命令可直接复制执行,助力用户充分释放OpenClaw的效率潜力。
755 2
|
7月前
|
缓存 人工智能 自然语言处理
阿里云通义千问-Plus推理服务价格表,2026年最新整理
阿里云通义千问-Plus推理服务2026年最新价格表,涵盖128k、256k、1m输入档位,详列输入/输出、缓存、批量推理等费用。开通阿里云百炼可免费领超7000万Tokens。
6943 4
|
8月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细介绍Nacos作为配置中心的实现原理与实践,涵盖配置管理、热更新、共享配置及优先级规则,并演示集群搭建与高可用部署,助力微服务架构下配置的集中化、动态化管理。
 Nacos配置中心
一文带你了解 PoE 标准和功率
【10月更文挑战第1天】
3435 0
一文带你了解 PoE 标准和功率
|
存储 JSON NoSQL
MongoDB入门-MongDB介绍和安装
MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
2275 1