-
Notifications
You must be signed in to change notification settings - Fork 35
KodiCMS предоставляет возможность программными средствами получать и записывать данные через REST API.
REST API определяет набор функций, к которым разработчики могут совершать запросы и получать ответы. Взаимодействие происходит по протоколу HTTP. Преимуществом такого подхода является широкое распространение протокола HTTP, поэтому REST API можно использовать практически из любого языка программирования.
REST API предназначено, в основном, для запросов с внешних серверов, но также со временем внутренние запросы частично мигрируют на API.
Все вызовы методов API — это GET, POST, PUT, DELETE HTTP-запросы к URL http://.../api/...
с некоторым набором параметров.
В документации представлен список доступных методов. Например pages.get
-> http://.../api/pages.get
.
В ответ на запрос вы получаете его результат, который также описан в документации каждой функции.
Внутри системы написан модуль для работы с API
, это фактически обертка над Request
и Response
.
Запросы могут быть 4 типов:
Api::get()
Api::post()
-
Api::put()
- должен обязательно содержать параметрid
Api::delete()
Также на всякий случай доступен Api::request()
Пример запроса данных: $request = Api::get('pages.get', array('fields' => 'id,title'));
вернет объект API_Response
И далее работа происходит с его методами:
$request->body()
- вернет json
ответ
$request->as_array()
- данные в виде массива
$request->as_object()
- в виде объекта
$request->status()
- статус ответа, если код не 200
, то FALSE
$request->code()
- код ответа
$request->error()
- текст ошибки
В каждом запросе должен присутствовать набор обязательных параметров. Также для каждой функции в ее документации определены дополнительные параметры, нужные только для этой функции.
Порядок следования параметров в запросе значения не имеет, порядок параметров важен только при расчете подписи.
Одинаковые для всех функций параметры перечислены ниже:
fields
- в параметре передается список полей, которые нужно получить в запросе (через запятую)
Все ответы приходят в формате JSON
и содержат один обязательный параметр code
, который содержит статус текущего ответа ( link ):
- 200 - Запрос успешно выполнен
- 110 - Отсутствует обязательный параметр
- 120 - Ошибка валидации данных (POST и PUT запрос)
- 220 - Отсутсвуют права на доступ к данным
-
404 - Метод
API
не найден
Сейчас API
находится на стадии разработки, так что можно принять активное участие в его развитии, сейчас нет ни авторизации, ни генерации ключей для доступа к API, но все это в планах.