Smartshell API - программный интерфейс ERP-системы для индустрии компьютерных клубов, интернет-кафе и кибер-арен.

ПО SmartShell предназначено для оптимизации операционной деятельности, управления персоналом, предоставления бизнес-аналитик, снижения расходов и увеличения прибыли бизнеса.

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

Типы запросов GraphQL Smartshell

Основные типы запросов в GraphQL:

Query: запросы в GraphQL

C помощью Query GraphQL получает необходимые данные с сервера.

Тип Query в GraphQL аналогичен методу GET в REST.

Запрос представляет собой строку, которая отправляется в теле HTTP POST-запроса.

Пример запроса getBookings

query bookings {
  getBookings(
    hostIds:[49387,49388,49461]
    )
    {
      data {
        id
      } 
    }
}

В теле запроса передаются идентификаторы хостов, по которым нужно получить данные.

В теле ответа запрашиваются идентификаторы броней указанных хостов.

Пример ответа

В ответ на этот запрос сервер присылает данные в формате JSON.

Структура ответа соответствует структуре запроса:

{
  "data": {
    "getBookings": {
      "data": [
        {
          "id": 505982
        },
        {
          "id": 509880
        },
        {
          "id": 509881
        },
        {
          "id": 509882
        }
      ]
    }
  }
}

В ответе возвращаются идентификаторы броней указанных хостов.

Mutation: мутации в GraphQL

С помощью мутаций можно добавлять данные в базу.

Mutation аналогичен методам POST и PUT в REST.

Пример мутации createHost

Мутация создает хост и возвращает его данные.

mutation createHost {
  createHost (input:{
    group_id:10121
    type_id:4692
    position:4
    alias:"forth"
    coord_x:3
    coord_y:0
  })
  {
	id
    group_id
    type_id
    position
    alias
    comment
    mac_addr
    ip_addr
    coord_x
    coord_y
    created_at 
  }
}

Для создания нового хоста в теле запроса вводятся параметры HostInput

В теле ответа вводятся интересующие параметры хоста: Host

Пример ответа

{
  "data": {
    "createHost": {
      "id": 49751,
      "group_id": 10121,
      "type_id": 4692,
      "position": 4,
      "alias": "forth",
      "comment": null,
      "mac_addr": null,
      "ip_addr": null,
      "coord_x": 3,
      "coord_y": 0,
      "created_at": "2024-02-17 12:01:52"
    }
  }
}

В ответе возвращаются запрошенные параметры хоста: Host