WSApiInvoker Save

封装 AFNetworking 的网络模块

Project README

WSApiInvoker

一个封装AFNetworking的网络请求Demo

简介

  • AFWSApiInvoker

    主要负责调用AFN做网络请求以及返回错误信息和请求结果

  • ApiInvoker

    所有api请求类的父类,用于填充请求相关信息以及统一接口

  • ApiRequest

    网络请求实例 包含请求的所有信息

  • ApiResponse

    服务器回应实例

  • WSApi

    单例 继成ApiInvoker,负责提供请求相关接口

  • WSDevApi

    分类api,继承WSApi,负责提供分类里的请求接口

目录文件

其他探讨

  1. 交付什么样的数据给业务层?

我见过非常多的App的网络层在拿到JSON数据之后,会将数据转变成对应的对象原型。注意,我这里指的不是NSDictionary,而是类似Item这样的对象。这种做法是能够提高后续操作代码的可读性的。在比较直觉的思路里面,是需要这部分转化过程的,但这部分转化过程的成本是很大的,主要成本在于:

1.数组内容的转化成本较高:数组里面每项都要转化成Item对象,如果Item对象中还有类似数组,就很头疼。
2.转化之后的数据在大部分情况是不能直接被展示的,为了能够被展示,还需要第二次转化。
3.只有在API返回的数据高度标准化时,这些对象原型(Item)的可复用程度才高,否则容易出现类型爆炸,提高维护成本。
4.调试时通过对象原型查看数据内容不如直接通过NSDictionary/NSArray直观。
5.同一API的数据被不同View展示时,难以控制数据转化的代码,它们有可能会散落在任何需要的地方。

其实我们的理想情况是希望API的数据下发之后就能够直接被View所展示。首先要说的是,这种情况非常少。另外,这种做法使得View和API联系紧密,也是我们不希望发生的。

有问题,欢迎提issue,或者微博探讨

Open Source Agenda is not affiliated with "WSApiInvoker" Project. README Source: yuhanle/WSApiInvoker
Stars
24
Open Issues
0
Last Commit
8 years ago

Open Source Agenda Badge

Open Source Agenda Rating