Как сопоставить параметры пути к объекту gRPC в REST API на основе Spring? - PullRequest
0 голосов
/ 08 февраля 2019

Мой 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);
   }
}

И в приложении у меня есть этот компонент :

@Bean
ProtobufJsonFormatHttpMessageConverter protobufJsonFormatHttpMessageConverter() {
      return new ProtobufJsonFormatHttpMessageConverter();
}

Единственный способ, которым он работал для меня, - передать информацию о подкачке в виде тела GET:

{ 
   "page" : {
      "number": 1,
      "size": 30
   }
}

, но было бы здорово, чтобы объект метода списка книг заполнялся из пути запросапараметры.

1 Ответ

0 голосов
/ 08 февраля 2019

Я думаю, что вы можете просто удалить аннотацию @RequestParam, и Spring заполнит объект.Ссылка на этот ответ: https://stackoverflow.com/a/16942352/8075423

...