API Django RESTful - django-piston против django-tastypie
Мы ищем общее решение API RESTful для нашего проекта Django. Сначала мы будем использовать API для вызовов Ajax на веб-сайте, а затем для мобильных приложений, внешних приложений и т.д.
Я нашел два модуля, которые, как представляется, широко используются. django-piston и django-tastypie
Из того, что я читаю, поршень кажется старше и, следовательно, более зрелым, но, может быть, немного устаревшим?!
Хотя tastypie является относительно новым и красиво документированным.
С чем лучше всего поехать? django-piston или django-tastypie?
Важно для нас (заказывается по приоритету): Непрерывное обслуживание источника, документация, стабильность, простота использования.
EDIT (2013 Jul 16):
Теперь через год у нас есть явный победитель. Сначала мы пошли с tastypie. Который нам понравился. Но через полгода мы переключились на предстоящий django-rest-framework и никогда не оглядывались назад.
Что нам больше всего нравится:
Мы полагаемся на API, поэтому поддержка (в будущем) является одной из наших основных проблем. Мы встретили сопровождающего - Тома Кристи - (и в автономном режиме), и он, похоже, очень привержен проекту. Поэтому мы чувствуем себя очень комфортно, используя django-rest-framework.
Ответы
Ответ 1
Хорошим ресурсом для их сравнения является http://www.djangopackages.com/grids/g/api/
Django-tastypie уверен, что сейчас выбор сохраняется.
Лично я защищал бы взгляд на django-rest-framework, если вы используете django 1.3, потому что он использует новые представления, основанные на классе. Страница сравнения djangopackages.com показывает, что она имеет хорошее участие и активность. И, вау, он уверен в хорошем просматриваемом интерфейсе API.
Ответ 2
У меня нет опыта с этим, но я доверяю Pydanny в этом:
django-piston почти не поддерживался почти два года. То есть вечность, а количество вилок для решения нескольких проблем - это вызывают тревогу. Из-за этого в этом месте в это время я рекомендуем django-tastypie. Это актуально, очень хорошо документация, поддерживает OAUTH и заняла второе место в Django Пакеты thunderdome (он получил почти 3 раза больше очков!). Еще один инструмент для рассмотрения является Django Rest Framework, которая так же хороша, как и django-tastypie, но не имеет поддержки OAUTH.
На фронте джанго-поршня Джошуа Гинсберг взял на себя поводья и мы должны надеяться увидеть некоторое движение снова. В этом случае я буду в состоянии удалить этот раздел сообщения в блоге.
из Pydanny blog.
Ответ 3
Внедрение API с django Piston, tastypie и django webmachine Django tastypie rock! Сказав это, я думаю, что, хотя tastypie действительно хорош, когда ваш API моделируется рядом с вашими моделями, немного сложнее сделать что-то, как только вы захотите выйти из коробки. Существуют временные решения для некоторых issues, а другим вы должны делать больше изгибов, чем строить. Вероятно, он будет покрывать 90% случаев использования джанго.
Afaik Webmachine была смоделирована после популярной веб-машины erlang, но в последнее время она не очень активна. Так что листья поршня, который подхватывает некоторую активность, и tastypie, который имеет большой импульс и активность. Поршень немного более гибкий, но tastypie движется очень быстро и, на мой взгляд, имеет очень простой API.
Моя рекомендация заключалась в том, чтобы быстро реализовать прототип API в tastypie и посмотреть, покрывает ли он то, что вы хотите сделать.
Ответ 4
Django REST framework 2.0 был анонсирован в октябре 2012 г. и теперь поддерживает OAuth из коробки. Мне действительно нравится Web browseable API, что очень полезно при разработке вашего API, а также когда кто-то реализует ваш API. Это похоже на использование админ-сайта Django для проверки структуры и данных ваших моделей, но затем для вашего API. Кроме того, документация очень хорошая.
На своем веб-сайте:
Django REST framework - мощный и гибкий инструментарий, который делает его легко создавать веб-интерфейсы API.
Некоторые причины, по которым вы можете использовать структуру REST:
- API для веб-поиска - это огромная победа в использовании для ваших разработчиков.
- Политики аутентификации, включая OAuth1a и OAuth2, из коробки.
- Сериализация, которая поддерживает источники данных ORM и non-ORM.
- Настраивается полностью вниз - просто используйте регулярные представления на основе функций, если вам не нужны более мощные функции.
- Расширенная документация и отличная поддержка сообщества.
Ознакомьтесь с их Quickstart, чтобы получить краткое представление о том, как это работает.