4. 不定参数入参

简介: 本文介绍了API接口中参数传递的两种方式:非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;
}
相关文章
|
传感器 人工智能 算法
数字孪生智慧水务系统,三维立体平台,沃思智能
智慧水务系统融合物联网、数字孪生与AI技术,实现供水全流程智能监测、预测性维护与动态优化。通过实时数据采集与三维建模,提升漏损控制、节能降耗与应急响应能力,推动水务管理从经验驱动迈向数据驱动,助力城市水资源精细化、可持续化管理。
1751 143
|
9月前
|
物联网
LoRA、全参、QLoRA:显存占用结构对比
本文深入剖析大模型微调中显存占用的本质,指出LoRA、全参、QLoRA的差异不在参数量,而在“哪些组件必须常驻显存”。系统拆解显存四大构成:参数、梯度、优化器状态、中间激活,揭示三者各自保留/舍弃/压缩的部分,并强调:**激活(activations)才是OOM主因,而所有方案对此几乎无改善**。破除“换方案即省显存”误区,推动显存问题工程化诊断。
|
10月前
|
人工智能 自然语言处理 安全
AI技术对英语学习的改进
AI正重塑英语学习:从工具升级为“全天候数字教育基建”。2026年,智能语伴具备长期记忆与主动交互;多模态技术实现口型/肢体精准纠偏;“i+1”动态分级适配兴趣与水平;写作指导聚焦逻辑与思维润色;教师获AI赋能,实现精准教学与高效备课。(239字)
|
11月前
|
弹性计算 调度 vr&ar
实时云渲染与云桌面解析(一):图形计算架构的技术对比
GPU虚拟化技术面临云桌面成本上涨和性能瓶颈问题,而实时云渲染技术通过云端渲染和低延迟传输提供更优解决方案。相比系统级虚拟化的云桌面,应用级云渲染如LarkXR平台支持动态资源分配和弹性伸缩,在性能、成本、部署灵活性等方面更具优势。实时云渲染技术正快速发展,特别适合元宇宙、数字孪生等高实时性场景,可显著降低企业图形计算成本并提升用户体验。平行云的LarkXR平台已实现规模化应用,提供企业级云渲染解决方案。
|
9月前
|
缓存 监控 前端开发
1688商品详情页前端性能优化实战
针对1688 B2B商品详情页信息密度高、图片多(平均165张)、交互复杂、第三方脚本多等性能瓶颈,通过智能图片优化(AVIF/WebP+懒加载+CDN参数压缩)、第三方脚本分级延迟加载、关键资源预加载、SSR直出与阿里CDN缓存策略,实现LCP从12.3s→4.1s(↓67%),总资源28.9MB→9.8MB(↓66%),CLS优化71%,询盘率提升28%,显著提升用户体验与转化。
|
11月前
|
持续交付
阿里巴巴-云效
本文介绍了如何开通云效服务并进行需求与代码管理。首先访问官网开通服务,随后在需求管理中创建项目、邀请成员并跟踪任务,支持看板模式以便直观管理。接着了解代码托管平台的使用,包括创建代码库、初始化工程、提交代码及构建自动化流水线,实现代码的自动部署与发布,重点在于流程体验。
|
JSON 自然语言处理 Linux
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
1458 143
linux命令—tree
|
11月前
|
人工智能 运维 安全
2025年主流接口测试工具对比分析与最佳实践指南
文章围绕2025年接口测试工具展开,介绍其在自动化、云化与AI赋能方向的演进。对比SaaS化平台、本地化部署方案及AI驱动型工具的特点、优势与局限,分析行业痛点及解决方案。还给出构建一体化链路的最佳实践,以及工具选择建议,助力企业提升测试效率与质量。
|
10月前
|
C#
C# 实现简单的 AOP(面向切面编程)
通过反射与委托实现AOP,可在方法执行前后动态添加日志、计时等横切逻辑,提升代码复用性与可维护性。