Swift OpenAPPI Post-запрос на загрузку файлаIOS

Программируем под IOS
Ответить
Гость
 Swift OpenAPPI Post-запрос на загрузку файла

Сообщение Гость »

Я пытаюсь понять, как использовать новый генератор OpenAPI для Swift.
У меня есть действительная схема или файл yaml.

Код: Выделить всё

openapi: "3.0.3"
info:
title: BcNotioUpload
version: 1.0.0
servers:
- url: https://prod.server.co
description: "prod server"
- url: https://stagin.allocations.gbct.io
description: "Staging server"

components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT

security:
- bearerAuth: [APIKey]

paths:
/telemetry/upload:
post:
operationId: uploadRide
summary: Send CSV file to the servers.
description: Bla bla bla bla bla
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
fileName:
type: string
format: binary
responses:
'200':
description: callback successfully processed
И в реализации своего быстрого кода я использую это на основе примера Get. Я не уверен, куда поместить здесь имя файла.
Тело принимает данные, и мне нужно отправить CSV-файл и его имя.
{edit} Также я не уверен, нужно ли мне иметь дополнительное свойство для двоичного файла или

Код: Выделить всё

fileName:
type: string
format: binary
позаботьтесь об обоих ключах, или мне нужно изменить это на

Код: Выделить всё

fileName:
type: string
format: binary
file:
type: object
format: binary
в почтальоне мое тело было бы таким
Изображение

Обновлено:

Код: Выделить всё

if let fileData = data {
let transport: ClientTransport = URLSessionTransport()
let client = Client(serverURL: try! Servers.server1(), transport: transport)
Task{
let resp = try? await client.uploadRide(.init(body: .binary(fileData)))
switch(resp){
case .ok(_):
// Switch over the response content type.
print("Upload Ok")
self.delegate?.onExportEnd(error:nil)
case .undocumented(statusCode: let statusCode, _):
// Handle HTTP response status codes not documented in the OpenAPI document.
print("Upload Error")
showAlert(title: "Danger Danger Will Robinson!!", msg: "Something did not work")
errorHandler("Upload Failled")
print("🥺 undocumented response: \(statusCode)")
case .none:
print("Upload none ?")
//errorHandler("Upload ???")
}
}
Что касается части данных, мне нужно изменить .binary(fileData) на что-то вроде.binary(Data(from: ["file.name":"theNameOf TheFile", "file":fileData) ?? или мне нужно указать имя файла в каком-то другом параметре в uploadRide(.init(...)) ?

У меня нет примера любое руководство или любая подсказка о том, как использовать uploadFile()
Кто-нибудь знает, как я могу использовать Клиент для отправки моего файла, или если кто-нибудь в качестве ссылки на более подробную быструю документацию, то маленький Get Cat пример, который дал нам Apple??

Подробнее здесь: https://stackoverflow.com/questions/769 ... oad-a-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»