接口入参--注解

注解使用:
@RequestParam("前端的名称") 加了如果参数没传就报参数错误。没加就都可以访问。

@RequestMapping("/list")
public String test(@RequestParam Long parentId) {

}
@RequestMapping("/list")
public String test( Long parentId) {

}

第一种必须带有参数,也就是说你直接输入localhost:8080/list 会报错 不会执行方法 只能输入localhost:8080/list?parentId=? 才能执行相应的方法

第二种 可带参数也可不带参数 就是说你输入 localhost:8080/list 以及 localhost:8080/list?parentId=? 方法都能执行
当然你也可以设置 @RequestParam 里面的required为false(默认为true 代表必须带参数) 这样就跟第二种是一样的了

@RequestMapping("/list")
public String test(@RequestParam(value="id") Long parentId) {
..
}
这样会用id 代替parentId 也就是说你地址里面传入的参数名称为id localhost:8080/list?id=? 这种


----因此综上所述,如果为get请求时,后台接收参数的注解应该为RequestParam,如果为post请求时,则后台接收参数的注解就是为RequestBody。

----另外,还有一种应用场景,接口规范为resultful风格时,举个例子:如果要获取某个id下此条问题答案的查询次数的话,则后台就需要动态获取参数,其注解为@PathVariable,并且requestMapping中的value应为value="/{id}/queryNum",

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。

 

@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写

转载于:https://www.cnblogs.com/lcfeiyu/p/10160361.html

### API接口参数映射设计及实现方法 API接口参数映射设计和实现方法主要涉及前端与后端之间的数据交互,包括(请求参数)和出(响应结果)的设计。以下是关于API接口参数映射的设计与实现方法的具体说明。 #### 1. 映射设计 映射通常通过注解或配置文件来完成,确保前端传递的数据能够正确映射到后端的实体对象中。以下是一些常见的实现方式: - **使用注解绑定参数**:在Spring框架中,可以使用`@RequestParam`、`@PathVariable`、`@RequestBody`等注解将HTTP请求中的参数绑定到方法参数上[^1]。 - `@RequestParam`:用于绑定URL中的查询参数- `@PathVariable`:用于绑定路径变量。 - `@RequestBody`:用于将请求体中的JSON数据直接映射为Java对象。 - **数据验证**:为了保证的有效性,可以在参数对象上添加校验注解(如`@NotNull`、`@Size`等),并通过`@Validated`或`@Valid`进行校验[^3]。 #### 2. 出映射设计 出映射设计主要关注如何将后端处理的结果以统一的格式返回给前端。以下是一些常见的实现方式: - **统一返回格式**:大多数API会采用统一的返回格式,例如包含状态码、消息和数据字段的JSON结构。示例: ```json { "code": 200, "message": "成功", "data": {} } ``` - **序列化控制**:可以通过`@JsonInclude`、`@JsonIgnore`等注解控制JSON序列化过程中的字段输出。此外,还可以使用`@JsonView`定义不同的视图层次,根据需求选择性地返回字段。 - **类型转换**:对于复杂的数据类型,可以自定义类型转换器,并通过`Converter`接口实现数据类型的转换[^3]。 #### 3. Map作为参数映射容器 在某些场景下,使用`Map`作为参数映射容器也是一种有效的方式。例如,可以通过`HashMap`存储键值对,并将其作为请求参数传递给后端[^2]。代码示例: ```java Map<String, Object> params = new HashMap<>(); params.put("key1", "value1"); params.put("key2", "value2"); // 将Map对象作为请求参数传递 ResponseEntity<Map<String, Object>> response = restTemplate.postForEntity(url, params, Map.class); ``` #### 4. RESTful API设计中的参数映射 RESTful API设计强调使用标准的HTTP方法(如GET、POST、PUT、DELETE)来操作资源[^4]。参数映射设计需要结合HTTP方法的特点进行设计: - **GET请求**:通过URL查询参数传递数据,适合简单的查询操作。 - **POST/PUT请求**:通过请求体传递JSON或XML数据,适合复杂的业务逻辑。 - **DELETE请求**:通过路径参数或查询参数指定要删除的资源。 #### 5. 参数映射的扩展性 为了提高API的灵活性和可维护性,可以设计参数映射的扩展机制。例如,通过自定义注解或拦截器实现动态参数解析。 --- ### 示例代码 以下是一个完整的API接口参数映射示例: ```java @RestController @RequestMapping("/api") public class ExampleController { @PostMapping("/create") public ResponseEntity<Map<String, Object>> create(@RequestBody Map<String, Object> params) { // 处理请求参数 String key1 = (String) params.get("key1"); Integer key2 = (Integer) params.get("key2"); // 构建响应结果 Map<String, Object> result = new HashMap<>(); result.put("status", "success"); result.put("data", params); return ResponseEntity.ok(result); } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值