zoukankan      html  css  js  c++  java
  • restful接口

    就是用URL定位资源,用HTTP描述操作。
    看Url就知道要什么
    看http method就知道干什么
    看http status code就知道结果如何
     

    主要是针对资源进行资源定位和资源操作。

    资源定位:url的格式,url中不带参数。参数从url的路径中获得。

    资源操作:使用httpget、postputdelete来实现对资源的,查询、修改、添加、删除。

     

    rest协议是面向资源的

    假如要管理一些用户,那么将用户看作是一种资源:

    get /users/{userId} 获取userId对应的user信息
    post /users 创建一个新的user
    put /users/{userId} 更改userId对应的user信息
    delete /users/{userId} 删除userId对应的user。

    soap是面向服务的

    还是管理用户,将对用户的操作看成服务:

    post /users/getUser
    post /users/creatUser
    post /users/updateUser
    post /users/deleteUser
     

    首先要明确一点:REST 实际上只是一种设计风格,它并不是标准。(所以你可以看到网上一大堆的各种最佳实践,设计指南,但是没有人说设计标准)。aisuhua/restful-api-design-references · GitHub

    说说几个重要的概念:

    1、REST 是面向资源的,这个概念非常重要,而资源是通过 URI 进行暴露。
    URI 的设计只要负责把资源通过合理方式暴露出来就可以了。对资源的操作与它无关,操作是通过 HTTP动词来体现,所以REST 通过 URI 暴露资源时,会强调不要在 URI 中出现动词。

    比如:左边是错误的设计,而右边是正确的
    GET /rest/api/getDogs --> GET /rest/api/dogs 获取所有小狗狗 
    GET /rest/api/addDogs --> POST /rest/api/dogs 添加一个小狗狗 
    GET /rest/api/editDogs/dog_id --> PUT /rest/api/dogs/:dog_id 修改一个小狗狗 
    GET /rest/api/deleteDogs/dog_id --> DELETE /rest/api/dogs/:dog_id 删除一个小狗狗 
    

    左边的这种设计,很明显不符合REST风格,上面已经说了,URI 只负责准确无误的暴露资源,而 getDogs/addDogs...已经包含了对资源的操作,这是不对的。相反右边却满足了,它的操作是使用标准的HTTP动词来体现。

    2、REST很好地利用了HTTP本身就有的一些特征,如HTTP动词、HTTP状态码、HTTP报头等等
    REST API 是基于 HTTP的,所以你的API应该去使用 HTTP的一些标准。这样所有的HTTP客户端(如浏览器)才能够直接理解你的API(当然还有其他好处,如利于缓存等等)。REST 实际上也非常强调应该利用好 HTTP本来就有的特征,而不是只把 HTTP当成一个传输层这么简单了。

    HTTP动词
    GET     获取一个资源 
    POST    添加一个资源 
    PUT     修改一个资源 
    DELETE  删除一个资源 
    

    实际上,这四个动词实际上就对应着增删改查四个操作,这就利用了HTTP动词来表示对资源的操作。

    HTTP状态码
    200 OK 
    400 Bad Request 
    500 Internal Server Error
    
    在 APP 与 API 的交互当中,其结果无非就三种状态:
    • 所有事情都按预期正确执行完毕 - 成功
    • APP 发生了一些错误 – 客户端错误
    • API 发生了一些错误 – 服务器端错误

    这三种状态与上面的状态码是一一对应的。

    HTTP报头
    Authorization 认证报头 
    Cache-Control 缓存报头 
    Cnotent-Type  消息体类型报头 
    ......
    

    报头还有很多,不一一列举。HTTP报头是描述HTTP请求或响应的元数据,它的作用是客户端 与 服务器端进行相互通信时,告诉对方应该如何处理本次请求。

     
     
  • 相关阅读:
    C# 字段 属性 方法 三霸主齐上阵
    C# 项目之总结,浓缩才是精华
    C# 语法 重中之重
    岁月流逝,C#成为我们IT精英永恒不变的经典
    pv:快餐厅4类职员正确并发运行的程序——用pv实现有向图的前驱关系哦!
    pv错题:用pv操作实现旅客,汽车之间的同步关系——北航2018考研计算机!!!!!!!!我还很不熟练,奋斗吧少年!!!!!!
    windows 的 DMA
    pv打卡:生产者消费者问题扩展——>南航2002pv习题哦
    冷门的OS知识:中断——这个我多大熟练qwq!
    Unix混合索引结构_文件系统_文件的组织_文件的物理结构_多级索引文件——>相关的小计算题!!!!!!重点重点重点!!!!!!
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/9239907.html
Copyright © 2011-2022 走看看