java - Spring REST:除了实体之外,还从请求正文中获取 JSON 数据
问题描述
我正在使用 spring REST 处理 java 项目。
我的问题是在将请求正文(即 json)作为实体接收后,我无法从请求正文(即 json)中提取数据。
例如:
JSON 请求正文
{
"firstname": "Rayan",
"lastname": "Cold",
"company_id": 23
}
我的控制器映射方法是:
@PostMapping("/employee")
public Employee createEmployee(@RequestBody Employee employee) {
// Here i need to extract the company id from request body
// Long companyId = *something* // how i can extract from request ?
return companiesRepository.findById(companyId).map(company -> {
employee.setCompany(company);
return employeeRepository.save(employee);
}).orElseThrow(() -> new ResourceNotFoundException("Company not found"));
}
我知道我可以将公司 ID 作为路径变量传递。但我确实希望它在请求正文中而不是在 URI 中。
谢谢
解决方案
如果您的 Employee 类包含 companyId,则无法映射 company_id。
我猜您的公司课程如下:
public class Employee {
private String firstname;
private String lastname;
private Long companyId;
//跳过getter setter }
将其更改为:
public class Employee {
private String firstname;
private String lastname;
@Transient
@JsonProperty("company_id")
private Long companyId;
//跳过getter setter }
推荐阅读
- react-hooks - React Test Renderer, useEffect async useState update 似乎没有更新状态
- html - 为什么不同时使用 margin-bottom 和 margin-top 而只使用 marin 的总和作为 margin-top?
- javascript - 我们应该在哪里存储会话 ID
- git - 更新后 Visual Studio Code 无法授权 Git 帐户
- php - 在 Laravel 中使用 Guzzle 客户端发布 Json 数据
- ruby-on-rails - 是否可以将模式放入卡片中?
- lightbox2 - Weebly 灯箱/花式框关闭按钮分层在图像 Weebly 后面
- python - MinMaxDivision 问题:检查块号
- computation-theory - Starlark转身完成了吗?
- css - 将 css 样式表添加到 ejs 文件会使页面无限期加载