Можно ли использовать тестовый клиент Django для вызовов API в производственной среде? - PullRequest
4 голосов
/ 02 января 2011

Я создаю приложение Django с API, основанным на Piston. Ради того, чтобы все было как можно более СУХОЙ и API-интерфейс был завершен, я бы хотел, чтобы мои внутренние приложения вызывали API, а не модели (вроде прокси-контроллера вида а-ля https://github.com/raganwald/homoiconic/blob/master/2010/10/vc_without_m.md, но все на один джанго установить сейчас). Итак, базовая настройка:

Model -> API -> Application -> User Client

Я могу перегрузить некоторые базовые классы Piston для создания внутреннего клиентского интерфейса для приложения, но мне интересно, смогу ли я просто использовать Django Test Client для достижения той же цели. Таким образом, чтобы создать статью, а не вызывать модель, я бы запустил:

from django.test.client import Client
c = Client()
article = c.post('/api/articles', {
  'title' : 'My Title',
  'content' : 'My Content'
})

Есть ли причина, по которой я не должен использовать тестовый клиент для этого? (например, производительность). Есть ли лучший инструмент, более приспособленный для этой конкретной цели?

1 Ответ

7 голосов
/ 02 января 2011

После просмотра кода для TestClient, похоже, нет никаких дополнительных затрат, связанных с тестированием. Скорее он просто функционирует как основной клиент для внутренних запросов. Я буду использовать тестовый клиент в качестве внутреннего клиента и использовать DjangoEmitter от Piston для получения объектов модели из API.

Только тестирование покажет, является ли механизм внутренних запросов слишком сильным ударом по производительности.

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