Список возврата из Spring rest api

Я хочу вернуть список из Spring rest api:

@GetMapping("merchant_country")
    public ResponseEntity<?> getMerchantCountry() {
        return ok(Contracts.getSerialversionuid());
    }

Я хочу получить контент отсюда:

private Map<String, Object> getCountryNameCodeList() {

        String[] countryCodes = Locale.getISOCountries();
        Map<String, Object> list = new HashMap<>();

        for (String countryCode : countryCodes) {

            Locale obj = new Locale("", countryCode);

            list.put(obj.getDisplayCountry().toString(), obj.getCountry());
        }

        return list;
    }

Как я могу отобразить результат?

вы хотите вернуть карту или список? нет связи между двумя методами?

Deadpool 16.12.2018 17:46

хорошо, как я могу вернуть getCountryNameCodeList в виде карты, когда я вызываю GET merchant_country из кода angular?

Peter Penzov 16.12.2018 17:50

Не могли бы вы тогда просто установить список как значение карты?

wdc 16.12.2018 17:52

это хорошее место для начала spring.io/guides/tutorials/rest @PeterPenzov

Deadpool 16.12.2018 18:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
7 674
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используйте ResponseEntity, когда вам нужен больший контроль над ответом HTTP (например, установка заголовков HTTP, предоставление другого кода состояния).

В других случаях вы можете просто вернуть POJO (или коллекцию), а Spring сделает все остальное за вас.

class Controller {

    @Autowired
    private Service service;

    @GetMapping("merchant_country")
    public Map<String, Object> getMerchantCountry() {
        return service.getCountryNameCodeList();
    }

}

class Service {

    public Map<String, Object> getCountryNameCodeList() { ... }

}

Locate#getCountry возвращает String, поэтому это может быть Map<String, String>.

Надеюсь, это поможет, вам нужно создать ResponseEntity, как предложил Эндрю.

class controller{
@Autowired
    private Service service;
@GetMapping("merchant_country")
    public ResponseEntity<?> getMerchantCountry() {
        return service.getCountryNameCodeList();
    }`enter code here`
}
class service
{
private ResponseEntity<Map<String, Object>> getCountryNameCodeList() {

        String[] countryCodes = Locale.getISOCountries();
        Map<String, Object> list = new HashMap<>();

        for (String countryCode : countryCodes) {

            Locale obj = new Locale("", countryCode);

            list.put(obj.getDisplayCountry().toString(), obj.getCountry());
        }

        return new ResponseEntity<>(list, HttpStatus.OK);
    }

Другие вопросы по теме