Внедрение серверов отдыха с Django для JsonRestStore Dojo - Какие инструменты для работы? - PullRequest
3 голосов
/ 22 апреля 2011

Я пишу несколько спокойных серверных ресурсов, которые общаются с JsonRestStore (JRS) dojo на стороне клиента:

http://dojotoolkit.org/reference-guide/dojox/data/JsonRestStore.html

Я заметил, что есть несколько проектов, которые я мог бы использовать для создания расслабляющих ресурсов (то есть для демонстрации простых операций CRUD на моделях Django):

http://code.google.com/p/django-rest-interface/

и

http://django -rest-framework.org /

Я уверен, что мог бы написать спокойный серверный интерфейс для JRS Dojo с нуля, но я не хочу изобретать какие-либо колеса, поэтому мои вопросы:

В чем разница между вышеуказанными проектами?

Поможет ли мне в достижении поставленной цели?

Есть ли другие проекты, на которые я мог бы посмотреть для этой задачи?

Обратите внимание, что есть некоторые конкретные детали того, как JRS делает запросы и ожидает ответы, которые мне нужно будет реализовать. Вот пара (неполных) примеров, чтобы вы знали, о чем я говорю. Создание: ответьте со статусом 201 и заголовком Location: /path/id для вновь созданного ресурса. Коллекции: проанализируйте заголовок Range: items=x-y и используйте его, чтобы разбить ответ на страницы. Ответьте заголовком Content-Range: items x-z. Сериализация моделей в JSON в виде списка словарей для коллекций или простого словаря для отдельных элементов.

Ответы [ 3 ]

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

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

Я не думаю, любой из них будет изначально поддерживать нумерацию диапазона, о которой вы упомянули, возможно, вам придется иметь дело с самим собой.

Поршень - это папа, хотя он не обслуживается банкоматом активно, это не обязательно и проблема, так как он в значительной степени делает то, что вы хотите в любом случае. Преимущества Tastypie заключаются в том, что за ним стоит большое сообщество, и оно хорошо документировано. У django-rest-framework есть браузер API в стиле администратора, множество примеров в документации и растущее сообщество. django-rest-interface - вполне приличный AFAIK, но я не знаю никаких усилий сообщества за этим банкоматом.

3 голосов
/ 18 октября 2011

Сетка Django имеет длинный список проектов REST: http://djangopackages.com/grids/g/rest/, но на самом деле в нем нет функций.Хотя какие функции ты хочешь?Это интерфейс отдыха, он должен уметь делать правильные вещи в зависимости от используемого метода HTTP и возвращать правильную сериализацию в зависимости от отправленного заголовка Accept.Все они делают это, насколько я могу судить.

Я использовал (форс-фейсбукский урок) Piston и Tastypie, пытаясь заставить их работать так, как я хочу.И я собираюсь поиграть с django-rest-framework.Вот некоторые вещи, с которыми я столкнулся:

  • Поршень в целом неплохо справляется с управлением, но у него есть несколько странных ошибок, когда он проглатывает коды состоянияиз вещей, которые я пытался бросить.(Мои взломы вокруг этого онлайн ) И никто не поддерживает его, и в основном трекере проблем много открытых ошибок .Некоторые из них, возможно, имеют исправления, а некоторые из них, вероятно, являются WONTFIX, но 139 открытых ошибок - это много для проекта, который не очень велик и, более конкретно, видел два коммита за последние 2,5 года.

    Но это работает, и достаточно хорошо, чтобы множество людей все еще использовали его.И он очень гибкий, и он достаточно мал (всего несколько файлов), что я смог довольно быстро исправить в достаточно хороших исправлениях для моих сценариев использования, после всего лишь «часов» разочарования.

  • Tastypie делает лот работы за вас.И это удивительно хорошо задокументировано.И он делает несколько вещей так, как я хочу, чтобы они были выполнены. Но , если вы посмотрите на документы, его URI-схема для связанных - и особенно вложенных - ресурсов является задом наперед, и она требует хаков ( достаточно хорошо документированных хаков,но все же), чтобы заставить их работать правильно.

    Это должно быть результатом того, сколько Tastypie делает для вас: в отличие от Piston (и django-rest-framework? Его документы, кажется, предполагают, что это будетсделайте работу за вас тоже, но я на самом деле не использовал ее) вам не нужно писать функции CRUD или схемы URL.Что, знаете, замечательно, за исключением того, что моя схема не совсем плоская, поэтому мне нужно взломать методы отправки, а также я не знаю, что ее встроенный механизм HATEOAS будет соответствовать моим сумасшедшим взломам.Он по-прежнему будет возвращать действительные URI, но будут ли они теми, которые я хочу, чтобы люди использовали?(Вероятно, есть какая-то функция, которая делает это, есть много мест для подключения к Tastypie, но я не могу найти "canonical_url" где-нибудь в методах Resource.)

Итак: поршень очень гибкий, но довольно мертвый, Tastypie не гибкий, но отличный, если у вас очень простой график, а я еще не коснулся django-rest-framework.Эти кажутся похожими на большие прямо сейчас.

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

В чем разница между вышеуказанными проектами?

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

Поможет ли мне в достижении поставленной цели?

Да.

Существуют ли другие проекты, на которые я мог бы обратить внимание для выполнения этой задачи?

Поршень.

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