java真实面试题汇总---查询接口 使用getmapping和postmapping的区别

面试题汇总原因:
之前面试的时候遇到一个面试题,问:都是查询接口,为什么有的人用getmapping,有的人用postmapping,当时觉得很简单,回答的结果就不说了,面试官只是摇摇头。回去后学了一下,现在整理好给大家一起讨论一下

查询接口 使用getmapping和postmapping的区别
在Spring MVC或Spring Boot框架中,@GetMapping和@PostMapping是用于定义HTTP请求处理方法的两个核心注解,分别对应于GET和POST请求方式。下面将详细介绍这两个注解的使用以及它们在查询接口中的应用。

  1. @GetMapping

用途: @GetMapping注解用于标记一个处理GET请求的方法。GET请求通常用于获取资源信息,无副作用,且请求参数包含在URL查询字符串中。
语法: 在控制器类(通常继承自org.springframework.web.servlet.mvc.Controller或使用@Controller注解)的方法上使用@GetMapping,并指定请求的URL路径。

@GetMapping("/api/users")
public List<User> getUsers() {
    // 实现逻辑:从数据库或其他数据源查询用户列表并返回
}

示例解析:

  • 上述代码定义了一个处理GET请求的查询接口,当客户端发送一个GET请求到/api/users时,该方法会被调用。
  • 方法返回类型为List,表示查询结果是一个用户对象列表。
  • 方法内部应实现具体的查询逻辑,如通过DAO或Repository访问数据库,或者调用其他服务获取所需数据
  1. @PostMapping
    用途: @PostMapping注解用于标记一个处理POST请求的方法。POST请求通常用于提交数据(如表单数据、JSON对象等),可能有副作用,并且请求参数包含在请求体中。
    语法: 在控制器类的方法上使用@PostMapping,并指定请求的URL路径。
@PostMapping("/api/users/search")
public List<User> searchUsers(@RequestBody UserSearchCriteria criteria) {
    // 实现逻辑:根据传入的搜索条件从数据库或其他数据源查询用户列表并返回
}

示例解析:

  • 上述代码定义了一个处理POST请求的查询接口,当客户端发送一个POST请求到/api/users/search时,该方法会被调用。

  • 方法接收一个名为criteria的参数,该参数由@RequestBody注解修饰,表示参数值应从请求体中解析。在这个例子中,假设UserSearchCriteria是一个封装了搜索条件的Java类。

  • 方法返回类型同样为List,表示查询结果是一个用户对象列表。

  • 方法内部应实现基于传入的搜索条件执行查询操作。

总结:

  • @GetMapping 适用于那些不需要修改服务器状态,仅用于检索数据的查询接口。请求参数通常通过URL查询字符串传递。
  • @PostMapping
    适用于需要提交数据(如复杂的查询条件、过滤选项等)的查询接口,尤其是当这些数据不适合放在URL查询字符串中(如数据量大、结构复杂)时。请求参数通常通过请求体(如JSON、表单数据)传递。

选择使用@GetMapping还是@PostMapping来定义查询接口,主要取决于接口的实际需求和请求数据的性质。如果查询条件简单且无副作用,通常采用GET请求;如果查询条件复杂或包含敏感信息,建议使用POST请求。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值