В чем разница между предложением REST API и предложением «веб-службы» с базовым API для извлечения и / или изменения данных? - PullRequest
1 голос
/ 19 августа 2011

Так что я собираюсь написать REST API для Django, используя django-поршень, но мой работодатель просто хотел иметь возможность получать и создавать данные, поэтому мне было интересно, в чем разница:* просто создать методы для установки и извлечения данных и сделать их общедоступными (конечно, с аутентификацией и проверкой на месте)

создать REST API с целью создания и получения данных?

Заранее спасибо!

Ответы [ 2 ]

6 голосов
/ 19 августа 2011

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

Так что вместо / comments / new /, / comments / delete /, / comments / update/, вы просто должны иметь / comments / и POSTing для создания, PUTING для обновления и DELETEing для удаления.

Я также согласен с Заком в TastyPie относительно его стоимости.

0 голосов
/ 19 августа 2011

Двумя ключевыми альтернативами «RESTful» могут быть традиционные html-формы или более формальный протокол RPC, реализованный поверх HTTP, например XML-RPC или SOAP.

Основным преимуществом первого является то, что он может быть вызван через веб-браузер без кода клиента вообще; но если приложение не разработано вдумчиво, зачастую довольно сложно управлять таким интерфейсом от пользовательского клиента; который часто должен устанавливать куки для аутентификации и задавать аргументы, которые ему не интересны. Для этого вида API также нет понятия типов данных, все текстовое.

Последнее имеет преимущество в том, что вы сразу же приступите к работе; Вы можете просто написать обычные функции на python с декоратором, и они доступны для клиентов, имеющих соответствующие клиентские библиотеки. Основным недостатком также является то, что для этого обычно требуется, чтобы у клиента была такая библиотека. Такие вещи, как soap или xml-rpc, обычно не подходят для приложений в браузере или для устройств с ограниченными ресурсами.

RESTful - это своего рода средний путь, который сочетает в себе множество преимуществ обоих. Поскольку семантика определяется исключительно в терминах HTTP, любой клиент, способный выдавать HTTP, может использовать RESTful API. HTTP гораздо более гибок, чем простые старые веб-формы, обычно с точки зрения предоставления Content-Type запросу или ответу, который поддерживает необходимую структуру. К сожалению, на самом деле не существует единого стандарта, определяющего, как клиенты или сервисы RESTful должны представлять свои данные, поэтому с обеих сторон необходимо немного изменить настройки, чтобы все работало наилучшим образом. Иногда гибкость означает, что вы тратите больше времени на настройку API точно так же, как если бы вы использовали другой интерфейс, но это часто приводит к более тонкой и менее утечке абстракции.

Существует несколько стандартов или стандартов де-факто, которые также являются хорошими моделями интерфейсов RESTful, таких как json-rpc и протокол публикации Atom.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...