• resful规范: 进行数据交换时的代码潜规则


    目前主流的三种web服务交互方案:

    REST (Representational State Transfer) 表征性状态转移
    SOAP (Simple Object Access Protocol)简单的对象访问协议
    XML-RPC (XML Remote Procedure Call)基于XML的远程过程调用

    但最为流行最为常用就是restful,而当一个架构符合REST的约束条件和原则,我们就称它为restful架构。
    为了避免明文传输,更好的维护数据传输时的安全性,restful规范推荐使用https替代http。

    1.restful规范就是在想要完成程序间数据交互的代码时所需要的遵循的规范,它视网上的一切数据为资源,所有的操作都是在对资源进行增删改查,所以这是一种面向资源式的编程。
    2..如果说数据库就是资源库,那么URL就是用于检索的目录和直达资源的高速路。为了避免歧路亡羊的事情发生,所以在编写URL的时候必须遵循固定的规范,表达出的信息也要清晰明确,不至于产生歧义。
    在URL中要明确体现一下几点:
    1.api标识:http://www.xxxx.com/api/...
    2.版本信息:http://www.xxxx.com/api/v1...
    3.用名词而不是动词来表示所访问资源的种类,所用名词往往与数据库表格的名称相同

    3.如果要通过在url中添加一些筛选条件,实现对资源的精准定位和对状态的精确控制,一般是以?+关键字= int整型 (需要在前段做好正则匹配)
    http://www.luffycity.com/api/user/?page=1&type=9 #

    4.restful规范下的URL代码比FBV下的URL要更加精简,只需要一个URL就能完成所有操作,因为他是根据不同的请求方法来判断对数据进行何种操作,而不需要分别为增删改查各设置一个URL。
    5. 返回值:要以json的形式返回值,delete的返回值为空
    GET http://www.luffycity.com/api/user/
    [
    {'id':1,'name':'alex','age':19},
    {'id':1,'name':'alex','age':19},
    ]
    POST http://www.luffycity.com/api/user/
    {'id':1,'name':'alex','age':19}

    	GET http://www.luffycity.com/api/user/2/
    		{'id':2,'name':'alex','age':19}
    		
    	PUT http://www.luffycity.com/api/user/2/
    		{'id':2,'name':'alex','age':19}
    	
    	PATCH https//www.luffycity.com/api/user/2/
    		{'id':2,'name':'alex','age':19}
    		
    	DELETE https//www.luffycity.com/api/user/2/
    		空
    

    6.给用户返回状态码:
    - 200,成功
    - 300,301永久 /302临时
    - 400,403拒绝 /404找不到
    - 500,服务端代码错误

    1. 操作异常时,要返回错误信息

       {
           error: "Invalid API key"}
      
    2. 要为可能跳转的下一个网页要提供接口:Hypermedia AP
      {
      'id':2,
      'name':'alex',
      'age':19,
      'depart': "http://www.xxx.com/api/user/30/"
      }

  • 相关阅读:
    开源框架.netCore DncZeus学习(五)下拉树的实现
    开源框架.netCore DncZeus学习(四)项目升级
    github下载更新代码到本地
    AndroidStudio替换空行
    Ext.net获取选中行数据
    OZCode
    禁止密码显示框
    Android layout_weight理解
    微信页面关于点击按钮关注公众号放到链接里无关注按钮
    进入页面就触发了popstate事件。
  • 原文地址:https://www.cnblogs.com/ayongxin93/p/11923740.html
Copyright © 2020-2023  润新知