新兴县城乡建设局网站,黄骅市15天天气预报,唯尚广告联盟平台,我想做自己网站怎么做使用Spring Boot开发API的时候#xff0c;读取请求参数是服务端编码中最基本的一项操作#xff0c;Spring Boot中也提供了多种机制来满足不同的API设计要求。
接下来#xff0c;就通过本文#xff0c;为大家总结6种常用的请求参数读取方式。如果你发现自己知道的不到6种读取请求参数是服务端编码中最基本的一项操作Spring Boot中也提供了多种机制来满足不同的API设计要求。
接下来就通过本文为大家总结6种常用的请求参数读取方式。如果你发现自己知道的不到6种那么赶紧来查漏补缺一下。如果你知道的不止6种那么告诉大家一起互相学习一下吧
RequestParam
这是最最最最最最常用的一个了吧用来加载URL中?之后的参数。
比如这个请求/user?namedidispace 就可以如下面这样使用RequestParam来加载URL中的name参数
GetMapping(/user)
ResponseBody()
public User findUserByName(RequestParam(name) String name){ return userRepo.findByName(name);
}PathVariable
这是RESTful风格API中常用的注解用来加载URL路径中的参数
比如这个请求/user/1 就可以如下面这样使用PathVariable来加载URL中的id参数
GetMapping(/user/{id})
ResponseBody()
public User findUserById(PathVariable(id) String id){ return userRepo.findById(id);
}MatrixVariable
这个我们用的并不是很多但一些国外系统有提供这类API参数这种API的参数通过;分割。
比如这个请求/books/reviews;isbn1234;topN5; 就可以如下面这样使用MatrixVariable来加载URL中用;分割的参数
GetMapping(/books/reviews)
ResponseBody()
public ListBookReview getBookReviews( MatrixVariable String isbn, MatrixVariable Integer topN) {return bookReviewsLogic.getTopNReviewsByIsbn(isbn, topN);
}RequestBody
这也是最常用的一个注解用来加载POST/PUT请求的复杂请求体也叫payload。比如客户端需要提交一个复杂数据的时候就要将这些数据放到请求体中然后服务端用RequestBody来加载请求体中的数据
PostMapping(/add)
public boolean addAccounts(RequestBody ListAccount accounts) throws SQLException {accounts.stream().forEach(a - {a.setCreatedOn(Timestamp.from(Instant.now()));a.setLastLogin(Timestamp.from(Instant.now()));});return notificationLogic.addAccounts(accounts);
}RequestHeader
RequestHeader注解用来加载请求头中的数据一般在业务系统中不太使用但在基础设施的建设中会比较常用比如传递分布式系统的TraceID等。用法也很简单比如假设我们将鉴权数据存在http请求头中那么就可以像下面这样用RequestHeader来加载请求头中的Authorization参数
GetMapping(/user)
ResponseBody()
public ListUser getUserList(RequestHeader(Authorization) String authToken) {return userRepo.findAll();
}CookieValue
当我们需要与客户端保持有状态的交互时就需要用到Cookie。此时服务端读取Cookie数据的时候就可以像下面这样用CookieValue来读取Cookie中的SessionId数据
GetMapping(/user)
ResponseBody()
public ListUser getUserList(CookieValue(name SessionId) String sessionId) {return userRepo.findAll();
}