Выполнение запросов для получения или отправки данных на сервер осуществляется только после получения мета информации. Все запросы передаются методом 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 }