2015-07-14 7 views
0

У меня есть created some code, чтобы делать вызовы внешнему API (который я не создал). Однако он был описан как «Сервисно-ориентированный», в то время как API REST - «Ресурсно-ориентированный».REST Resource vs Services

Что именно нужно изменить, чтобы превратить это в сервисный вызов? Я не понимаю, в чем разница. Я понимаю, что мне нужно использовать HTTP-глаголы, но я думал Я делал это уже с cURL. Возможно ли это с помощью cURL?

API, который был передан, содержит в качестве примера URL-адресов ресурсов;

GET http://api.privateservice.com/Person?ID=123

POST http://api.privateservice.com/Person/SaveDetails/123

ответ

2

Думай ресурсов как существительных, т.е. объектов или записей в базе данных. Думайте о действиях как о глаголах, то есть о вызовах функций.

Первый пример действительно ресурсо-ориентированный. Это GETting ресурс типа Person, идентифицированный по 123.

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

Так загрузить JSON (или любой другой формат) с помощью:

PUT http://api.privateservice.com/Person?ID=123 

Если вы только проходя через несколько атрибутов, а не весь ресурс, есть еще один стандарт, который, PATCH:

PATCH http://api.privateservice.com/Person?ID=123 

BTW Немного чище использовать http://api.privateservice.com/people/123 в качестве URL-адреса.

+0

У меня нет контроля над самим API, просто возможность подключиться к нему. – myol