Paul Cantrell

1pod

Siesta

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。

文档

许可证:MIT

  • Swift