Я полагаю, что вы неправильно читаете принципы REST.
REST - это архитектура, а не протокол со строгими правилами. Ключевыми моментами являются то, что он не имеет состояния и представляет базовые ресурсы, аналогичные тому, как работает сеть.
REST описывает ресурсы (datum
, в вашем случае), как вы можете получить доступ к этим ресурсам и изменить их,и как эти ресурсы должны описывать, какие другие ресурсы могут быть доступны относительно этого ресурса. Это похоже на работу веб-браузера: каждая страница имеет уникальный URI, и страница может содержать данные (поля datum
) и ссылки на другие страницы, на которые вы можете перейти с этой страницы.
Так что вВ вашем случае поля datum
аналогичны содержимому веб-страницы. Если у вас есть другие ресурсы, доступные из datum
, вы должны предоставить их как URI для вызывающей стороны, и вызывающая сторона может следовать за ними. Это не означает, что вы должны отказаться от безопасности типов и иметь дело со всеми видами данных. Опять же, это не протокол. Если представленная информация не в ожидаемом формате, вы должны вернуть ошибку. Поскольку ваш формат связи - JSON, ваши типы данных ограничены строкой, числом и логическим значением. Вы ожидаете целое число для идентификатора, и если клиент отправляет вам строку (даже если это что-то вроде «123»), это ошибка. Используйте первую структуру, если при демаршировании ввода возвращается ошибка, верните ее вызывающей стороне.