SearchDocflows (версия 3)

Метод SearchDocflows производит поиск документа по строке запроса.

POST /V3/SearchDocflows
Query Parameters:
  • boxId – идентификатор ящика организации.

Request Headers:
Request Body:

Тело запроса должно содержать структуру SearchDocflowsRequest.

Status Codes:
  • 200 OK – операция успешно завершена.

  • 400 Bad Request – данные в запросе имеют неверный формат или отсутствуют обязательные параметры.

  • 401 Unauthorized – в запросе отсутствует HTTP-заголовок Authorization или в этом заголовке содержатся некорректные авторизационные данные.

  • 402 Payment Required – у организации с указанным идентификатором boxId закончилась подписка на API.

  • 403 Forbidden – доступ к ящику с предоставленным авторизационным токеном запрещен.

  • 405 Method Not Allowed – используется неподходящий HTTP-метод.

  • 500 Internal Server Error – при обработке запроса возникла непредвиденная ошибка.

Response Body:

Тело ответа содержит список документов, представленный структурой SearchDocflowsResponseV3.

В ответе вернутся только те документы, к которым у пользователя есть доступ.

Метод разбивает строку запроса SearchDocflowsRequest.QueryString следующими способами:

  • Метод разбивает строку на токены по пробелам и разделительным символам. В ответ метода попадают документы, у которых хотя бы один из полученных токенов содержится в номере, дате, имени файла или других данных.

  • Если строка запроса имеет вид «ключ: значение», то метод разбивает строку в соответствии с форматом YAML. В ответ метода попадут документы, которые содержат указанную пару «ключ-значение» среди пользовательских данных, привязанных к документу.

Список документов в ответе может содержать не более 100 элементов. Если документов больше, их можно получить постранично. Для получения очередной страницы передайте в поле запроса SearchDocflowsRequest.FirstIndex индекс документа, с которого нужно начать выгрузку.

При вызове метода можно указать максимальное количество элементов на странице в поле SearchDocflowsRequest.Count, но оно не должно превышать 100 элементов.

Метод не гарантирует, что все страницы, кроме последней, будут содержать одинаковое максимальное количество документов. При разработке интеграционного решения учитывайте, что в очередной странице может не быть ни одного документа.

SDK

SearchDocflowsResponseV3 SearchDocflows(string authToken, string boxId, SearchDocflowsRequest request);

Пример использования (C#)

Постраничное получение документов, содержащих строку «Пример».

var request = new SearchDocflowsRequest { QueryString = "Пример" };
while (true)
{
    var response = api.Docflow.SearchDocflows(token, boxId, request);
    Console.Out.WriteLine("Fetched {0} documents", response.Documents.Count);
    if (!response.HaveMoreDocuments)
        break;
    request.FirstIndex += response.Documents.Count;
}