目录
Restful API
了解什么是
API
和
REST
掌握
RESTful api
设计原则
了解
RPC
1. 什么是 API
API
(
Application Programming Interface
,应用程序编程接口)是一些预先定义的函数或者接口,目的是提供应用 程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无须访问源码,或理解内部工作机制的细节。
要实现一个
API
服务器,首先要考虑两个方面:
API
风格和媒体类型
。
Go
语言中常用的
API
风格是
RPC
和
REST
,常用的媒体类型是
JSON
、
XML
和
Protobuf
。
在
Go API
开发中常用的组合是
gRPC + Protobuf
和
REST + JSON
。
2. REST 简介
REST
代表表现层状态转移(
REpresentational State Transfer
),由
Roy Fielding
在他的论文中提出。
REST
是一 种软件架构风格,不是技术框架,REST
有一系列规范,满足这些规范的
API
均可称为
RESTful API
。
REST
规范中有 如下几个核心:
1. REST
中一切实体都被抽象成资源,每个资源有一个唯一的标识
—— URI
,所有的行为都应该是在资源上的
CRUD
操作
2.
使用标准的方法
(GET/POST/PUT/DELETE)
来更改资源的状态,常见的操作有:资源的增删改查操作
3.
无状态:这里的无状态是指每个
RESTful API
请求都包含了所有足够完成本次操作的信息,服务器端无须保持
Session
无状态对于服务端的弹性扩容是很重要的。
REST
风格虽然适用于很多传输协议,但在实际开发中,
REST
由于天生和
HTTP
协议相辅相成,因此
HTTP
协议已经
成了实现
RESTful API
事实上的标准。在
HTTP
协议中通过
POST
、
DELETE
、
PUT
、
GET
方法来对应
REST
资源的
增、删、改、查操作,具体的对应关系如下:
HTTP方法 | 行为 | URl | 示例说明 |
---|---|---|---|
GET | 获取资源列表 |
/users
|
获取账号列表 |
GET | 获取一个具体的资源 |
|