概述

此软件包旨在作为一个非常简单的 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 版本

此软件包旨在与 iOS 13 及更高版本一起使用。

联系方式

otaviokz@gmail.com

otaviokz.com

linkedin.com/in/otaviokz

许可

MIT 许可证

版权所有 (c) 2024 Otavio Zabaleta

特此授予许可,免费向任何获得本软件和相关文档文件(“软件”)副本的人员进行交易,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向获得软件的人员提供软件,但须符合以下条件

上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。

本软件按“原样”提供,不作任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有者均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为或其他方面,因软件或软件的使用或其他交易而引起、产生或与之相关。