4. 不定参数入参

简介: 本文介绍了接口参数的两种常见传参方式:非JSON格式与JSON格式。前者支持基本类型、对象等直接绑定,后者通过@RequestBody接收JSON数据,可封装为对象或使用JSONObject解析,并结合@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;
}
相关文章
|
JavaScript 定位技术 API
百度离线地图API v3.0开发解决方案
百度离线地图API v3.0开发解决方案
1256 0
|
数据可视化 搜索推荐 关系型数据库
【最佳实践】实时计算Flink在IoT行业的实时数仓建设实践
据 IDC 估计,到 2020 年物联网将在全球范围内产生 1.46 万亿美元的价值。据预测,届时中国的物联网市场规模将超过 1.8 万亿人民币。
|
8月前
|
开发者
业务架构图
本文介绍了业务架构图的核心概念与绘制方法,涵盖业务定义、架构域分类、分层分模块分功能的要义,并结合实例说明其在产品设计中的应用价值。
|
3月前
|
存储 消息中间件 传感器
数据仓库是什么?数据仓库和ODS、数据集市有什么区别?
本文厘清数据仓库架构中三大核心概念:ODS(操作型数据存储)是贴源、低延迟的数据缓冲区;数据仓库(DW)是面向主题、集成、非易失的中央分析平台;数据集市(DM)是面向部门、轻度汇总的主题小库。三者构成“采集—整合—服务”闭环,是企业数据架构的基石。
|
3月前
|
人工智能 Linux API
【阿里云官方】MacOS/Linux/Windows11 及阿里云部署 OpenClaw 完整教程
本文为阿里云部署OpenClaw(原Clawdbot)的保姆级教程,涵盖轻量服务器/计算巢一键镜像部署、Qwen3-Max大模型配置、多端本地安装及避坑指南。零代码可视化操作,10分钟快速启用,适配飞书/企微等主流IM,助力个人与企业高效构建自主进化AI助手。(239字)
|
8月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细介绍Nacos作为配置中心的实现原理与实战应用,涵盖配置管理、热更新、共享配置及优先级规则,并演示集群搭建与高可用部署,提升微服务架构下配置的动态管理能力。
|
4月前
|
人工智能 自然语言处理 运维
适合金融行业用的智能体产品(AI工具)有哪些?金融垂直领域智能体解决方案:头部厂商与新兴黑马一览
IDC报告指出,金融行业正从“工具赋能”迈向“智能重构”,AI升维为驱动业务与生产关系变革的核心力量。生成式AI已形成完整生态,聚焦智能体应用落地。银行业重风控运营,证券业强投顾资管,保险业突出营销服务。智能体正深度渗透研报分析、信贷审批、智能投顾、AI核保等高频场景,加速金融智能化转型。(239字)
|
8月前
|
SpringCloudAlibaba Java Nacos
SpringCloud概述
Spring Cloud是微服务的统一解决方案,具备约定大于配置、组件丰富、开箱即用等特点。通过整合Netflix与Alibaba生态,形成完整技术栈,其中Spring Cloud Alibaba因Nacos、Sentinel等优秀组件成为主流选择。
|
8月前
|
JSON Dubbo Java
Feign远程调用
本文介绍了如何使用Feign替代RestTemplate实现更优雅的HTTP跨服务调用。通过引入Feign,解决传统方式中服务地址硬编码、代码可读性差等问题,并结合注册中心实现服务发现。文章详细讲解了Feign的集成步骤、自定义配置(如日志级别)、性能优化(如连接池)及最佳实践,包括接口抽取与模块复用方案,提升微服务间通信的可维护性和开发效率。
|
域名解析 网络协议 测试技术
Ping 命令是如何工作的?
【2月更文挑战第9天】
1842 0
Ping 命令是如何工作的?