此软件包旨在作为一个非常简单的 HTTP 客户端,用于发送和/或返回 JSON 数据的 HTTP 连接。只需将其添加到您的 Swift Package Dependencies,即可解放您的时间来处理 API(URL、端点、返回类型等)层。
可用方法
func get<T: Decodable>(_ url: URL, headers httpHeaders: [String: String]?) async throws -> T
func postJSON<T: Decodable>(_ url: URL, body: Data, httpHeaders: [String: String]?) async throws -> T
请注意,postJSON
方法会自动将 { "Content-Type": "application/json" } 添加到 URLRequest 标头中。
POST 方法的 Data
参数不需要与 JSON 相关,但该方法期望返回一些序列化的 JSON 数据,它将尝试将其解码为在其调用中指定的类型。
public struct MovieSummary: Codable {
public let id: Int
public let overview: String
public let posterPath: String
public let releaseDate: String
public let title: String
public let voteAverage: Double
}
final class MoviesAPI {
func fetchPopularMovies() async throws -> [MovieSummary] {
let popularMoviesPage: MovieSummariesPage = try await JSONHttpClient.shared.get(popularMoviesURL, headers: apiHeaders)
return popularMoviesPage.movieSummaries
}
}
*上面的示例使用 The Movie Database 免费 API 来获取热门电影和相关信息。
此软件包旨在与 iOS 13 及更高版本一起使用。
版权所有 (c) 2024 Otavio Zabaleta
特此授予许可,免费向任何获得本软件和相关文档文件(“软件”)副本的人员进行交易,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向获得软件的人员提供软件,但须符合以下条件
上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。
本软件按“原样”提供,不作任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有者均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为或其他方面,因软件或软件的使用或其他交易而引起、产生或与之相关。