1. REST 是Repersentational State Transfer的缩写

翻译为"表述性状态传递",那么什么是表述性状态传递呢?为了理解这个词语,我们从"RESTful是什么"这个问题开始讲起。

REST不是标准,是一种设计风格。按照这个设计风格设计出来的API,就叫REST API。

2. 所有的东西都是资源,所有操作都通过对资源的增删改查(CURD)实现

这个学过编程的应该很好理解,万物皆对象,在REST中就是"万物皆资源",每个资源对应一个唯一的全局资源的定位符(URI),资源是整个REST的基础。其次,就是客户端可以对资源进行管理,所有的管理操作都是通过HTTP的Action来实现。

3. 对资源的增删改查对应URL的操作(POST,DELETE,PUT,GET)

4. 所有操作都是无状态的

也就是不要使用Session

RESTful API示例

下面举几个RESTful API的例子,假设下面是一个学校学生信息的项目

  • URL: http://localhost/student
  • GET /student 获取学生列表
  • POST /student 新学员报到
  • GET /student/110 获取ID为110的学生信息
  • PUT /student/110 修改ID为110的学生信息
  • DELETE /student/110 删除ID为110的学生信息
  • GET /student/110/home 获取ID为110的学生的家庭信息

登录/注销该怎么设计API呢?

思考一下,我们登录,肯定是为了登录后做某些操作,实际上就是向服务器请求一些授权。那么注销呢,就是请求服务器删除这个授权。所以不难理解:

POST /teacher 登录

DELETE /teacher 注销

URI命名总结规律就是:

/资源名称

/资源名称/{资源ID}

/资源名称/{资源ID}/子资源名称

/资源名称/{资源ID}/子资源名称/{子资源ID}

最新文章

  1. 走进AngularJs(一)angular基本概念的认识与实战
  2. Android近场通信---高级NFC(二)
  3. Unix: How to Install BerkeleyDB From Source
  4. cmd中添加snmpd被控
  5. Mysql ibd文件恢复指南
  6. OPC协议解析-OPC客户端与服务器通讯解析
  7. jetty启动设置端口
  8. Centos6.5安装中文支持和中文输入法---VIM编辑器中文支持
  9. Django之Cookie、Session、CSRF、Admin
  10. Fiddler常用命令
  11. sqlmap tamter
  12. EF CodeFirst学习笔记001--主键约定
  13. Tornado初探
  14. Java中带包(创建及引用)的类的编译
  15. 【Unity】第9章 粒子系统
  16. ASP.NET Core真实管道详解[1]
  17. 从一到面试题了解js异步机制:setTimeout 和 Pronmise
  18. Spring Boot 使用IntelliJ IDEA创建一个web开发实例(二)
  19. 安卓Android第三方登录-QQ登录
  20. Windows 10 四月更新,文件夹名称也能区分大小写?

热门文章

  1. 从零开始搭建react应用
  2. C# 斐波那契数列 第n项数字/前n项的和
  3. Invalid prop: custom validator check failed for prop "pagerCount"
  4. another-redis-desktop-manager
  5. springboot自动装备date类型报错问题
  6. BZOJ 1006 完美消除序列&最大势算法&弦图
  7. 特殊字符的过滤方法,防sql防注入代码的过滤方法
  8. LeetCode01 - 两数之和(Java 实现)
  9. linux shell介绍
  10. 生产问题之泛型自动推断(JDK1.7新特性)