Я пытаюсь правильно понять REST, и некоторые ответы здесь мне очень помогают. Однако я все еще не понимаю аспект полностью. В этом ответе указано, что:
взаимодействие между клиентом и приложением REST должно быть точно таким же, как человек, просматривающий веб-сайт. Возьмем, к примеру, сам переполнение стека. Есть пользователи, вопросы и ответы. Если вы хотите просмотреть список своих вопросов, вы не go заходите на веб-сайт документации, получаете шаблон URI для перечисления ваших вопросов, заполняете местозаполнитель своим идентификатором пользователя и вставляете его в свой браузер. Вы просто нажимаете на ссылку на другой документ, описанный как список вопросов, и вам даже не важно, какой именно URI. Вот что HATEOAS означает на практике.
Но я действительно не могу понять, что это означает на практике без примеров. Что мне больше всего неясно: должен ли ВСЕ API для веб-сайта иметь только одну точку входа, которая отличает способ его использования, скажем, от объекта JSON, который он дал / вернул? Разве это не очень неоптимально и трудно автоматизировать без документации? Я имею в виду, будь то в JSON или в URL, мне все еще нужно знать, что дать серверу и в какой форме, если я хочу написать код, работающий с сервером.
Или это просто означает, что сервер должен предоставить некоторые URL для API, но не включать информацию в сам URL, а в полезную нагрузку JSON? эти Twitter API будут считаться плохим примером REST, потому что они включают :id
в URL, но они были бы хорошими, если бы идентификатор был в JSON?