API,应用程序接口,也可以叫应用程序界面,或者简称为应用接口。应用程序的设计可以相当复杂,但最终的用户并不需要知道应用程序的内部到底是如何工作的,你只需要给用户提供一些操作接口,再告诉用户怎么用这些接口就行了。
用个现实例子,比如手机上的音量按键,就像是应用程序里的接口,用户不用知道按下按键具体发生的事情,这是工程师研究的东西,用户只知道按下这个按钮可以增大音量,或者减小音量。再回到程序设计来也是一样的,你的应用提供了一些接口给用户,用户可以通过这些接口去做一些事情。
REST,就是一种应用接口的设计风格。RESTful 是 REST 的形容词形式,RESTful API 指的是 REST 风格的接口。一般 REST 与 RESTful 是一个意思,区别就是一个是名词,一个是形容词。
如果有人对你说,我的应用支持 REST 接口。他的意思就是,你可以通过 HTTP + 具体的动作去处理他的应用上的一些资源(Resources),比如文章,评论,文件,用户 ...
动作有几个类型,比如获取(GET),提交(POST),修改(PUT / PATCH),删除(DELETE)。比如你想得到一个课程列表资源,完成这项任务可以用 HTTP 的 GET 方法去请求应用提供的某个地址(接口 / API)。GET/api/v1/courses。我要删除掉 ID 号是 13 的课程资源,DELETE/api/v1/courses/13。
一个应用支持 REST 接口,在另一个应用上可以使用这个应用提供的 REST 接口去做一些事情。比如你可以用阿里云的 OSS(对象存储) 服务提供的 REST 接口,去处理上传文件到 OSS 服务上。有时候这个 REST 接口是我们自己设计的,比如应用的后端服务提供 REST 接口,应用的前端,移动端可以使用后端服务提供的 REST 接口。