Skip to end of metadata
Go to start of metadata

Общая информация по загрузке вложений представлена в статье Загрузка вложения.

Разберем пример загрузки вложения на тестовую среду testdev2 при помощи инструмента Postman.

Шаг 1: авторизация

Создаем новый запрос и указываем:

  1. метод = POST
  2. Url = https://testdev2.logistpro.su/api/v1/account/login
  3. ключ АПИ (во вкладке Headers): x-apikey jn/PYDwYKV7INbTQwZFdpXe4LEuYvBg9fgsIdykDigM=
  4. пару логин/пароль (в теле запроса вкладки Body): ext.customer.1@logistpro.su / I1f7VHKP1LxINo

Все необходимые данные для доступа к тестовой среде testdev2 содержатся в статье Тестовая среда testdev2.


Отправляем запрос и получаем в ответ:

  • статус = 200 OK
  • авторизационный токен в cookie .AspNet.ApplicationCookie

Узнать больше про ключ АПИ и авторизацию в системе можно в статье Авторизация.


Шаг 2: загрузка файла

Создаем новый запрос и указываем:

  1. метод = POST
  2. Url = https://testdev2.logistpro.su/api/v1/tender/{id}/upload (где id - идентификатор ранее созданного запроса на перевозку)
  3. ключ АПИ (во вкладке Headers): x-apikey jn/PYDwYKV7INbTQwZFdpXe4LEuYvBg9fgsIdykDigM=
  4. тело запроса: (вкладка Body)
    1. формат = form-data
    2. параметры:
      1. Type = Накладная (тип Text)
      2. File = любой файл с локального диска (тип File)
      3. любые дополнительные параметры, описывающие документ (набор необязательных параметров можно узнать в модели данных запроса)

Пример создания запроса можно посмотреть в статье Как создать свой первый Запрос на перевозку.


Перед запуском можно проверить сохраненный авторизационный токен в разделе Cookies:


Отправляем запрос и получаем в ответ:

  • статус = 200 OK
  • Id - идентификатор вложения
  • DownloadLink - прямая ссылка на скачивание документа


Шаг 3: проверка вложения

В интерфейсе торгов

  • открываем детальную страницу запроса по адресу https://testdev2.logistpro.su/Tender/Details/{id} (где id - идентификатор запроса на перевозку)
  • в нижней части страницы раздел Вложенные документы

Через АПИ

Создаем новый запрос и указываем:

  1. метод = GET
  2. Url = https://testdev2.logistpro.su/api/v1/tender/{id} (где id - идентификатор запроса на перевозку)
  3. ключ АПИ (во вкладке Headers): x-apikey jn/PYDwYKV7INbTQwZFdpXe4LEuYvBg9fgsIdykDigM=

Запускаем запрос и получаем детальную информацию по запросу со списком вложений:

Использование других инструментов для загрузки вложений

Подавляющее большинство утилит и библиотек для работы с HTTP запросами умеют отправлять данные в формате multipart/form-data (как правило, он является форматом по умолчанию для POST запросов).

Разберем несколько типовых примеров.
Во всех примерах будем использовать следующие параметры:

  • id - идентификатор запроса на перевозку
  • token - авторизационный токен, ранее полученный из метода POST /api/v1/account/login

Консольные утилиты (на пример cURL)

Перед использованием, рекомендуем ознакомиться со статьей Особенности использования API с помощью консольных утилит.

curl --location --request POST 'https://testdev2.logistpro.su/api/v1/tender/{id}/upload' \
--header 'x-apikey: jn/PYDwYKV7INbTQwZFdpXe4LEuYvBg9fgsIdykDigM=' \
--header 'Cookie: .AspNet.ApplicationCookie={token}' \
--form 'Type="Накладная"' \
--form 'File=@"/path/to/Накладная_Н-123 (test).pdf"'

Библиотеки языков высокого уровня

C# (с использованием "RestSharp")

var client = new RestClient("https://testdev2.logistpro.su/api/v1/tender/{id}/upload");
var request = new RestRequest(Method.POST);
request.AddHeader("x-apikey", "jn/PYDwYKV7INbTQwZFdpXe4LEuYvBg9fgsIdykDigM=");
request.AddHeader("Cookie", ".AspNet.ApplicationCookie={token}");
request.AddParameter("Type", "Накладная");
request.AddFile("File", "/path/to/Накладная_Н-123 (test).pdf");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);


Python (с использованием "requests")

import requests

url = "https://testdev2.logistpro.su/api/v1/tender/{id}/upload"

payload={'Type': 'Накладная'}
files=[
  ('File',('Накладная_Н-123 (test).pdf',open('/path/to/Накладная_Н-123 (test).pdf','rb'),'application/pdf'))
]
headers = {
  'x-apikey': 'jn/PYDwYKV7INbTQwZFdpXe4LEuYvBg9fgsIdykDigM=',
  'Cookie': '.AspNet.ApplicationCookie={token}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)

1С:Предприятие 8+ (с использованием Connector)

Заголовки = Новый Соответствие;
Заголовки.Вставить("x-apikey", "jn/PYDwYKV7INbTQwZFdpXe4LEuYvBg9fgsIdykDigM=");

Cookies = Новый Массив;
Cookies.Добавить(Новый Структура("Наименование,Значение", ".AspNet.ApplicationCookie", "{token}"));

Файлы = Новый Массив;
Файлы.Добавить(Новый Структура("Имя,Данные,ИмяФайла", "File", Base64Значение("{содержимое файла}"), "Накладная_Н-123 (test).pdf"));

Данные = Новый Структура("field1,field2", "Type", "Накладная");

Результат = КоннекторHTTP.Post("https://testdev2.logistpro.su/api/v1/tender/{id}/upload", Неопределено, Новый Структура("Заголовки,Cookies,Файлы,Данные", Заголовки, Cookies, Файлы, Данные));



  • No labels