背景: 后端工程师有时候忙,不能给前端工程师准备合适的开发数据,
这个时候,就需要 Mock Server 了
分两步,
- 获取数据,根据自己的需求,修改数据
- 提供数据
第一步,获取数据
根据自己开发的需求修改
先把接口请求到的 JSON 落库,
// json 转 plist, 放在沙盒的 Document 目录下
do{
let json = try JSONSerialization.jsonObject(with: self, options: JSONSerialization.ReadingOptions())
if let dict = json as? [String: Any]{
let src = dict as NSDictionary
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let path = documentsURL.appendingPathComponent("one.plist")
let result = src.write(to: path, atomically: true)
print(result)
}
}
catch let error{
print("gg 了, \(error)")
}
如果是直接跑模拟器,打印路径,直接就可以找到 plist .
直接跑真机,可以通过 Woodpecker, 同步文件到 Mac 上。
第二步,提供数据
先要把下载获取到的 json 文件,添加在 project 里面,
run 的时候,就打在 Bundle 里面了
func request(_ callback: @escaping (GeneralSingle<PracticeList>) -> Void){
let debug = true
guard debug == false else {
// 新的接口请求逻辑,走本地的,包含在 Bundle 里面的 plist 文件
do{
if let path = Bundle.main.url(forResource: "one", withExtension: "plist"){
let data = try Data(contentsOf: path)
let decoder = PropertyListDecoder()
let info = try decoder.decode(GeneralSingle<PracticeList>.self, from: data)
callback(info)
}
}
catch let error as NSError{
print(error)
}
return
}
// 原来逻辑,走网络请求
AF.request(RequsetURL.youOwn, method: .get, headers: AF.bearer).response { (resp) in
// ...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。