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

Для работы с кэшем выполните запросы с помощью 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 сервера | Управление кэшем