предложения о том, как подходить к созданию MySQL веб-сервис / API - PullRequest
1 голос
/ 26 мая 2011

Заранее извините, если моя формулировка неверна, потому что я не совсем уверен, как объяснить, что я хочу, поэтому я просто опишу конечный результат.

У меня есть инструмент Excel на основе php, называемый socialcalc (раньше это был wikicalc). Я хочу, чтобы пользователи могли подключаться к базе данных и перетаскивать текущие данные на листы (чтобы они могли выполнять на ней вычисления).

Я понимаю, что Socialcalc наверняка придется запросить MySQL, но я пытаюсь найти наиболее эффективный способ. Лучше позволить ему запросить его напрямую? или я должен сделать запрос к базе данных и получить XML-файл в результате? Или, как вы могли бы предложить другой эффективный и безопасный способ предоставления доступа к данным для чтения?

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

Обновление: чтобы уточнить, я ищу предложения по использованию SOAP / XML, скажем, по прямому запросу к базе данных или по HTTP POST / GET и т. Д., Какой тип сервисного уровня вы бы предложили или какие факторы следует учитывать при выбор

Ответы [ 2 ]

1 голос
/ 26 мая 2011

«Простое лучше, чем сложное».

Вы, конечно, могли бы реализовать слой Web-сервиса между вашим приложением и MySQL, но спросите себя, почему вы бы этого хотели. Возможно, вы захотите, потому что:

  1. Вы планируете изменить какие-либо бэкэнд-системы в будущем, и вам не нужно реорганизовывать бизнес-логику во внешнем приложении

  2. Вы хотите предоставить свои данные бэкэнда другим приложениям и предоставить общий интерфейс для этого

  3. Вы хотите реализовать более плавную стратегию кэширования / сохранения на среднем уровне

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

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


EDIT:

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

  1. Получите хорошую среду ORM, которая может генерировать подавляющее большинство вашей логики CRUD. Doctrine - популярный выбор для PHP.

  2. Используйте каркас веб-служб для реализации ваших интерфейсов и бизнес-логики. Я делал это в прошлом, используя Zend Framework , так как они поддерживают полезную нагрузку XML и JSON через REST. XML и SOAP хороши, если вам нужны строгие требования к проверке данных, но если вы единственный, кто использует ваш собственный веб-сервис, вам не нужно навязывать такие ограничения себе, поскольку вы знаете свои требования, В этом случае JSON должно быть достаточно.

Кстати, я обсуждал RESTful-сервисы через Zend в другом предыдущем вопросе:

облегченный PHP-сервер RESTful

1 голос
/ 26 мая 2011

Я думаю, что лучший подход - использовать пошаговое действие.

сентябрь один

Позвольте пользователю выбрать данные, которые он хочет внедрить вего лист превосходства.Как это сделать, зависит от вас.

Шаг второй

Передайте выбор пользователя собственному созданному SQL API.Этот API-интерфейс проверяет входные данные на наличие инъекций и т. Д. И выполняет весь запрос при извлечении данных.

Шаг третий

Отправка полученных данных в класс, которыйсоздаст файл Excel.

Шаг четвертый

Отправка созданного файла Excel пользователю.

Наиболее важной частью этого является SQLапи.Это класс, который обрабатывает весь ввод от пользователя и связь с базой данных.Он может использовать обычные операторы SQL, но вы не можете использовать его для проверки всех данных.

Надеюсь, это пригодится вам.

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