Rest API возвращает вывод в разных форматах - PullRequest
0 голосов
/ 31 января 2019

У меня есть API Rest, который возвращает список emailIds с учетом списка customerIds - "/ v1 / Customers / IDS"

Мне нужна новая конечная точка, которая возвращает Map of customerId-> EMAILID.Поскольку мой ресурс один и тот же, я хочу назвать ту же конечную точку "v1 / Customers / Ids"

Я хочу, чтобы API был Restful.

Iследуя этой статье, создайте пользовательский тип мультимедиа - https://www.baeldung.com/spring-rest-custom-media-type

@RequestMapping(value = "/ids",
                method = RequestMethod.POST,
                consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.OK)
public List<String> getEmailIdsByCustomerIds(@RequestBody List<String> customerIds) {

        return customerService.getEmailIdsByCustomerIds(customerIds);
}

@RequestMapping(value = "/ids",
                method = RequestMethod.POST,
                produces = "application/custIdToEmailId+json")
@ResponseStatus(HttpStatus.OK)
public Map<String, String> getCustomerIdToEmailIdMapByCustomerIds(@RequestBody List<String> customerIds) {

        return customerService.getCustomerIdToEmailIdMapByCustomerIds(customerIds);
}

Когда я нажимаю на эту конечную точку с помощью Почтальона, я получаю - 415 Исключение неподдерживаемого типа мультимедиа

1 Ответ

0 голосов
/ 31 января 2019
    @RequestMapping(value = "/ids",
                method = RequestMethod.GET,
                produces = "application/custIdToEmailId+json")
@ResponseStatus(HttpStatus.OK)
public Map<String, String> getCustomerIdToEmailIdMapByCustomerIds(@RequestBody List<String> customerIds) {

        return customerService.getCustomerIdToEmailIdMapByCustomerIds(customerIds);
}

Я не уверен. Но попробуйте использовать GET для одного из API

...