我是非常新的休息api概念。我正在尝试实现一个可以接收post方法的简单方法。问题是请求命中方法但是没有将数据绑定到POJO类。 这是我的代码。
@RestController
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@ResponseBody
@RequestMapping(value = "/", method = RequestMethod.POST)
public CompileRequest home(@ModelAttribute CompileRequest compileRequest) {
logger.info("user name : {}", compileRequest.getUserName()); // null
logger.info("input file path : {}", compileRequest.getInputFilePath()); //null
return compileRequest;
}
}
我没有使用@RequestBody,因为它给了我415 http错误。 这是我的POJO课程。
@Data // use lombok for getter and setter.
public class CompileRequest {
private String userName;
private String inputFilePath;
}
userName
和inputFilePath
字段仍为null
。我不明白为什么数据绑定不起作用。我该如何解决这个问题?
谢谢。
答案 0 :(得分:3)
使用以下退货。由于您需要休息响应,它还为您提供了发送正确状态代码的选项
public ResponseEntity<?> home(@RequestBody CompileRequest compileRequest) {
return return ResponseEntity.ok(compileRequest);
}
在CompileRequest
类
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@AllArgsConstructor(access = AccessLevel.PUBLIC)
如果您还没有
,还要添加以下依赖项 <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson}</version>
</dependency>
最后以Json
发送数据{
"userName" : "name",
"inputFilePath": "path"
}