Существуют ли проблемы при возвращении Map<> в ApiController REST сервиса?

В рабочем процессе мне сказали, что возвращение в качестве ответа веб-приложения Map<> недопустимо и нужно использовать типизированные ДТО. Кто-то может подсказать, почему это так?

public Map<String, UUID> init(String someProperty) {
    HashMap<String, UUID> response = new HashMap<>();
    response.put("propertyId", doSomething(someProperty));

    return response;
}

Ответы (1 шт):

Автор решения: the__Komar

Сложно ответить, так как зависит от задачи и бизнес требований :))

Концептуально API это контракт и гарантии что сервер вернет вот такую структуру(DTO) а клиент ее обработает. Так же Map, в вашем примере, не расширяема, то есть если нужно будет добавить какое то еще поле в value, то придется делать либо новое api -> v2 либо UUID менять на ваш объект, либо править клиента.

→ Ссылка