2012-05-07 3 views
1

Это довольно широкий вопрос, но я прошу его, потому что я считаю, что он должен отвечать (хотя бы) примерами. Это также тема, которая, как представляется, отсутствует в информации. Когда я ищу информацию об интерфейсах API для Django, таких как Tastypie или другие, я не могу найти информацию о , почему Я должен использовать ее. Они просто заявляют о своих преимуществах над другими структурами API.Когда я должен использовать API-интерфейс для Django (или другого)?

, содержащаяся в файле для GitHub состояний Tastypie в:

You need an API that is RESTful and uses HTTP well. 

Do I? Может ли кто-нибудь убедить меня в этом? Точно так же, почему я должен использовать API-интерфейс? Должен ли я разрабатывать свои веб-приложения для использования указанных фреймворков? Какие варианты использования для них?

Пожалуйста, несите меня в объеме вопроса. Я сделал кучу чтения о самом REST, но опять же, я не могу найти мало о правильной практике при разработке веб-приложений для использования API RESTful или API вообще.

Спасибо,

ParagonRG

ответ

2

Это тот вопрос, где в идеале это должно быть само за себя, если вы действительно знаете, что вы хотите создать в первую очередь. Я не имею в виду это в сжатом виде, а просто говорю, что если ваша цель дизайна понятна, тогда вы должны знать, когда ценная инфраструктура API. Вы неверно истолковываете заявление из tastypie docs: «Вам нужен API, который RESTful и хорошо использует HTTP». Если вы видите, это часть раздела «Почему Tastypie». То, что он говорит, это то, что вам нужно tastypie, если вы ищете, это RESTful API, который хорошо использует HTTP. Они не говорят вам, что вы действительно нуждаетесь в этом. Только это рекомендуемое решение для тех, кто имеет эти потребности.

С общей точки зрения, позволяет предположить, что вы хотите создать API для своего проекта django. Существуют различные способы разработки вашего API, но очень хорошо принят формат REST. Это шаблон, который делает URL-адреса очень понятными и предсказуемыми с точки зрения чтения, обновления, создания и удаления. Теперь давайте предположим, что вы хотите создать свой API с помощью этого популярного и хорошо принятого шаблона REST ...

При создании API существует определенная функциональность, которая является довольно распространенной и почти исчерпывающей. Вам придется запрашивать модели в проекте django и возвращать полные или подмножества полей или даже пользовательский формат этих данных. Именно здесь мы начинаем пользоваться преимуществами рамки API ...

Позвольте мне задать вам этот вопрос ... Не хотите ли вы закодировать все с нуля, если бы существовала структура, которая обладала надежным набором функций, охватывающих наиболее распространенные потребности API? Это почти такая же ситуация, как и то, почему вы решили использовать django вместо кодирования собственного веб-сайта.

Есть два очень популярная рамка API для Джанго: tastypie & piston
Они оба предлагают аналогичные функции, которые вы получите и работают довольно быстро. Вы можете создать класс обработчика, который отображает право на модель и по умолчанию дает вам полный доступ к CRUD по нескольким форматам (json, yaml и т. Д.). Обе структуры предполагают, что вы хотите, как правило, привязывать обработчик вокруг модели django, хотя вы не ограничены этим.

Аутентификация: фреймворк обрабатывает его для вас почти так же просто, как создание экземпляра типа, который вы хотите использовать, и назначить его обработчику.

Форматы: (упомянутые выше) Ваш APIs может автоматически обрабатывать различные форматы данных, такие как JSON, YAML, XML и т.д.

Суть заключается в том, что рамки там, чтобы удалить утомительную задачу постоянно повторять эту функциональность. Вся тяжелая работа выполнена. Вам просто нужно закодировать свои конкретные функции обработки и сопоставить их с URL-адресами. Готов идти.

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

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

+0

Я ценю длительный отклик. В какой-то степени я думаю, что у меня возникают проблемы с правильными вопросами. Я действительно что-то вроде следующего: какие варианты использования существуют для веб-API? Когда я должен разрабатывать свои веб-приложения, чтобы использовать их? Это может быть трудно найти ответы на такие общие вопросы в Интернете. Вопрос, связанный с каркасом, действительно был второстепенным. Из-за недостатка знаний о том, какие вопросы задавать, это вышло в качестве основного вопроса. Возможно, мне просто нужно поговорить о теме. – Paragon

+0

@Paragon: Это еще более короткий ответ, если вы хотите сделать его более общим вопросом. Если фреймворк или приложение уже имеют базовую функцию, которая экономит ваше время, то используйте ее. Его ничем не отличается от любой библиотеки или модуля. Люди пишут библиотеки, чтобы избавить вас от необходимости изобретать колесо каждый раз. Если вы спрашиваете, когда нужно создать веб-приложение api для собственного приложения ... Если вы хотите открыть сторонний доступ или создать собственный api для мобильного компонента. – jdi

+0

Да, я понял. Опять же, спасибо за долгий ответ. Я ложился спать, думая об этом, и в некотором роде как глупо вопрос, и понял это. Это также помогло, пройдя учебник Tastypie, чтобы посмотреть, что он на самом деле делает. Благодаря! – Paragon

Смежные вопросы