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 在线文档