SKWebServiceController 版本 2.1.0

SKWebServiceController 版本 2.1.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最新版本2018年9月
SPM支持 SPM

Sean Kladek 维护。



  • By
  • Sean Kladek

SKWebServiceController

Travis Status Codecov Status Pod Version Platform Status License Status

SKWebServiceController 提供了一个基本网络层与返回 JSON 或图片的服务进行交互。查看工作区中的 SampleProject 以查看使用示例。


安装

Cocoapods

安装支持通过 Cocoapods。将以下内容添加到你想使用 SKWebServiceController 的目标的 pod 文件中。

pod 'SKWebServiceController'

初始化

初始化只需要一个基本URL。除了getImages外的所有请求都会在基本URL上附加提供的端点信息。最常用的实现可能是扩展此控制器并提供baseURL。如果您有多个baseURL,它们每个都需要单独的WebServiceController对象。最常用的实现将包括一个单例以访问WebServiceController对象。

import SKWebServiceController

class MyWebServiceController: WebServiceController {
	static let shared = MyWebServiceController()

    init() {
        super.init(baseURL: "https://jsonplaceholder.typicode.com/")
    }
}

可选地,可以传入一个包含默认参数的字典。这些值会在端点之后作为查询参数附加到每个URL上。


WebServiceController

WebServiceController子类将用于执行请求。公开了便于执行这些请求的方法。这些请求中的每一个都需要一个端点和一个RequestConfiguration对象来处理头部字段和参数。另外,每个方法返回一个URLSessionDataTask对象以允许在请求中途取消请求。

JSON方法

这些方法用于与发送和接收JSON的端点交互。所有请求都有一个在请求完成后执行的JSONCompletion对象。这些方法需要指定一个通用类型来指定预期的JSON类型。例如,一个返回数组的GET调用会调用以下内容

get { (json: [Any]?, response, error) in

}

如果期望返回数据是字典,则相应的GET调用将写成如下形式

get { (json: [String: Any]?, response, error) in

}

这可以支持由JSONSerialization.jsonObject(with:options:)输出任何类型。如果调用应返回DataUIImage,则有一组专门用于检索这些的方法。详见下文的数据方法和图像方法。如果类型未知或更倾向于1.x的行为版本,可以指定为Any?类型。

删除

在提供的端点上进行删除请求。

获取

在提供的端点上执行GET请求。

发布

在提供的端点上执行POST请求。此方法有一个可选的json参数。此对象必须是有效的JSON对象。这将被转换为数据并与请求一起发送。

更新

在提供的端点上执行PUT请求。此方法有一个可选的json参数。此对象必须是有效的JSON对象。这将被转换为数据并与请求一起发送。

数据处理方法

目前有一个从URL获取数据的方法。此方法有一个DataCompletion对象,当请求完成时执行。这个方法不会尝试以任何方式解析或格式化数据,只是简单地返回由网络服务发送的数据。

获取数据

此方法接受一个完整的URL,并将返回网络服务返回的任何数据,而不会以任何方式对其进行格式化或操作。

图像处理方法

目前有一个从URL获取图像的方法。此方法有一个ImageCompletion对象,当请求完成时执行。

获取图像

与其他方法不同,该方法不是从一个端点字符串动态构建URL,而是直接使用远程图像的完整URL。当方法完成后,将通过ImageCompletion对象返回图像或错误。


请求配置

请求配置对象允许根据每个请求来设置头和参数。如果相同的头在请求配置和URLSessionConfiguration对象中都出现了,则请求配置中的头将会优先。