Каков элегантный способ создания URL-адресов доступа к приложениям для существующего веб-приложения? - PullRequest
1 голос
/ 12 июля 2010

Мне поручили создать приложение RESTful Android для существующего веб-сервиса, созданного с использованием Django.

Моя текущая идея заключается в том, чтобы приложение Android получало версию данных в формате JSON, котораяобычно отправляются в шаблон Django на каждом URL.Таким образом, мой взгляд будет выглядеть так:

#The site stores and organizes user's medical experiences by allowing search of 
# what treatments have been effective for a particular condition
treatment_for_condition = {'treatment' : treatment, 'condition' : condition}
if send_as_json :
     return HttpResponse(json.dumps(treatment_for_condition),mimetype='application/json')
else:
     t = loader.get_template('results.html')
     return HttpResponse(t.render(treatment_for_condition))

Есть ли элегантный способ установить переменную "send_as_json"?Я рассматриваю две следующие стратегии:

1) Добавление спецификатора в конец всех URL, чтобы / condition / treatment / возвращал веб-страницу, а / condition / treatment /? Json = true - возвращалJSON-объект

2) Создание субдомена json.treatmentreport.com, который установит для переменной «send_as_json» значение true, а затем отправит в то же представление, как если бы оно находилось в домене www.Можно ли элегантно реализовать любое из этих решений?Или я поступаю совершенно неправильно?

1 Ответ

2 голосов
/ 12 июля 2010

Я перечитал ваш вопрос и думаю, что вместо того, чтобы предлагать способы исправить существующую настройку, я постараюсь сначала ответить на вопрос вашего вопроса:

"Что такое элегантный способ созданияURL доступа к приложению для существующего веб-приложения? "

Проверьте django-pneon

Piston - это относительно небольшое приложение Django, которое позволяет вам создаватьинтерфейсы прикладного программирования (API) для ваших сайтов.

Имеет несколько уникальных функций:

  • Связывает с внутренними механизмами Django.
  • Поддерживает OAuth из коробки (а также Basic / Digest или пользовательский авторизация.)
  • Не требует привязки к моделям, допускает произвольные ресурсы.
  • Говорит о кораблях JSON, YAML, Python Pickle & XML (и HATEOAS.)с удобной многоразовой библиотекой в ​​Python
  • Уважает и поощряет правильное использование HTTP (коды состояния, ...)
  • Имеет встроенную (необязательную) проверку формы (через Django), регулирование, etc.
  • Поддерживает потоковую передачу с небольшим объемом памяти.
  • Защищает ваш путь.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...