Пример проекта для ООО КБ Смоленский Банк
Это пример реализации API для своего веб-приложения. API осуществляет проверку входящих запросов и, если данные верны, выдает ответ в формате JSON. Пример предназначен для обмена данными с API используя внешний сервер, но есть и клиентский пример.
Для запуска примера и его настройки нужно сделать следующее:
- Скачать и распаковать архив с кодом и примерами.
- Загрузить содержимое в любую удобную директорию на сервере.
- Изменить параметры доступа к БД в файле
config.php
- Для ручной установки тестовой sql-таблицы используйте
dump.api.sql
. - Перед запуском примера
example.php
нужно указать полный URL доapi.php
в переменной $API_URL - Запустить браузер и обратиться по адресу:
http://your_url_here/example.php
Если все сделано правильно, на экране появится json-ответ из API.
Дополнительно я подготовил и другие примеры: example2.php
, ajax.html
После распаковки архива структура файлов и директорий следующая:
- api.php - ядро API. Здесь происходит проверка входящих данных и отсюда же уходит ответ, если все условия TRUE
- api.utils.php - вспомогательные функции для проверки данных
- config.php - конфиг базы данных
- demo.data.php - подготовленные ответы для API, которые выдаются по запросу в зависимости от входящих параметров
- example.php - пример посылает подписанный запрос API с методом getUserInfo (есть еще
getUserOnline
иgetServerTime
) - example2.php - пример того, как можно визуализировать json-данные в своем шаблоне.
- ajax.html - вывод данных полученных от API в обычном
alert();
- pdo/ - здесь лежит класс для работы с БД посредством PDO
- pdo/class.db.php - вот, кстати, и сам класс
- pdo/error.css - таблица стилей для вывода ошибок
- themengn/ - директория шаблонизатора
- themengn/templates.class.php - класс шаблонизатора
- demo/ - в этой директории расположен пример шаблона, который используется в
example2.php
- demo/images - картинки
- demo/styles.css - стили
- demo/userinfo.html - шаблон
Вот так все работает на моем сервере:
Серверные запросы:
Клиентский запрос:
Прямой GET запрос: