Ваш оригинальный интерфейс также может хорошо работать как интерфейс REST.
Есть две большие проблемы, которые вам нужно преодолеть.
1) Во многих графических интерфейсах есть компонент рабочего процесса, построенный на основе требований к интерфейсу. Например, большая форма представлена в виде нескольких страниц. Это в первую очередь сделано для пользователей-людей, так как большинство компьютеров на самом деле не заботятся.
2) Современные браузеры не поддерживают все глаголы HTTP (PUT, DELETE и т. Д.).
Первый может быть отменен, потому что рабочий процесс может быть простым представлением, с целью, чтобы они правильно вызвали последний вызов REST. Возвращаясь к примеру с многостраничной формой, на последней странице формы вы можете встроить все остальные страницы, например, в скрытые поля. Итак, окончательный POST - это просто все необходимые данные, как это делал бы компьютер вначале.
Второй может быть обработан с использованием простого прокси. В частности, если вы хотите выполнить, скажем, DELETE, вы можете передать глагол своему прокси-серверу, который обрабатывает POST и глагол = DELETE так же, как и DELETE. Просто убедитесь, что ваш сервер поддерживает оба одинаково. Или вы можете использовать Ajax на своих страницах, чтобы совершать правильные звонки.
Хотя интерфейс, представленный через графический интерфейс пользователя, может не быть «REST» на педантичном уровне, базовая система работает, по крайней мере, на уровне протокола, поскольку все это соответствует основным ограничениям архитектуры.
Еще одна вещь, которую вы можете сделать, это принять формы, закодированные URL, в качестве входных данных, но вернуть XML в качестве выходных данных. Ключевым моментом здесь является то, что вы можете отправить вместе с XML таблицу стилей XSLT. Таким образом, когда он отображается в браузере, вы получаете полный код HTML с графикой, кнопками и всем остальным. Если вы вызываете его через универсальный клиент, вы получаете чистый XML без всяких «излишеств».
Вы можете встретиться на полпути, используя XHTML и микроформаты. Полезная нагрузка не будет значительно больше полезной нагрузки, связанной с чистым XML, но все же это нормально, каждый день XHTML с удовольствием от CSS для рендеринга в браузерах.