Описание API


Текущая версия REST API:

https://api.web20site.com/v1


Получение данных

Получение данных с сервера осуществляется с помощью GET запросов.

GET запрос в общем виде выглядит так:

https://api.web20site.com/v1/entities/метод?client_id=ид-приложения&root=имя-сайта&path=путь/до/элементу&параметр1=значение1&параметр2=значение2


Пример GET запроса:

https://api.web20site.com/v1/entities/get?client_id=adaa7639-7f7d-6060-9831-4432d004045f&root=hello-world&path=

Этот запрос возвращает информацию с сайта hello-world.


Обновление данных

Для модификации данных на сервере, используются 3 вида запросов:

  • PUT - для создания элемента
  • POST - для изменения элемента
  • DELETE - для удаления элемента.

POST, PUT или DELETE запросы имеет вид:

https://api.web20site.com/v1/entities/метод?client_id=ид-приложения

Параметры передаются в теле запроса в виде JSON:

{
    "root": "имя-сайта",
    "path": "путь/до/элемента",
    "параметр1": "значение1",
    "параметр2": "значение2"
}

Запрос должен иметь заголовок Authorization с токеном полученным через OAuth:

Authorization: Barear токен-авторизации


Пример POST запроса в cURL:

curl -XPOST https://api.web20site.com/v1/entities/get?client_id=adaa7639-7f7d-6060-9831-4432d004045f -H 'Authorization: Barear ***' -d '{
  "root": "hello-world",
  "path": "translations",
  "fields": [
    "name": "english",
    "value": "Hello, World!",
    "type": "s"
  ]
}'

Этот запрос обновляет поле english элемента данных translations сайта hello-world.


Авторизация

Загружать и изменять данные могут только авторизированные пользователи. Поддерживается OAuth-авторизация через следующие соцсети:

  • VK
  • GitHub
  • Google
  • Facebook

Чтобы подключить авторизацию на вашем сайте нужно создать приложение через админпанель и указать с кагого IP или хоста разршена авторизация.

После этого вы можете использовать SDK для авторизации:

<script src="https://fastlix.com/js/dist/sdk-2.1.js"></script>
var demo = new MDSClient({
  clientId: 'ключ_api_вашего_приложения',
  useLocalStorage: false // не хранить authToken в кеше браузреза
});

demo.login('google').then(function(args) {
  $.ajax({
    url: 'https://api.web20site.com/getMyRoots',
    beforeSend: function(xhr) { xhr.setRequestHeader('Authorization', 'Bearer ' + args.authToken) }
  }).then(function(data) {
    // Ваш код
  });
});

По-умолчанию, каждый сайт имеет объект MDSWebsite который уже инициализирован нужным ключём API. Подробнее от этом вы можете узнать в разделе SDK.


Методы API


GET  /get
Получить элемент
str root
Имя корня
str path
Путь к элементу
bool children
Загрузить дочерние элементы
str search
Полнотектовый поиск дочерних элементов
int offset
Полнотектовый поиск дочерних элементов
int limit
Максимальное количество загружаемых дочерних элементов
str orderChildrenBy
Сортировка дочерних элементов по значению поля
PUT /change

Создать элемент

str root
Имя корня
str path
Путь к новому элементу
arr fields

Поля нового элемента. Пример:

[
  {
    "name": "field1",
    "type": "s",
    "value": "Hello, World!"
  },
  {
    "name": "field2",
    "type": "i",
    "value": "123"
  },
  ...
]

Допустимые типы:

s — строка
i — целое число
r — дробное число
b — булево значение

Пример:

curl -XPOST https://api.web20site.com/v1/entities -d '{
  "root": "example",
  "path": "data/entity1",
  "fields": []
}'
PUT /create

Изменить элемент

str root
Имя корня
str path
Путь к элементу
arr fields
Поля элемента
DELETE /create

Удалить элемент

str root
Имя корня
str path
Путь к элементу