mongodb - REST Api Spring boot with mongodb如何获取json?
问题描述
@GetMapping("/getAccount")
public Account validateAccount(@RequestBody) {
}
弹簧靴非常新。我的帐户文件有 5 个以上的值,所有字符串、用户名、密码、id 和一些等等。
鉴于这种
{
"username": "bob"
"password": "password"
}
它应该给出 200 响应代码 OK
{
"id": "45645646546"
"username": "bob"
"password": "password"
"status": "Single"
"filler": "filler"
}
但是我不确定如何在我的 validateAccount 函数中读取“用户名”和“密码”json
与这个问题并不真正相关,但有人知道如何在函数中发送响应代码吗?像 .sendresponseheader(400) 这样的东西
解决方案
public class AccountDTO {
@JsonIgnore
private Long id;
@NotNull
private String username;
@NotNull
private String password;
@JsonIgnore
private String status;
@JsonIgnore
private String filler;
// getters & setters
}
您可能想要创建一个 DTO(数据事务对象),如上所示。这是它的wiki的链接。
接下来使用 @RequestBody 注释将映射用户输入传递到此 DTO。
@RestController
public class AccountController {
@GetMapping("/accounts")
public ResponseEntity<Account> validateAccount(@RequestBody AccountDTO accountDTO) {
return new ResponseEntity<>(accountService.validate(accountDTO), HttpStatus.OK);
}
}
或者你可以使用
@RestController
public class AccountController {
@GetMapping("/accounts")
public Response validateAccount(@RequestBody AccountDTO accountDTO) {
return new ResponseEntity().ok(accountService.validate(accountDTO));
}
}
用户输入将使用您正在使用的任何 JSON 处理器从 json 转换为 AccountDTO,它很可能是 com.fasterxml.jackson.core。
@JsonIgnore 和 @NotNull 注释将确保仅使用用户名和密码字段,而在接受用户输入时忽略其他字段。
您可以将此 DTO 传递给您的服务类,并在您的业务逻辑中使用 findByUsername() 之类的东西,并使用以下映射器函数或一些外部库(如 Model Mapper 或 MapStruct)返回填充的 AccountDTO。
public toAccountDTO(Account account) {
AccountDTO accountDTO = new AccountDTO();
accountDTO.setUsername(account.getUsername());
// and so on...
return accountDTO;
}
对于您的最后一个查询,将返回的 AccountDTO 对象包装在 ResponseEntity 包装器中,以便为您的有效负载提供适当的响应代码。这是 ResponseEntity Java 文档的链接。
推荐阅读
- r - R中基本数据类型的最小/最大值是多少?
- python-3.x - Deep Q learning-Training问题
- swift - 使用 Animoji/Memoji 作为头像
- python - python - 如何将从txt文件读取的代理对转换回python 3中的表情符号?
- android - 从字符串列表填充 Android 中的 Spinner
- kotlin - 如何从活动中打开片段?
- python - 没有\n,有没有方便的方法来读取行?
- javascript - Reactjs历史推送在抽屉组件中不起作用
- c# - 使用 ASP.NET 核心添加新的持久性 cookie
- jquery - 带有 Twitter API 的 jquery $.post 有效,但回调函数不返回数据