java如何在基于spring的REST API中将路径参数映射到gRPC对象?
我的REST API必须使用gRPC对象作为输入参数
最简单的例子是:
GET http://localhost:8083/api/books?page.number=1&page.size=30
其中原型定义为:
message PagedMessage {
Page page = 1;
}
message Page {
int32 number = 1;
int32 size = 2;
}
控制器是:
@RequestMapping(value = "/api/books")
public class ObjectOps {
@Autowired
private BooksService booksService;
@GetMapping(value = "/")
@ResponseBody
BooksList listBooks(@RequestParam PagedMessage request) {
return booksService.getBooks(request);
}
}
在应用程序中,我有this bean:
@Bean
ProtobufJsonFormatHttpMessageConverter protobufJsonFormatHttpMessageConverter() {
return new ProtobufJsonFormatHttpMessageConverter();
}
它对我有效的唯一方法是将分页信息作为GET body传递:
{
"page" : {
"number": 1,
"size": 30
}
}
但是,从请求路径参数中填充list books方法对象将非常好
# 1 楼答案
我认为您可以删除
@RequestParam
注释,Spring将填充该对象。 此答案引用:https://stackoverflow.com/a/16942352/8075423