RestFul API学习

本文详细介绍了RESTful架构的基本概念,包括资源、表现层、状态转移和统一接口。阐述了HTTP方法在资源操作中的角色,如GET、POST、PUT和DELETE,并给出了错误状态码的示例。此外,讨论了接口设计规则,强调URI应使用名词和复数,以及如何通过Accept和Content-Type字段处理数据类型。内容涵盖了接口设计、状态码和动作设计规则,为API设计提供了指导。
摘要由CSDN通过智能技术生成

基本概念

REST(resource representational state transfer)资源表述性状态转移

Reseful既是用rest理论的实现

  • Resource
    在网络上一切皆资源,每一种资源都有一个特定的URI去指向它
    例如:
    http://www.wolfcode.cn/news
    http://www.wolfcode.cn/departments

  • Representation
    把资源具体表现出来的形式,叫做他的表现层(Respresentation),例如文本可以txt格式表现,图片可以jpg格式表现
    URI只代表资源的实体不代表他的表现形式,他的具体表现形式,应该在HTTP请求的头信息中用accept和content-type字段指定,这两个字段才是对表现层的描述
    Accept:application/json 浏览器->后台
    Content-type:application/json 响应格式
    在这里插入图片描述
    资源的表现形式一般在http的头部信息表现出来

  • Transfer
    访问一个网站,就代表了客户端和服务器的一个互动过程,在这个过程中,涉及到了数据和状态的变化
    HTTP 是无状态协议,也就是说,所有的状态都保存在服务器端,因此,如果客户端想要操作服务器,必须通过某种手段,让服务器发生“状态转化”,而这种转化是建立在表现层之上的,故就是“表现层状态转化”
    在这里插入图片描述
    在客户端和服务器的交互过程中,涉及到状态的转化,我们是通过某种手段(ajax,form等)让它进行转化

  • Uniform interface
    REST要求:必须通过统一的接口来对资源执行各种操作,对于每个资源只能执行一组有限的操作。
    在这里插入图片描述
    我们会使用7个HTTP方法来体现我们现在对资源的操作,不再在uri地址上体现



关于应用接口

系统的接口:很多情况下,需要把系统的功能作为服务暴露给其他应用使用或者给移动端使用,就需要把系统中的服务作为接口暴露出去,一般分为公工接口(发短信,天气服务)和私用接口(公司内部使用的)
京东万象:https://wx.jdcloud.com/api



资源设计规则

在这里插入图片描述
在restful架构中,每个网址代表一种资源,所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表名对应,一般来说,数据库中的表都是同种记录的集合,所以uri中的名词也应该使用复数

在这里插入图片描述
设计资源的接口,接口uri一般选用的是名词,一般和数据库表名相同,并且是用复数。
/images 图片资源的接口 post 上传,delete 删除



动作设计规则

GET(SELECT ):从服务器取出资源(一项或多项)
POST(CREATE):在服务器新建一个资源
PUT(UPDATE):在服务器更行资源(客户端提供改变后的完整资源),PUT更新整个对象
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性【补丁】),PATCH更新个别属性
DELETE(DELETE):从服务器删除资源

HEAD:获得一个资源的元数据,比如说一个资源的hash值或者最后修改日期
OPTIONS:获得客户端针对一个资源能够实施的操作;(获得该资源的api(能过对资源做什么操作的描述))

在这里插入图片描述
获取某个部门的所有员工:
GET /departments/ID/employees


动作设计规则

返回值类型:
在这里插入图片描述
可以参考,不一定非得有


常见状态码
REST的另一重要部分就是为既定好请求的类型来响应正确的状态码。如果你对HTTP状态码陌生,以下是一个简易总结。当你请求HTTP时,服务器会响应一个状态码来判断你的请求是否成功,然后客户端应如何继续。以下是四种不同层次的状态码:

  • 2xx = Success(成功)
  • 3xx = Redirect(重定向)
  • 4xx = User error(客户端错误)
  • 5xx = Server error(服务器端错误)

以下是一些最重要的状态码

请求成功的状态码:

-200 – OK (默认的)
201 – Created(已创建)
202 – Accepted (已接受:常用语删除请求)


客户端错误状态码:

  • 400 –请求出错(语法格式有误或服务器无法理解此请求)
  • 401 – 未授权(需要登录)
  • 404 – 找不到 (找不到所请求的文件或脚本)
  • 405 – 不允许此方法(错误的 HTTP方法)
  • 409 – 冲突 (IE尝试以PUT请求创建相同的资源时)


accept 和 content-type

在这里插入图片描述
Accept:只会出现在请求中,代表客户端希望接收数据的类型
我发请求过去,希望得到 text/html,application/xhtml=xml、、、、、这样的数据

Content-type:数据的格式类型
出现Request中:(假如:context-type:json)既我这个请求发过去带的是json形式的数据
出现在response:代表后台响应的数据是指定的数据类型
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值