RESTful API

什么是RESTful API

  • restful是一套编写接口的协议,协议规定如何编写以及如何设置返回值、状态码等信息

  • 特点:

    1. restful:给用户一个url,根据method不同在后端做不同的处理,比如:post 创建数据、get获取数据、put和patch修改数据、delete删除数据
    2. no rest: 给调用者很多url,每个url代表一个功能,比如:add_user/delte_user/edit_user/
  • 版本,来控制让程序有多个版本共存的情况,版本可以放在 url、请求头(accept/自定义)、GET参数

  • 状态码,200/300/400/500

  • url中尽量使用名词,restful也可以称为“面向资源编程”

  • api标示:api.luffycity.com

你的restful是怎么学的?

  • 因为之前公司要写这样项目
  • 接口
  • 公司要做前后端分离的项目
  • 公司要做微信小程序的开发
  • 所以就开始学习restful规范,看的技术文章 阮一峰的博客学到的规范

你知道RESTful API吗?他的优点和缺点是啥?有没有替换方案?

  • 早期Web是通过服务端生成页面的,Web间的数据传输比较简单,后来,随着企业业务的不断发展,出现了WebService技术
  • 早期的WebService技术异常繁琐,基本都是使用XML,基于SOAP协议进行通讯
  • 随着WebService技术的发展,有一种WebService技术,受到了大家的喜爱,他就是RESTful API WebService
  • REST包含三要求,即资源(Resources)、表现层(Representation)、状态转化(State Transfer)
    1. 资源:就是一个网络上的实体,一个链接,一个图片,一个视频,任务网络上的东西,都可以确定为一个资源,URI就是它的地址
    2. 表现层:把资源具体展现中的形式,就叫表现层,比如文本使用txt、html、xml、json格式表现,图片使用jpg、gif、png格式表现
    3. 状态转化:通过操作,使得客户端和服务端对某个资源在表现层上展现出来的不同状态,叫状态转化,而操作的手段,只能是通过HTTP协议,比如用GET、POST、PUT、DELETE请求状态

完整的RESTful API组成和定义

  • 协议:一般是指HTTP或HTTPS协议
  • 域名:https://www.google.com
  • 版本号:google.com/v1/
  • 路径:google.com/v1/persons
  • 操作:GET、POST、PUT、PATCH、DELETE等
  • 过滤:?KaTeX parse error: Expected 'EOF', got '&' at position 8: limit=3&̲offset=10&$page=1
  • 状态码:
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
  • 返回结果

缺点

  • 过多的接口,就导致接口爆炸,过少的接口,就导致信息臃肿
  • 前端在请求数据时,其实有时候,需要多个资源的集合,有时候又不需要单个资源的所有数据,前端希望能根据我的请求,返回特定的资源数,这时候,RESTful API明显就力不从心了

优点

  • 非常好用、简单且强大,它把任何当成一个资源,非常适合微服务提供的请求返回
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaobangsky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值