zoukankan      html  css  js  c++  java
  • restful接口和普通接口有啥区别_RESTful接口

    1.什么是RESTful

    REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一种标准,是一种思想.即满足这些约束条件和原则的应用程序或设计就是 RESTful

    2.RESTFUL特点

    1、每一个URI代表1种资源;

    2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;

    3、通过操作资源的表现形式来操作资源;

    4、资源的表现形式是XML或者HTML;

    5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

    3.HTTP动词

    这些动词一般默认为:

    GET 根据用户id查询用户数据

    POST 新增用户

    PUT 修改用户信息

    DELETE 删除用户信息

    285d4f0cd7afdbd7a9fe270160a1e1dc.png

    f20d7f41208dbe9f9e8d3c806beb246a.png

    常用的HTTP动词:

    GET(SELECT):从服务器取出资源(一项或多项)。

    POST(CREATE):在服务器新建一个资源。

    PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)(修改全部数据)

    PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)(修改部分数据)

    DELETE(DELETE):从服务器删除资源。

    不常用的HTTP动词:

    HEAD:获取资源的元数据。

    OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。

    例子:

    GET /zoos:列出所有动物园

    POST /zoos:新建一个动物园

    GET /zoos/ID:获取某个指定动物园的信息

    PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)

    PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)

    DELETE /zoos/ID:删除某个动物园

    GET /zoos/ID/animals:列出某个指定动物园的所有动物

    DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

    4.过滤信息

    如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。

    下面是一些常见的参数。

    ?limit=10:指定返回记录的数量

    ?offset=10:指定返回记录的开始位置。

    ?page=2&per_page=100:指定第几页,以及每页的记录数。

    ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。

    ?animal_type_id=1:指定筛选条件

    参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?zoo_id=ID 的含义是相同的。

    5.状态码

    服务器向用户返回的状态码和提示信息,常见的有以下一些:

    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 - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

  • 相关阅读:
    文件监控(教学版)
    设备读写 之 直接方式(Direct I/O)
    过滤驱动加密文件(代码)
    Why ASMLIB and why not?
    SQL调优:Clustering Factor影响数据删除速度一例
    监控一个大事务的回滚
    crsctl status resource t init in 11.2.0.2 grid infrastructure
    Script:收集Oracle备份恢复信息
    Only ARCH Bgprocess may create archivelog?
    11g新特性:A useful View V$DIAG_INFO
  • 原文地址:https://www.cnblogs.com/R-bear/p/15048853.html
Copyright © 2011-2022 走看看