Siesta是一个优雅的REST API抽象,它可以解开状态困扰并大大简化应用程序代码。这是一种与传统的以请求为中心的方法相比的面向资源的替代方案。
Siesta通过提供RESTful资源的状态的可观测模型来结束客户端网络请求管理中的状态困扰。该模型回答以下三个基本问题
- 这个资源最新的数据是什么,如果有?
- 最新的请求是否产生了错误?
- 是否有正在进行的请求?
…然后在这些问题的答案发生变化时提供通知。
Siesta通过将答案包裹在一个美丽的包装中处理所有转换和边界情况,让您集中精力在您的UI上。
统计数据
- 操作系统: iOS 8+, OS X / macOS 10.11+
- 编程语言: 使用Swift编写,支持使用Swift和Objective-C的应用程序
- 工具要求: Xcode 8, Swift 3.0
- 许可证: MIT
特性
- 将视图和模型的生命周期从网络请求的生命周期中解耦
- 将请求发起与请求配置解耦
- 消除易出错的跟踪逻辑
- 消除重复的网络请求
- 统一处理所有错误:编码、网络、服务器端和解析
- 高度可扩展的多线程响应反序列化
- 具有透明内建解析(您可以选择关闭)的JSON、文本和图像
- 平滑的进度报告,包括上传、下载以及延迟
- 透明处理Etag / If-Modified-Since
- 提供预先配置的UI辅助工具,用于加载和错误处理、远程图像
- 易于调试的自定义日志记录
- 使用Swift编写,具有以Swift为中心的API,但…
- …也很好地从Objective-C工作,多亏了兼容层。
- 轻量级。不会获得灵性并试图摧毁您。
- 稳健的回归测试
- 文档
它的作用
- 它不会重新发明网络。 Siesta将网络操作委托给您的首选库(默认情况下为
URLSession
,或者Alamofire,或者注入您自己的自定义适配器)。
- 它不会隐藏HTTP。 相反,Siesta力求揭示HTTP的全部丰富性,同时提供便利来简化常见的使用模式。您可以为满足您的特定需求开发抽象层,或者直接使用Siesta的请求和响应实体的美观API。
- 它不会执行响应与模型映射。 这意味着Siesta不会约束您的响应模型,或强迫您拥有任何模型。添加响应转换器以使用您首选的模型库,或者直接使用解析的JSON。
文档