看完本文您将能够实现下面效果
看完本文您将掌握的技能
- 掌握测试API方法
- 掌握从服务器获取JSON或文本
- 将JSON转为struct类型
- 将数据存储到手机里面
- 从手机里读取存储的数据
什么是API
API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
如何调用API
下面我们就以icanhazdadjoke网站的API接口为例,来演示一下如何通过API获取数据。
icanhazdadjoke网站介绍
icanhazdadjoke.com是互联网上最全的英语笑话平台。现在支持许多不同平台的基础,以确保您无论身在何处都可以访问所需的英文笑话
获取方式
我们可以使用macOS系统里面自带curl工具来进行测试。
1、点击“启动台” 选择“其他”
2、点击“终端”
3、在终端中输入获取JSON文件方式
输入命令
curl -H "Accept: application/json" https://icanhazdadjoke.com/
返回数据
{
"id":"ClGY8xc2EBd",
"joke":"What do you give a sick lemon? Lemonaid.",
"status":200
}
上面就是标准的JSON文件,joke字段就是笑话文本。
4、获取纯文本的方式
curl -H "Accept: text/plain" https://icanhazdadjoke.com/
返回结果
Remember, the best angle to approach a problem from is the "try" angle
小节
本小节,我们了解什么是API,并通过获取英文笑话的demo体验了如何从服务器获取数据。下面将进入我们SwiftUI实战部分,我们将使用SwiftUI来开发一个能够获取数据、解析数据和展示数据的app。
SwiftUI 制作个英文笑话App
1、制作个struct来存储笑话
struct Joke: Codable,Identifiable{
let id = UUID()
var joke: String
var status: Int
}
代码解读
- Codable
Codable是一种类型,该类型可以将自己存储到文件和网络等存储介质。Codable定义形式如下:
typealias Codable = Decodable & Encodable
Codable是Encodable和Decodable协议的类型别名。当您将Codable用作类型或通用约束时,它会与同时符合两种协议的任何类型匹配。
- Identifiable
Identifiable是协议类型,实现该协议类型将具有唯一的标识。通常我们需要在实现Identifiable类型中添加下面的代码:
let id = UUID()
2、请求笑话的函数
(1)请求纯文本数据