Clio API: массовые действия не возвращают код состояния 303

Я не вижу ответа 303 для массовых действий, использующих последний API v4 для activities конечная точка.

Из документации API:

  1. Сделайте запрос к действию с заголовком X-BULK со значением true. Ответ всегда будет принят 202.

  2. Опрос URL, указанный в заголовке Расположение ответа. Этот URL-адрес предназначен для конечной точки групповых действий.

  3. Как только действие будет завершено, опрос URL вернет ответ 303 См. Другой.

  4. Загрузите ответ с URL-адреса в заголовке местоположения 303 См. Другой ответ.

Вот что я делаю:

Я выдаю первоначальный запрос к конечной точке действий с X-BULK заголовок установлен в 'true',

  • Я получаю 202 Acceptedответ с Location заголовок установлен на URL-адрес опроса.

Я начинаю опрашивать предоставленный URL из Location заголовок.

  • Я получаю несколько 200 ответы со следующими данными и заголовками:

Данные:

{"data":{"id":26952539,"etag":"\\"434fa52f83b8e0bb72677f60b8297866\\""}}

Заголовки:

{ 
  'content-type': 'application/json; charset=utf-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  vary: 'Accept-Encoding',
  status: '200 OK',
  'last-modified': 'Sat, 02 Dec 2017 22:17:13 GMT',
  'x-ratelimit-limit': '50',
  'x-ratelimit-reset': '1512253080',
  'x-ratelimit-remaining': '45',
  'x-request-id': '4674a764-c417-448c-af09-c6dae1cabe15',
  etag: '"434fa52f83b8e0bb72677f60b8297866"',
  'x-frame-options': 'SAMEORIGIN',
  'cache-control': 'no-cache, private, no-store',
  'x-xss-protection': '1; mode=block',
  'x-api-version': '4.0.5',
  'x-content-type-options': 'nosniff',
  date: 'Sat, 02 Dec 2017 22:17:13 GMT',
  'set-cookie':
  [ 'XSRF-TOKEN=oQqTKV8XKRm9oiMuY1OFZ6qleZyRyvtcs9v52%2FWyeiVXxvVszHLiXsQkWelnUHs3ErSsH64ctIpehxErulAWHg%3D%3D; path=/; secure',
    '_session_id=7babc5f94bc48ecd5d18d4b40c17d6ca; path=/; secure; HttpOnly' ],
  server: 'nginx',
  'strict-transport-security': 'max-age=31536000; includeSubdomains' 
} 

Однако 303 никогда не приходит После нескольких из вышеперечисленных 200s я получаю другой 200 с полезной нагрузкой:

Данные:

{
  "data": [
    {
      "data": [ {id: 1...}, {id: 2...}, {id: 3...}, ... ],
      "status": 200
    }
  ],
  "status": "completed",
  "requested": 46,
  "performed": 46
}

Заголовки:

{ 
  'x-amz-id-2': '1uiNt20Vd/X74JxKZKrt/hah7aof8xfhZlt7fhlDt8b3G2nA47Y8ZDaohb2drSF8ErniirRK2Es=',
  'x-amz-request-id': '2B29557952779E29',
  date: 'Sat, 02 Dec 2017 22:17:15 GMT',
  'last-modified': 'Sat, 02 Dec 2017 22:17:14 GMT',
  'x-amz-expiration': 'expiry-date="Wed, 06 Dec 2017 00:00:00 GMT", rule-id="Expiration rule (auto-generated)"',
  etag: '"58e33e4eced83d145bf6dec9f72b97be-1"',
  'x-amz-server-side-encryption': 'AES256',
  'content-encoding': 'utf-8',
  'x-amz-version-id': '2Ou7F__59Pz8WKOKZwFg_fOuhQjD5ro0',
  'content-disposition': 'attachment; filename="activities 20171202.json";',
  'accept-ranges': 'bytes',
  'content-type': 'application/json',
  'content-length': '9593',
  server: 'AmazonS3',
  connection: 'close' 
} 

Похоже, я могу обойти это достаточно путем тестирования на status === 'completed'или даже проверка на наличие content-disposition заголовок.

Я делаю что-то неправильно, что запрещает 303 ответ, или есть семантика для activities конечная точка, которую я игнорирую?

Достаточно ли проверить status === 'completed' обойти эту проблему?

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

Спасибо!

2 ответа

Решение

Это известная ошибка в Clio API-V4. Лучшее решение в это время:

тестирование полезной нагрузки 200 для статуса === 'выполнено'

Мы работаем над устранением отсутствия ответа 303. А пока мы обновим документацию.

Вот обходной путь, который я использовал с очень хорошими результатами:

  1. Использовать ignore_redirect параметр при запросе статуса массового действия:

    / API /v4/bulk_actions/? Ignore_redirect= истина

  2. Использовать ?fields=Response_Url параметр, чтобы получить фактический URL-адрес ответа.

  3. Загрузите результат с Response_Url имущество.

У меня никогда не было этих методов неудачно.

Другие вопросы по тегам