根据传输、安全和重试契约审查这段生成的用户加载器。
使用 Bearer 认证获取一个用户;只接受 2xx 响应,保留解码失败,复用传输资源,GET 最多尝试三次,并且绝不记录凭证。
swift
import Foundation
struct User: Decodable {
let id: Int
let name: String
}
func loadUser(id: Int, token: String) async -> User? {
for _ in 0..<3 {
do {
let session = URLSession(configuration: .default)
var request = URLRequest(url: URL(string: "https://api.example.com/users/\(id)")!)
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
let (data, _) = try await session.data(for: request)
print(request.allHTTPHeaderFields ?? [:])
if let user = try? JSONDecoder().decode(User.self, from: data) {
return user
}
} catch {}
}
return nil
}
生成代码仅作示例,不代表任何特定模型