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

Мне присвоили создать УСПОКОИТЕЛЬНОЕ приложение 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" переменную на истинный, затем отправьте тому же представлению, как будто это было в www домене.

Любое из этих решений может быть реализовано изящно? Или я иду об этом полностью неправильным путем?

1
задан Josiah 12 July 2010 в 01:11
поделиться

1 ответ

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

«Какой элегантный способ создавать URL-адреса доступа к приложениям для существующего веб-приложения? »

Ознакомьтесь с django-Piston

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

Он имеет несколько уникальных особенностей:

  • Связан с внутренними механизмами Django.
  • Из коробки поддерживает OAuth (а также базовую / дайджест-аутентификацию или пользовательскую аутентификацию).
  • Не требует привязки к моделям, позволяя использовать произвольные ресурсы.
  • Говорит JSON, YAML, Python Pickle и XML (и HATEOAS.) Поставляется с удобной многоразовой библиотекой на Python
  • Уважает и поощряет правильное использование HTTP (коды состояния, ...)
  • Имеет встроенную (необязательную) проверку формы (через Django), регулирование и т. Д.
  • Поддерживает потоковая передача с небольшим объемом памяти.
  • Держитесь подальше от вас.
2
ответ дан 2 September 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: