Джанго и RESTful API-интерфейсы


Я боролся с выбором методологии для создания RESTful API с Django. Ни один из подходов, которые я пробовал, не кажется "серебряной" пулей. WAPI от http://fi.am вероятно, ближе всего к тому, что я хотел бы выполнить, однако я не уверен, что в истинном RESTful API допустимо иметь параметры, которые являются идентификаторами ресурсов, в строке запроса, а не в "чистом" формате URL. Любые предложения по изменению Wapis RestBinding.Шаблон для "очистить" URL-адреса? Другой вариант, который я исследовал, - это Django-Rest-интерфейс. Однако эта структура, похоже, нарушает одну из самых важных частей, которые мне нужны, и это должно включать полный URL-адрес ресурса для ссылок на другие ресурсы (см. http://jacobian.org/writing/rest-worst-practices/ неправильное использование ссылок). Последний вариант-использовать django-multiresponse и в основном делать это долго.

пожалуйста, предложите мне свой лучший совет, особенно люди, которые имели дело с этим решением.

8 58

8 ответов:

для Django, помимо tastypie и piston, django-rest-framework является перспективным, о котором стоит упомянуть. Я уже перенес один из моих проектов на него гладко.

Django REST framework-это легкая структура отдыха для Django, которая стремится сделать его легко построить хорошо связанные, самоописания RESTful Веб-API.

пример:

from django.conf.urls.defaults import patterns, url
from djangorestframework.resources import ModelResource
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
from myapp.models import MyModel

class MyResource(ModelResource):
    model = MyModel

urlpatterns = patterns('',
    url(r'^$', ListOrCreateModelView.as_view(resource=MyResource)),
    url(r'^(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MyResource)),
)

возьмите пример с официального сайта, Все вышеуказанные коды предоставляют api, self объясненная документация (например, веб-сервис на основе soap) и даже песочница для тестирования. Очень удобно.

ссылки: http://django-rest-framework.org/

Я считаю, что недавно выпущенный django-piston теперь является лучшим решением для создания правильного интерфейса REST в Django. Джанго-поршень

Примечание: django-поршень, кажется, больше не поддерживается (см. комментарии ниже)

django-tastypie это хороший способ сделать это, их лозунг: "создание вкусных API для приложений Django с 2010 года" довольно утешительно;)

вы могли бы взглянуть на django-dynamicresponse, который представляет собой легкий фреймворк для добавления REST API с JSON в ваши приложения Django.

Это требует минимальных изменений, чтобы добавить поддержку API для существующих приложений Django, и делает его прямо вперед, чтобы построить в API с самого начала в новых проектах.

в основном, он включает в себя поддержку промежуточного программного обеспечения для разбора JSON в запрос.Пост, кроме того, чтобы сериализовать в JSON возвращается связи или оказания шаблон / перенаправление условно на основе типа запроса.

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

Я не знаю, Может ли этот проект быть полезен для вас, но отправка ссылки вряд ли повредит. Взгляните на django-apibuilder, доступный из http://opensource.washingtontimes.com/projects/django-apibuilder/ . Может быть, это может быть полезно?

/ Jesper

взгляните на это RestifyDjango.

несколько связаны Джанго XML-RPC и JSON-RPC.

https://github.com/RueLaLa/savory-pie

Пикантный пирог-это структура отдыха, которая поддерживает django.

Я бы предложил вам заглянуть в Django Rest Framework (DRF), поиграть с этим и посмотреть, соответствует ли он вашим требованиям. Причина, по которой я рекомендую DRF, заключается в том, что он делает представление API очень простым с использованием классов GenericAPIView, классов Mixin и смешанных в общих представлениях. Вы можете легко использовать проверенные и проверенные шаблоны проектирования для создания конечных точек API, а также для обеспечения аккуратности и краткости базы кода. Вы также сухой при написании кода, который всегда велик. Ваши представления API буквально 2-3 строки длиной.

вы можете проверить этот учебник http://programmathics.com/programming/python/django-rest-framework-setup/ это начинается с настройки вашей среды, чтобы пройти через различные способы сделать ваш RESTful API с помощью Django Rest framework.

отказ от ответственности: я создатель этого сайта.