Что такое веб-сервисы RESTful? - PullRequest
8 голосов
/ 13 декабря 2011

Я пытался прочитать о том, что RESTful веб-сервисы из Википедии и т. Д., Но я должен признать, что я не понимаю.Есть фильм, в котором Дензел Вашингтон говорит «объясни мне, как будто мне 5 лет».Может ли кто-нибудь сделать это для меня в отношении услуг RESTful?

Бонусные баллы, если вы знаете название фильма.

Ответы [ 2 ]

22 голосов
/ 13 декабря 2011

Когда я впервые начал работать с REST, у меня тоже были некоторые трудности с получением "большой картины", несмотря на всю имеющуюся там документацию.В любом случае, вот мой краткий обзор REST:

  • REST - это архитектурный стиль для создания веб-сервисов.

  • REST построен на основе HTTP,Ваш веб-сервис предоставляет Ресурсы в форме URI.Ваш сервис позволяет клиентам воздействовать на ваш сервис, используя стандартные глаголы HTTP (GET = прочитать ресурс, POST = создать ресурс, PUT = обновить ресурс, DELETE = удалить ресурс).

  • REST за последние несколько лет значительно расширился благодаря (а) своей простоте по сравнению с другими стилями, такими как SOAP.(б) повсеместность HTTP.Поскольку HTTP является проверенным временем стандартом, большинство языков имеют встроенную или стороннюю поддержку HTTP.Вы не можете сказать то же самое о SOAP.

  • Поскольку REST - это стиль, а не строгий протокол / спецификация, существует много возможностей для интерпретации.Многие государственные службы, которые называют себя «ОТДЫХОМ», не следуют стилю письма.

4 голосов
/ 13 декабря 2011

RESTful-сервисы - это сервисы, которые передают состояние репрезентативно, отсюда и название REpresentational State Transfer. * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1005

REST отличается от SOAP тем, что это не протокол, и нет формальной спецификации. SOAP был создан для упрощения передачи данных между приложениями с использованием общего интерфейса для удаленного доступа к функциям. К сожалению, для общей работы SOAP достаточно сложен, и выполнение запросов SOAP не очень прямолинейно, требует анализа и генерации XML.

Вместо этого REST полагается на протокол передачи гипертекста (HTTP) для выполнения тяжелой работы. Веб-серверы и серверные сценарии уже построены вокруг работы в HTTP. Сделать запрос с помощью REST так же просто, как запрос URL, например, посетить веб-страницу. API для службы RESTful может повторно использовать любой из методов HTTP и кодов состояния , чтобы сигнализировать о любых ошибках. Вместо доступа к данным, хранящимся в базе данных, с помощью необычных запросов и специального кода, службы RESTful предоставляют доступ, который больше похож на стандартную файловую систему.

Ключевой частью сервисов RESTful является декларативность. Скорее всего, запрос к GET /widgets/109340 даст вам данные для виджета с идентификатором 109340. Я говорю «вероятно», потому что нет гарантии. Это зависит от разработчика. Дело в том, что вы можете взглянуть на запрос REST и узнать, что вы ожидаете получить. С SOAP гораздо сложнее определить, есть ли у вас синтаксическая ошибка.

Если /widgets/109340 не существует, вместо передачи тела сообщения с некоторым конкретным значением, указывающим, что контент существует, сервер может вернуть код 404 Not Found, и пользователь будет знать, что конкретный идентификатор не существует Если возвращается 403, пользователь будет знать, что элемент существует, но у него нет прав доступа к нему. Эти коды ответов на запросы уже поддерживаются программами, которые отправляют URL-запросы, поскольку они являются общими для всех серверов. Это делает запросы REST намного более устойчивыми.

REST также гибок в формате вывода, /widgets/109340 может возвращать объект JSON, но нет никаких причин, по которым он не может возвращать двоичные данные, HTML, XML, SVG, видео или любой другой формат данных. CDN может использовать API REST для обслуживания версионного контента, который может храниться или не храниться в файловой системе: GET /jQuery/1.0.0, GET /jQuery/1.7.1 и GET /jQuery/latest - все запросы RESTful.

Я предполагаю, что вы понимаете, что Простой протокол доступа к объектам (SOAP) равен

...