Я использую Rails 5 в качестве бэкэнда мобильного приложения.Проблема, которую я пытаюсь решить, - это получение запроса из приложения, содержащего информацию о клиенте плюс 2 фотографии .После короткого подхода появилось два варианта:
- Сначала отправьте файлы в POST multipart / form-data и верните идентификатор клиенту.После этого снова отправляется «реальный» запрос, и сервер должен связать идентификатор (метаданные) и файл.
Отправлять файлы в формате Base64.encoded
без изменения заголовка JSON.Что-то вроде:
curl -X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Cache-Control: no-cache" \
-d '{
"data": {
"type": "identities",
"attributes": {
"param1": "first param",
"param2": "second param",
"image1": "data:image/png;base64,iVBORw0KGgoAAAANSU.....",
"image2": "data:image/png;base64,iVBORw0KGgoAAAANSU....."
}
}' "http://API_URL/identity"
Мои опасения по поводу этих двух подходов соответственно:
- Поскольку мы ожидаем 2 файла, мы должны сделать запрос для каждогосвязать это с ID?Что ожидается, если второй вызов не достигнет сервера или недействителен?
- Какое количество байтов мы должны принять?Я думал о 10 МБ, но я не уверен, что это хорошая идея и как сервер будет реагировать?Является ли хорошей идеей сначала проверить тип и размер файла на уровне пользовательского интерфейса (мобильное приложение)?
Если кто-то может предложить что-то еще, я был бы очень признателен.Также, если у вас есть опыт решения этой проблемы, пожалуйста, поделитесь полезными ссылками, которые вы использовали, я также буду признателен за них.