Метод работы с кэшем

Для работы с кэшем выполните запросы с помощью API-метода cache (перед выполнением запроса определите токен пользователя):

curl -v '<IP-адрес или DNS-имя сервера>/api/v1/cache/' -H 'Authorization: Bearer <токен пользователя>' --header 'Accept: application/json'

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

[

  {

    "user":"<имя пользователя>",

    "device":"<идентификатор устройства>",

    "sync_datetime":"<дата>",

    "version":1,"etag":

    "<идентификатор ETag>"

  }, ...

]

curl -v '<IP-адрес или DNS-имя сервера>/api/v1/cache/refresh/' -H 'Authorization: Bearer <токен пользователя>' --header 'Content-type: application/json' -d '{"resource_title":"<название ресурса>","<название параметра 1>":<значение параметра 1>,"<название параметра 2>":<значение параметра 2>,...,"<название параметра n>":<значение параметра n>}'

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

* Trying 0.0.0.0...

* TCP_NODELAY set

* Connected to <IP-адрес или DNS-имя сервера> (0.0.0.0) port 80 (#0)

> POST /api/v1/cache/refresh/ HTTP/1.1

> Host: <IP-адрес или DNS-имя сервера>

> User-Agent: curl/7.68.0

> Accept: */*

> Authorization: <токен пользователя>

> Content-type: application/json

> Content-Length: 81

>

* upload completely sent off: 81 out of 81 bytes

* Mark bundle as not supporting multiuse

< HTTP/1.1 200 OK

< Server: nginx/1.16.1

< Date: <дата>

< Content-Type: application/json; charset=utf-8

< Content-Length: 73

< Connection: keep-alive

< Allow: POST, OPTIONS

< X-Frame-Options: SAMEORIGIN

< Vary: Origin, Cookie

< ETag: "<идентификатор ETag>"

<

* Connection #0 to host <IP-адрес или DNS-имя сервера> left intact

{"task_id":"<идентификатор задачи>","task_state":"SUCCESS"}

Если кэш успешно обновлен, то в ответе возвращается идентификатор фоновой задачи (task_id) и статус выполнения задачи (task_state). Если кэш в данный момент обновляется, то задача по обновлению кэша будет выполнена в соответствии с очередностью выполнения задач.

Для получения статуса конкретного кэша с указанием полученного идентификатора фоновой задачи:

curl -v '<IP-адрес или DNS-имя сервера>/api/v1/cache/state/?task_id=<идентификатор задачи>' -H 'Authorization: Bearer <токен пользователя>' --header 'Content-type: application/json'

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

* Trying 0.0.0.0...

* TCP_NODELAY set

* Connected to <IP-адрес или DNS-имя сервера> port 80 (#0)

> GET /api/v1/cache/state/?task_id=<task_id> HTTP/1.1

> Host: <IP-адрес или DNS-имя сервера>

> User-Agent: curl/7.68.0

> Accept: */*

> Authorization: Bearer <токен пользователя>

>

* Mark bundle as not supporting multiuse

< HTTP/1.1 200 OK

< Server: nginx/1.16.1

< Date: <дата>

< Content-Type: application/json; charset=utf-8

< Content-Length: 73

< Connection: keep-alive

< Allow: GET, HEAD, OPTIONS

< X-Frame-Options: SAMEORIGIN

< Vary: Origin, Cookie

< ETag: "<идентификатор ETag>"

<

* Connection #0 to host <IP-адрес или DNS-имя сервера> left intact

{"task_id":"<идентификатор задачи>","task_state":"PENDING"}

См. также:

API сервера | Управление кэшем