zoukankan      html  css  js  c++  java
  • 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/"
      }

  • 相关阅读:
    正则表达式中匹配中文
    计算机中的颜色——颜色概述
    人物系列Claude Shannon
    reading listfrom other blog
    how to write Makefile
    《麻省理工大学开放课程:线性代数》[中英双语字幕]视频下载
    正则表达式30分钟入门教程
    usage of fscanf and other read functions in C/C++
    《麻省理工大学开放课程:线性代数》学习
    Open review of papers
  • 原文地址:https://www.cnblogs.com/ayongxin93/p/11923740.html
Copyright © 2011-2022 走看看