我的应用程序非常频繁地调用api,每次创建带有一些细节的头部分
标题详细信息类型
- 代币可能在
- 未更改的值,如设备型号
- 随版本变化的值:版本名称&捆绑包编号
- 我从用户默认值中获取的值
我的代码看起来像:
var header: [String: Any] = [:]
header[Constant.Token] = getToken() // Can be changed during each call
header[Constant.Model] = getModel() // Device model remains same
header[Constant.Version] = getVersion() // Fetch version
header[Constant.Build] = getBuild() // Fetch build
..
..
..
..
..
..
....
// Attach header
什么是正确的方法来使用一些哈希值并找到diff,以及在需要的时候从头开始制作字典。
有关不会更改的信息,如应用程序版本、内部版本号等。您不必为每个api调用读取/创建这些头值。
您可以将它们初始化为defaultHTTPHeaders
一次,并用于所有api调用。
let defaultHTTPHeaders: [String: Any] = {
return [
Constant.Model : getModel(),
Constant.Version : getVersion(),
Constant.Build : getBuild(),
]
}()
对于像Constant.Token
这样可以更改的信息,您可以继续做今天的事情。所以你更新的实现可能看起来像-
var headers = self.defaultHTTPHeaders
headers[Constant.Token] = getToken()
通过这种方式,您只对必要的标头(可以更改(重复此任务。