Запросы

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

Пример формирования запроса для получение данных (Query):

POST http://localhost/rpc HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 175
Pragma: no-cache
Cache-Control: no-cache
Authorization: Token YWRtaW4N
Origin: http://localhost
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Content-Type: application/json

{
   "action":"Domain.SD_MainDivisions",
   "method":"Query",
   "data":[
      {
         "query":"",
         "page":1,
         "start":0,
         "limit":25,
         "sort":[
            {
               "property":"C_Name",
               "direction":"ASC"
            }
         ]
      }
   ],
   "type":"rpc",
   "tid":9
}

, где:

  • action: string – наименование сущности
  • method: string – наименование метода в сущности
  • data: any[] – параметры передаваемые методу
  • type: string – тип запроса. По умолчанию rpc
  • tid: any – идентификатор запроса. Генерируется клиентом

Пример мультизапроса:

[
   {
      "action":"Domain.CS_Users",
      "method":"Query",
      "data":[
         {
            "limit":10000,
            "page":1,
            "start":0
         }
      ],
      "type":"rpc",
      "tid":3
   },
   {
      "action":"Domain.CS_Users",
      "method":"Query",
      "data":[
         {
            "limit":10000,
            "page":1,
            "start":0
         }
      ],
      "type":"rpc",
      "tid":4
   }
]

Результат ответа:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/javascript
Server: Microsoft-IIS/8.5
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST,GET
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 18 Apr 2018 10:32:50 GMT
Content-Length: 227

[
  {
    "result": {
      "records": [],
      "total": 0
    },
    "meta": {
      "success": true
    },
    "action": "Domain.DD_Doc_Details",
    "method": "QueryInfo",
    "type": "rpc",
    "tid": 5
  }
]

Если запрос вызывает ошибку, то ответ от сервера должен быть следующим:

[
  {
    "meta": {
      "success": false
      "msg": "",
      "fullMsg": ""
    },
    "action": "Domain.DD_Doc_Details",
    "method": "QueryInfo",
    "type": "rpc",
    "tid": 5
  }
]

, где в объекте meta указывается значение параметра success, как false.

  • msg: string — краткое описание ошибки
  • fullMsg: string — полное описание ошибки

Пример добавления данных (Add):

{
  "action": "accesses",
  "method": "Add", // тут указывается серверный метод для добавления записи
  "data": [  // данные для добавления в БД
    {
      "id": 1, // идентификатор передается произвольный, не учитывать на сервере если auto_increment
      "allow": false,
      "user_id": 1,
      "roles_id": "user",
      "table_name": "table"
    }
  ],
  "type": "rpc",
  "tid": 6
}

Пример обновления данных (Update):

{
  "action": "accesses",
  "method": "Update", // серверный метод для обновления 
  "data": [
    {
      "table_name": "table_name",
      "id": 9 // первичный ключ передается всегда
    }
  ],
  "type": "rpc",
  "tid": 11
}

При обновлении всегда передаются только те поля, которые были изменены на клиенте плюс первичный ключ.

Пример удаления данных (Delete):

{
  "action": "accesses",
  "method": "Delete", // серверный метод для удаления
  "data": [
    {
      "id": 9 // идентификатор записи для удаления
    }
  ],
  "type": "rpc",
  "tid": 12
}
Print Friendly, PDF & Email