Что вам нужно избегать при настройке Restful интерфейса, чтобы убедиться, что вы не превратили его в RPC?Restful web services
ответ
Do:
- Дизайн вашего приложения, чтобы быть hypertext-driven (HyperMedia как двигатель состояния приложения - HATEOAS).
- Проведите большую часть своего времени и усилий, идентифицируя ресурсы и создавая типы медиа для их представления.
- Подумайте обо всем URI в качестве идентификатора ресурса и предположите, что он изменится в будущем.
- Предоставьте все варианты дальнейшего продвижения через ваше приложение в качестве ссылок в вашем представлении.
- Подумайте о своем приложении как веб-сайте, который будет «просканирован» или «просмотрен» клиентами.
- Попробуйте написать клиент для вашего API и посмотреть, где происходит соединение.
ЗАПРЕЩАЕТСЯ:
- Публикация шаблонов URI в документации API. Если у вас должны быть шаблоны для параметров запроса, например, убедитесь, что они являются частью определения типа вашего медиа.
- Подумайте о своем приложении как о наборе URI, на котором действуют четыре глагола.
- Служат тимминге типа «application/xml» или «application/json» для клиентов.
Чтобы использовать аналогию, ваш API должен работать больше как GPS для ваших клиентов и менее похож на карту. Вы будете предоставлять клиентам только имя близлежащей улицы.Но с этого момента они могут делать только то, что ваше приложение говорит, что они могут делать в любой момент.
Целью этого стиля является минимизация связи между вашим приложением и его клиентами. Вся связь должна выполняться в определении типа вашего носителя. Это упрощает эволюцию API и обеспечивает хороший механизм для управления версиями. В нем также возникают вопросы о таких проблемах, как разбиение на страницы.
Большинство API «RESTful» не соответствуют этому образцу. Для того, что делает, см. Sun Cloud API и его backstory.
Спасибо за помощь в распространении слова в REST, точно и четко. – aehlke
Тип широкого вопроса, но я попробую. Во-первых, используйте только HTTP-глаголы, как они были предназначены. Не отправляйте POST на URL с аргументом url, который в основном переопределяет POST и превращает его в GET или DELETE. Так работает SOAP (все это POST).
Это просто правильное использование HTTP - doesn Я не имею никакого отношения к REST. – aehlke
Воспользуйтесь базовым протоколом, где это возможно. Вместо того, чтобы иметь глаголы в вашей полезной нагрузке, попробуйте использовать (например) методы HTTP GET, POST, PUT, DELETE. Ваш URI должен описывать ресурс, но не то, что с ним делать.
Это НИЧЕГО не имеет отношения к ОТДЫХУ! Это просто HTTP. – aehlke
Я просто предоставил HTTP в качестве примера (поскольку это, вероятно, самый распространенный протокол в этой ситуации), чтобы усилить, что URI должны быть глагольными. –
Некоторые из вещей, которые вы хотите, чтобы избежать являются:
- Игнорирование кэширование
- Tunneling все через GET (или в качестве альтернативы POST)
- Игнорирование типы MIME
Там хорошая статья здесь, что говорит о некоторых из REST анти-моделей:
В данной статье подробно некоторые конструктивные решения, которые отличают RPC от REST:
http://www.pluralsight.com/community/blogs/tewald/archive/2007/04/28/47067.aspx
@ С. Лотт: спасибо, я честно думал, что я писал, что в качестве ответа не комментарий. Я теряю мрамор.
- 1. restful web services eclipse
- 2. RESTful web services
- 3. RESTful Web Services или SOAP
- 4. RESTful Web Services Publishing API
- 5. ColdFusion restful web services URI
- 6. Headerparam in Restful web services
- 7. DDOS Attacks - Restful Web Services
- 8. RESTful Web Services for Flex
- 9. Joomla restful web services для действий пользователя
- 10. Предложения по RESTful Java Web Services Framework ...
- 11. Проектирование приложение, использующее 2 RESTful Web Services
- 12. Restful Web Services & Multiple Return Types
- 13. java restful web services retriving post data
- 14. Безопасность для Spring Restful Web Services
- 15. RESTful Web Services от сущностных классов
- 16. Restful Web Services generate rsdl document
- 17. Зачем нужен репозиторий RESTful Web Services?
- 18. Spring Framework RESTful services
- 19. RESTful Web Services from Database error build-impl.xml
- 20. RESTful Web Services: документирование XML для того же ресурса
- 21. RESTful web services - лучший способ вернуть результат операции?
- 22. Альтернативы AngularJS для Spring MVC 4 RESTFul Web Services
- 23. CAS authetication multiple Restful Web Services в SSO
- 24. Jmeter test Restful web services с загрузкой файлов
- 25. tcp_error for HTTP Post to Restful web Services
- 26. Применение запроса Использование маршрутизации с помощью WCF Restful web services
- 27. IntelliJ «Плагин Java EE: RESTful Web Services (JAX-RS)» недоступен
- 28. Restful Web services for Mobile App - Какой язык, инфраструктура, инфраструктура?
- 29. RESTful Web Services: имена методов, входные параметры и возвращаемые значения?
- 30. Разница между wcf restful services и WEB API
Jeff, не начинайте свое предложение с четырех пробелов - это будет означать «уценку», чтобы рассматривать его как кодовый блок (без переноса слов) и делает его действительно трудным для чтения - за исключением фактических блоков кода, курс! :-) –
http://www.pluralsight.com/community/blogs/tewald/archive/2007/04/28/47067.aspx – skaffman
@SLott ... oops .. done – skaffman