Некоторые сомнения по поводу веб-сервисов RESTful? - PullRequest
2 голосов
/ 19 апреля 2011

Я новичок в сфере услуг RESTful. Я просматривал статьи о REST. И у меня много сомнений. Пожалуйста, помогите мне прояснить эти сомнения. Заранее спасибо.

1) Для всех веб-сервисов RESTful будет WSDL / WADL для описания сервиса? Обязательно ли иметь описание услуги? Если нет описания, как я могу узнать данные и их структуру, которые я должен отправить по HTTPRequest?

Я читал как, содержимое запроса может быть любого типа (XML, JSON, YAML и т. Д.). И нет никаких ограничений для типа контента, который может быть отправлен с запросом. Без описания, как я могу узнать тип данных, которые я должен отправить?

2) Просматривая статьи, у меня сложилось впечатление, что сервисы RESTful используются в основном для сервисов типа CRUD. Разные глаголы HTTP для разных операций. Но если вы берете веб-сервисы, он может выполнять все виды операций. Например, добавление 2 чисел не совсем операция CRUD. Если я использую GET / POST для ресурса, который может выполнять эти операции для меня, то будет ли это нарушением принципов REST?

3) Если вы можете указать мне на какие-либо общедоступные веб-сервисы RESTful, которые можно использовать для тестирования, я мог бы попытаться использовать сервис и понять, насколько сложными могут быть сервисы.

Заранее спасибо,
Пол

Ответы [ 3 ]

4 голосов
/ 19 апреля 2011

Обычно нет машиночитаемого описания сервиса.Как правило, вы знаете, что отправить, прочитав документацию по сервису.

REST не ограничивается CRUD, а методы PUT/GET/POST/DELETE являются , а не , обязательно такими же, как create / retrieve / update / delete Сервисы на основе REST могут делать все, что могут делать веб-сервисы на основе SOAP.Отправка запроса GET на URI, например http://example.com/add?3,5, совершенно РЕСТОРАННА.

Список услуг REST можно найти на http://www.programmableweb.com/apis/directory/1?protocol=REST.

1 голос
/ 19 апреля 2011

Ответ на свой первый вопрос:

WSDL / WADL не является обязательным для остальных веб-сервисов. Кроме того, HTTP-привязка WSDL 1.1 была недостаточной для описания полноценного веб-сервиса.

Однако WSDL 2.0 можно использовать для его описания. Веб-сервис Restful следует использовать, когда клиент и поставщик имеют взаимопонимание по контракту.

Посмотрите на: http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/

Во-вторых: Да, вы можете выполнить почти все, используя грубые операции. Как указано в предыдущем ответе http://example.com/add?3,5. является допустимым.

0 голосов
/ 19 апреля 2011
  1. Нет файлов WSDL / WADL.Вы получаете протокол HTTP (например, GET, POST, UPDATE, DELETE) и все остальное зависит от вас.Обязательно документируйте ожидаемые входные и выходные данные соответствующим образом.
  2. Нет, веб-службы RESTful не ограничены CRUD.Для вашей службы добавления я бы реализовал ее как ресурс "сумматора", который будет принимать в качестве входных данных 2 числа для добавления.Вы можете использовать эти входные данные как часть пути URL (http://yourdomain.com/adder/1/2) или в параметрах строки запроса (http://yourdomain.com/adder?var1=2&var2=2)) или как входные данные из HTTP POST. До вас.
...