Как отобразить данные JSON из API в SwiftUI? - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть JSON из API.Мне нужно показать в виде текста значение из него.

Это его часть.

]
    {
        "d": "2019-09-20",
        "v": 56.62
    },
    {
        "d": "2019-09-23",
        "v": 56.93
    }
]

Теперь я создал для него модель, которая называется Dolar.swift.

struct Dolar: Decodable {
    var d: String?
    var v: Double?
}

А также класс с именем WebService.swift, который будет обрабатывать вызов:

class WebService {
    func getCurrency(completion: @escaping (Dolar?) -> ()) {
        guard let url = URL(string: "https://api.estadisticasbcra.com/usd_of") else { return }

        URLSession.shared.dataTask(with: url) { (data, response, error) in
            guard let data = data, error == nil else {
                return
            }

            let currencyResponse = try? JSONDecoder().decode(Dolar.self, from: data)

            if let currencyResponse = currencyResponse {
                let dolar = currencyResponse
                print(dolar)
                completion(dolar)
            } else {
                completion(nil)
            }
        }.resume()
    }
}

В документации API указано, что для запроса требуется добавление TOKEN:

Authorization: BEARER {TOKEN}

Как мне это сделать?У меня есть ЖЕТОН, но я не знаю, как его реализовать.Это мой первый вопрос.Во-вторых, как только я получу значение, как мне показать его на ContentView.swift?Любая помощь приветствуется.

1 Ответ

2 голосов
/ 24 сентября 2019

Для первой части вашего вопроса вам нужно использовать вариант URLSession.dataTask, который принимает URLRequest.Что-то вроде:

let request = URLRequest(url: url)
request.setValue(token, forHTTPHeaderField: "Authorization")
// Or maybe:
// request.setValue("BEARER {\(token)}", forHTTPHeaderField: "Authorization")

URLSession.shared.dataTask(with: request) { (data, response, error) in
    // Handle errors, decode response
}.resume()

См. Документы для URLSession и URLRequest

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