REST API для отправки файлов между сервисами - PullRequest
1 голос
/ 14 июля 2020

Я создаю микросервис, один из API которого ожидает файл и некоторые параметры, которые API обрабатывает и возвращает ответ. Я искал и нашел несколько ссылок, в основном указывающих на form-data (составной), однако они в основном относятся к клиенту к сервису, а не к сервису к сервису, как в моем случае. Я буду счастлив узнать, что лучше всего подходит для этого случая как для клиента (на самом деле, это услуга), так и для меня.

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Я бы также предложил выполнить запрос POST (составной) к конечной точке службы, которая может обрабатывать / принимать поток байтов, заключенный в предоставленные тела HTML. Запрос PUT также может работать в некоторых случаях.

Ваша основная забота будет заключаться в привязке достаточного количества метаданных к запросу, чтобы удаленная служба могла правильно его обработать. Сюда входят, в частности, следующие заголовки:

  • Content-Type: для предоставления MIME-типа передаваемых данных и обеспечения их правильной обработки.
  • Content-Disposition: для предоставления дополнительных информация о части тела, такая как имя файла.

Я лично считаю, что одного запроса достаточно (в отличие от предложения @ Evert ), так как это приведет к меньшим накладным расходам в целом и сохранит простоту (и RESTful), избегая какой-либо связи (или состояния) между последовательными запросами.

0 голосов
/ 14 июля 2020

Я бы не оборачивал данные в данные формы, потому что это просто увеличивает общий размер тела. Вы можете просто поместить весь необработанный файл в тело запроса PUT или POST.

Если вам также нужно отправить метаданные, я бы предложил 2 запроса. Если вы абсолютно не можете выполнить 2 запроса, форма-данные все равно могут быть лучшим вариантом, и он выполняет работу сервер-сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...