Создание кастомного API в OpenCart

Создание кастомного API в OpenCart

От автора: в какой-то момент требования к вашему проекту вынудят вас создать кастомные API OpenCart. Об этом мы и поговорим в этом уроке. В кастомном модуле API мы будем получать все доступные товары магазина. Список будет в виде закодированной JSON строки – это требование REST стандартов в OpenCart.

Вы должны знать основы модульной разработки в OpenCart. Еще один важный момент, у вас должна быть установлена последняя версия OpenCart 2.1.0.2 (на момент написания статьи) для обеспечения совместимости с API ядра. Не буду тратить ваше время, перейдем сразу к практике в следующей секции.

Создание файлов

Взглянем на список файлов, которые нам нужны.

catalog/controller/api/custom.php: файл контроллера, здесь лежит большая часть логики приложения

catalog/language/en-gb/api/custom.php: языковой файл с языковыми переменными

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

common.php: в файле хранится общий код для повторного использования

login.php: файл для авторизации в магазине через REST API

products.php: в файле вытягиваются товары через кастомный модуль API

Это все что нужно для создания кастомного модуля API и для тестирования с помощью PHP библиотеки CURL.

Начнем с контроллера. Создайте файл catalog/controller/api/custom.php со следующим кодом.

Если вы знакомы со структурой файлов модулей в OpenCart, то код вам будет знаком. Но мы все же объясним важные моменты в методе products.

Сначала нам нужно проверить подлинность запроса, что делается через переменную api_id в активной сессии. Если запрос правильный и подлинный, мы идем дальше и получаем все товары через метод getProducts модели ядра Product. Если не пройдена авторизация, метод вернет сообщение об ошибке доступа.

Далее идет общая проверка безопасности на CSRF атаки. Проверка проводится через переменную HTTP_ORIGIN и добавление соответствующих заголовков, если переменная существует.

В конце с помощью функции json_encode мы кодируем массив $products, результат передается как аргумент в метод setOutput.

Далее необходимо создать языковой файл catalog/language/en-gb/api/custom.php для модуля со следующим кодом.

С созданием файлов в OpenCart закончили. Начиная со следующего раздела, мы начнем создавать файлы для тестирования кастомного API через PHP библиотеку CURL.

Принцип работы

Прежде чем перейти к тестированию модуля API необходимо создать данные для авторизации в API через back end OpenCart.

Если вы этого еще не сделали, то это не сложно. Перейдите на back end и далее System > Users > API. Добавьте нового пользователя API. Также необходимо добавить IP-адрес, с которого вы будете совершать API вызовы.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

Создайте файл common.php со следующим кодом.

Как видите, в файле всего одна функция do_curl_request, которая делает CURL запрос на URL, переданный как аргумент $url. Второй аргумент – массив параметров, если вам нужны POST данные.

Важно заметить CURLOPT_COOKIEJAR и CURLOPT_COOKIEFILE. Они устанавливают файл, в котором будут храниться и считываться куки. Наши вызовы будут авторизованные, поэтому нам эти переменные нужны! Нужно лишь сменить путь /tmp/apicookie.txt на ваш собственный. Файл должен быть доступен для записи сервера!

Функция возвращает ответ на CURL запрос!

Сначала необходимо начать сессию. Для этого необходимо авторизоваться. Разберем пример. Создайте файл login.php со следующим кодом.

Сначала мы подключили файл common.php из предыдущей секции. Далее переменная $url определяет URL авторизации API магазина OpenCart. Далее массив $fields хранит данные для авторизации пользователя API.

В конце мы вызываем метод do_curl_request для авторизации. Обратите внимание на переменную token в объекте $json. Сохраните значение переменной, позже нам придется его передавать в API запросы.

Создайте файл products.php со следующим кодом.

Обратим внимание на переменную строки запроса роута. Она задана в значение api/custom/products и вызывает метод products из файла контроллера custom.php, который мы создали в начале урока. Мы передали переменную token со значением, чтобы у нас был доступ к API.

Нам важно получить правильно закодированный JSON в переменной $data, что и произойдет, если запустить файл products.php! Если вы правильно создали пользователя и файлы, все заработает.

Это лишь щепотка того, на что способно REST API в OpenCart. Это был очень простой, но эффективный пример демонстрации темы. Вы можете расширить его и реализовать свои решения под требования.

На сегодня все. Не стесняйтесь задавать вопросы и писать предложения, мы их очень ценим!

Заключение

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

Автор: Sajal Soni

Источник: http://code.tutsplus.com/

Редакция: Команда webformyself.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

Интернет-магазин на OpenCart

Создание магазина с уникальным шаблоном на CMS OpenCart

Научиться

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree