使用 Github API / SwiftUI 显示您的 github 数据

display your github data using Github API / SwiftUI

待完成的任务:使用 Github API.[=16= 让您的 github 数据显示在 ContentView 屏幕上]

struct TaskEntry: Codable  {
    let id: Int
    let title: String
}
    @State var results = [TaskEntry]()
    
    func loadData() {
            guard let url = URL(string: "https://jsonplaceholder.typicode.com/todos") else {
                print("Invalid URL")
                return
            }
            let request = URLRequest(url: url)

            URLSession.shared.dataTask(with: request) { data, response, error in
                if let data = data {
                    if let response = try? JSONDecoder().decode([TaskEntry].self, from: data) {
                        DispatchQueue.main.async {
                            self.results = response
                        }
                        return
                    }
                }
            }.resume()
        }

上述解决方案对执行此任务没有帮助

i didn't understand how to use these docs

感谢关注。 帮助那些知道...

尝试类似这种方法来显示从 github 检索到的一些信息。

您的信息需要一个模型,我在这里称之为 Repository。 然后您需要使用适当的 url 从 github 服务器获取信息,如 loadData 所示。最后,您需要在视图中显示信息,如 ContentView.

所示
struct Repository: Decodable, Identifiable {
    let id: Int
    let name, fullName: String
    
    enum CodingKeys: String, CodingKey {
        case id, name
        case fullName = "full_name"
    }
}

struct ContentView: View {
    @State var results = [Repository]()
    
    var body: some View {
        List {
            ForEach(results) { repo in
                Text(repo.name)
            }
        }
        .onAppear {
            loadData()
        }
    }
    
    func loadData() {
        guard let url = URL(string: "https://api.github.com/users/workingdog/repos") else { return }
        URLSession.shared.dataTask(with: url) {(data, _, _) in
            guard let data = data else { return }
                do {
                    self.results = try JSONDecoder().decode([Repository].self, from: data)
                } catch {
                    print("error: \(error)")
                }
        }.resume()
    }

}

请注意,要检索您的 github 存储库信息,请将 url 中的 workingdog 替换为您的 github 名称。

PS:您是否阅读了上一个问题的答案:

这个答案不适合你吗?