Skip to content
butschster edited this page Jan 17, 2013 · 8 revisions

KodiCMS предоставляет возможность программными средствами получать и записывать данные через REST API.

Что такое REST API

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

REST API предназначено, в основном, для запросов с внешних серверов, но также со временем внутренние запросы частично мигрируют на 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, но все это в планах.

Clone this wiki locally