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