http REST 简介
REST 代表表现层状态转移(REpresentational State Transfer),由 Roy Fielding 在他的 论文 中提出。REST 是一种软件架构风格,不是技术框架,REST 有一系列规范,满足这些规范的 API 均可称为 RESTful API。REST 规范中有如下几个核心:
- 1, REST 中一切实体都被抽象成资源,每个资源有一个唯一的标识 —— URI,所有的行为都应该是在资源上的 CRUD 操作
- 2, 使用标准的方法来更改资源的状态,常见的操作有:资源的增删改查操作
- 3, 无状态:这里的无状态是指每个 RESTful API 请求都包含了所有足够完成本次操作的信息,服务器端无须保持 Session
无状态对于服务端的弹性扩容是很重要的。
REST 风格虽然适用于很多传输协议,但在实际开发中,REST 由于天生和 HTTP 协议相辅相成,因此 HTTP 协议已经成了实现 RESTful API 事实上的标准。在 HTTP 协议中通过 POST、DELETE、PUT、GET 方法来对应 REST 资源的增、删、改、查操作,具体的对应关系如下:
HTTP | 方法 | 行为 | URI | 示例说明 |
---|---|---|---|---|
GET | 获取资源列表 | /users | 获取用户列表 | |
GET | 获取一个具体的资源 | /users/admin | 获取 admin 用户的详细信息 | |
POST | 创建一个新的资源 | /users | 创建一个新用户 | |
PUT | 以整体的方式更新一个资源 | /users/1 | 更新 id 为 1 的用户 | |
DELETE | 删除服务器上的一个资源 | /users/1 | 删除 id 为 1 的用户 |
https://github.com/confucianzuoyuan/go-tutorials
目录 | 介绍 |
---|---|
demo01 | 实战:启动一个最简单的 RESTful API 服务器 |
demo02 | 实战:配置文件读取 |
demo03 | 实战:记录和管理 API 日志 |
demo04 | 实战:初始化 MySQL 数据库并建立连接 |
demo05 | 实战:自定义业务错误信息 |
demo06 | 实战:读取和返回 HTTP 请求 |
demo07 | 实战:用户业务逻辑处理(业务处理) |
demo08 | 实战:HTTP 调用添加自定义处理逻辑 |
demo09 | 实战:API 身份验证 |
demo10 | 进阶:用 HTTPS 加密 API 请求 |
demo11 | 进阶:用 Makefile 管理 API 项目 |
demo12 | 进阶:给 API 命令增加版本功能 |
demo13 | 进阶:给 API 增加启动脚本 |
demo14 | 进阶:基于 Nginx 的 API 部署方案 |
demo15 | 进阶:go test 测试你的代码 |
demo16 | 进阶:API 性能分析 |
demo17 | 进阶:生成 Swagger 在线文档 |