API, который позволяет пользователям подключаться напрямую к базе данных - PullRequest
0 голосов
/ 11 января 2010

Я работал со многими API, и это обычно не простая задача. Возиться с запросами POST, а затем пытаться обработать XML - это боль. И я подумал, не будет ли проще как для пользователя, так и для разработчика, если они смогут просто напрямую взаимодействовать с базой данных.

Можно ли создать пользователя, к которому будут подключаться пользователи API, и назначать ему определенные привилегии? Например, они смогут выбирать только из определенных таблиц и столбцов. И, в основном, сделайте так, чтобы они не могли делать ничего злого или чего-то, что вам не нужно.

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

Это практическая идея? Это безопасно? Я действительно не уверен, я самая далекая вещь от профессионала, это просто идея.

Ответы [ 6 ]

2 голосов
/ 11 января 2010

Вы можете настроить RESTful API, который может напрямую взаимодействовать с базой данных mySQL, например PHPRestSQL . Он может сделать всю грязную работу за вас, но у вас будет полная свобода в реализации новых функций или ограничений.

1 голос
/ 11 января 2010

Два наиболее важных встречных вопроса:

1) Базовая БД уже определена или вы можете выбрать одну?

2) Какие операции с БД действительно нужно выполнять вашим пользователям? Если «select» действительно достаточно, то да, возможно, имеет смысл выставлять данные через веб-сервис «только для чтения». Но если вы хотите обновить, удалить, выполнить хранимые процедуры и т. Д., Вам понадобится что-то вроде SQL, и для этого будет сложно создать API веб-служб.

Если ответ на контр-вопрос 1 «Я могу выбрать», посмотрите на CouchDB, в котором уже есть RESTful API (http://wiki.apache.org/couchdb/HTTP_REST_AP), созданный для него.

1 голос
/ 11 января 2010

Да, вы можете сделать это с любой системой баз данных клиент / сервер (если это сервер базы данных, должен быть способ подключиться к нему)

Это сделано мало из-за ряда проблем.

  • Техническое обслуживание сложно
  • Безопасность хуже
  • Как правило, нет никакой пользы.

В основном это вызывает головные боли и не дает ничего хорошего.

1 голос
/ 11 января 2010

Что вы имеете в виду именно под API, о каком API вы говорите?

Это больше похоже на дизайнерское решение. Если я правильно понимаю, вы хотите взаимодействовать со слоем пользователя и слоем базы данных / персистентности приложения. Вообще это плохая идея. Во-первых, это действительно уменьшает повторное использование кода. Это не может быть проблемой на вашем этапе разработки, но это хорошая идея, чтобы изучить лучшие практики. Я обычно слежу за слоями:

Model-View-Controller обслуживание Упорство Модель / Домен

Здесь вы можете видеть, что MVC (пользовательский интерфейс) отделен от модели как минимум двумя слоями. Это обычно более безопасно и способствует повторному использованию кода.

0 голосов
/ 11 января 2010

Вы можете подключить доступ к любой базе данных - например, Oracle.

Однако это не обязательно хорошая идея - по соображениям безопасности и целостности данных.

0 голосов
/ 11 января 2010

Да, почти все базы данных позволяют создавать пользователей только с избранным доступом к определенной схеме. Я использовал это, чтобы предоставить опытным пользователям Excel доступ к ODBC, не беспокоясь о том, что они что-нибудь испортят. Используйте очень экономно - это всегда создавало трудности при обслуживании, потому что люди заканчивали тем, что использовали части вашей схемы способами, которые вы не собирались (или планировали заменить).

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