Я пытаюсь создать сайт django для доступа к данным в базе данных MySQL. Намерение также состоит в том, чтобы создать пользовательский интерфейс в Dojo (javascript). Также я хотел бы, чтобы серверная часть django также предоставляла веб-сервисы (RPC для функций python), чтобы разрешить удаленный доступ к базе данных MySQL. Так, например, если кто-то хочет использовать сценарии Perl для доступа к базе данных (и, возможно, другие дополнительные функции, такие как вычисления на основе данных в базе данных), он может сделать это на своем родном языке (Perl).
В идеале API веб-сервисов одинаков для javascript и других удаленных сервисов, которым требуется доступ к этим сервисам. Я обнаружил, что JSON-RPC - хороший способ для этого, поскольку в javascript обычно есть встроенная поддержка для этого в дополнение к многочисленным дополнительным преимуществам. Также многие люди предпочитают SOAP JSON.
Я видел несколько способов сделать это:
1) Создайте уникальный URI для каждой функции, к которой вы хотите получить доступ:
https://code.djangoproject.com/wiki/JSONRPCServerMiddleware
2) Создайте одну точку доступа и передайте имя метода в пакете JSON. В этом конкретном примере SMD генерируется автоматически.
https://code.djangoproject.com/wiki/Jsonrpc
Проблема с (1) состоит в том, что если есть много функций, к которым необходимо получить доступ, то будет много URI, которые будут использоваться. Это не похоже на элегантное решение. Проблема с (2) заключается в том, что мне нужно сравнить функции со списком всех функций. Опять же, это тоже не элегантное решение.
Нет ли способа использовать преимущества (1) и (2) для создания интерфейса, который бы:
- Только один URI используется в качестве точки доступа
- Функции вызываются напрямую (без сравнения со списком функций)
Любая помощь с этим будет по достоинству оценена. Спасибо!