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 接口。
相关资源
宁皓网提供了一些课程,帮你理解,使用,设计 REST 接口。订阅宁皓网,可以在线学习所有相关课程。
- Drupal 8:REST 接口
- WordPress REST 接口
- Node.js:REST 接口
- RESTful 资源控制器 - Resource Controllers 《 Laravel 5:控制器 》
- Rails:控制器
- API:Application programming interface
- REST:Representational State Transfer
评论
浩哥,有计划Go相关课程吗?
6 年 12 个月 以前
哈 ~ 暂时还没有啊。
6 年 12 个月 以前