Django и Restful API - PullRequest
       27

Django и Restful API

58 голосов
/ 18 марта 2009

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

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

Ответы [ 8 ]

41 голосов
/ 14 марта 2012

Для Django, помимо вкусного пирога и поршня, django-rest-framework - многообещающая вещь, о которой стоит упомянуть. Я уже без проблем перенес один из своих проектов.

Django REST framework - это облегченная REST-инфраструктура для 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, документацию с самообъяснением (например, веб-сервис на основе мыла) и даже песочницу для тестирования. Очень удобно.

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

18 голосов
/ 01 мая 2009

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

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

9 голосов
/ 01 марта 2012

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

5 голосов
/ 21 октября 2010

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

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

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

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

4 голосов
/ 30 марта 2009

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

/ Jesper

0 голосов
/ 30 марта 2017

Я бы посоветовал вам изучить Django Rest Framework (DRF), поэкспериментировать с этим и посмотреть, соответствует ли он вашим требованиям. Причина, по которой я рекомендую DRF, заключается в том, что она делает процесс просмотра API-интерфейса действительно простым с использованием классов GenericAPIView, Mixin Classes и Mixed in Generic. Вы можете легко использовать проверенные и протестированные шаблоны проектирования для создания конечных точек API, а также для поддержания аккуратной и лаконичной базы кода. Вы также СУШИТЕ, когда пишете свой код, который всегда великолепен. Ваши представления API в буквальном смысле составляют 2-3 строки.

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

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

0 голосов
/ 22 июля 2014

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

Savory Pie - это REST-фреймворк, поддерживающий django.

0 голосов
/ 20 марта 2009

Посмотрите на это RestifyDjango .

В некоторой степени связаны Django XML-RPC и JSON-RPC .

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