首页 > 其他分享 >Restful接口规范

Restful接口规范

时间:2024-03-12 14:12:55浏览次数:25  
标签:baidu 请求 com 规范 接口 api books https Restful

1.简介

2000年Roy Fielding博士在其博士论文中提出REST(Representational State Transfer)风格的软件架构模式后,REST就基本上迅速取代了复杂而笨重的SOAP,成为Web API的标准了。

RESTful作为目前最流行的 API 设计规范,一定有着它独有的魅力:强大、简介、易上手。

2.URL设计

2.1 数据的安全保障

  • url链接一般都采用https协议进行传输

    注:采用https协议,可以提高数据交互过程中的安全性

2.2 接口特征表现

  • 用api关键字标识接口url:

  • https://api.baidu.com
    https://www.baidu.com/api

     



  • 注:看到api字眼,就代表该请求url链接是完成前后台数据交互的

2.3 多数据版本共存

  • 在url链接中标识数据版本


  • https://api.baidu.com/v1
    https://api.baidu.com/v2

     

  • 注:url链接中的v1、v2就是不同数据版本的体现(只有在一种数据资源有多版本情况下)

2.4 数据即是资源

  • 接口一般都是完成前后台数据的交互,交互的数据我们称之为资源

  • https://api.baidu.com/users
    https://api.baidu.com/books
    https://api.baidu.com/book

     

  • 注:一般提倡用资源的复数形式,在url链接中奖励不要出现操作资源的动词,错误示范:https://api.baidu.com/delete-user

  • 特殊的接口可以出现动词,因为这些接口一般没有一个明确的资源,或是动词就是接口的核心含义

 

https://api.baidu.com/place/search
https://api.baidu.com/login

 

2.5 资源操作由请求方式决定

  • 操作资源一般都会涉及到增删改查,我们提供请求方式来标识增删改查动作
https://api.baidu.com/books - get请求:获取所有书
https://api.baidu.com/books/1 - get请求:获取主键为1的书
https://api.baidu.com/books - post请求:新增一本书书
https://api.baidu.com/books/1 - put请求:整体修改主键为1的书
https://api.baidu.com/books/1 - patch请求:局部修改主键为1的书
https://api.baidu.com/books/1 - delete请求:删除主键为1的书

 

3.响应状态码

3.1 正常响应

  • 响应状态码2xx
    • 200:常规请求
    • 201:创建成功

3.2 重定向响应

  • 响应状态码3xx
    • 301:永久重定向
    • 302:暂时重定向

3.3 客户端异常

  • 响应状态码4xx
    • 403:请求无权限
    • 404:请求路径不存在
    • 405:请求方法不存在

3.4 服务器异常

  • 响应状态码5xx
    • 500:服务器异常

4.响应结果

4.1 响应数据要有状态码、状态信息以及数据本身

{
      "status": 0,
      "msg": "ok",
      "results":[
        {
            "name":"肯德基(罗餐厅)",
            "location":{
                "lat":31.415354,
                "lng":121.357339
            },
            "address":"月罗路2380号",
            "province":"上海市",
            "city":"上海市",
            "area":"宝山区",
            "street_id":"339ed41ae1d6dc320a5cb37c",
            "telephone":"(021)56761006",
            "detail":1,
            "uid":"339ed41ae1d6dc320a5cb37c"
        }
          ...
        ]
}

 

4.2 需要url请求的资源需要访问资源的请求链接

{
      "status": 0,
      "msg": "ok",
      "results":[
        {
            "name":"肯德基(罗餐厅)",
            "img": "https://image.baidu.com/kfc/001.png"
        }
          ...
        ]
}

 

标签:baidu,请求,com,规范,接口,api,books,https,Restful
From: https://www.cnblogs.com/97zs/p/18068177

相关文章

  • Web API接口 LL
    1.什么是WebAPI接口通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介WebAPI接口和一般的url链接还是有区别的,WebAPI接口简单概括有下面四大特点url:长得像返回数据的url链接https://api.map.baidu.com/place/v2/search请求方式:get、post、put......
  • VUE后台获取数据,并将数据递归为树接口所需数据形式
    后台获取数据形式(parentID=0的是父级,parentID不为0的,如果parentID与某个对象中的id相等,则表示为该对象的子级。) 代码转换:<script>varroomMenuDataL;//后台获取的教室数据methods:{//获取教室树getroommenu(){consttoken=this.$cookieTools.getTo......
  • C++ Qt开发:QNetworkAccessManager网络接口组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QNetworkAccessManager组件实现Web网页访问。QNetworkAccessManager是Qt网络模块中的关......
  • A接口实现类中a方法调用了c方法,B接口的实现类b方法也需调用A接口的实现类中的c方法,在j
    1.情景展示在实际开发过程中,往往会存在这样的情况:在A接口的实现类a方法实现了某个功能,现在B接口的实现类b方法也需要实现此功能,两者大致相同。为了提高代码的复用性,我们可以把A接口的实现类a方法的具体实现过程进行封装成c方法,供A、B两个接口的实现类调用。2.具体分析第一......
  • 记一次type-c接口外接硬盘没反应的解决方法
    我用的是外接硬盘,所以会出现这种情况,因此,我会把遇见的问题分享给大家,若有不足,请补充,非常感谢。先把电脑上的所有连接设备都拔掉,然后关闭电脑,彻底关机后长按开机键不松手保持15秒以上(这个操作本身正常不会丢失数据的,但是特别重要的数据资料可以备份一下,以防万一),然后插电源按一下......
  • 代码生成器之如何快速生成后端接口?
    前言在现代软件开发中,重复性的增删改查逻辑代码的编写往往非常耗时且容易出错。为了提高开发效率,减少手动维护的成本,代码生成器就成为了一个非常重要的工具,本文小编就将为大家介绍一下如何利用一个开源项目快速生成数据接口。实现方式环境准备技术栈:Java,Spring-Boot,MyBatisPlu......
  • JAVA常用类--AutoCloseable接口
    AutoCloseable接口自动关闭,释放资源机制在实际的项目开发过程中,一般都有可能连接到一些资源,比如:文件资源、网络资源、数据库资源,在实际项目之中进行资源访问的社会一般有如下几个操作步骤:不使用AutoCLoseable:手动定义关闭函数按照正常的结构设计来讲,当前的程序已经可以满足......
  • golang 接口
    接口学习Go语言中的接口时,以下是你需要关注的主要概念和知识点:在Go语言中使用隐式声明的方式实现接口。只要一个类型实现了接口中规定的所有方法,那么它就实现了这个接口1.接口定义接口是一种类型,定义了一组方法的集合。接口定义的方法不包含实现,只有方法签名。示例:Goty......
  • 【C#】HttpWebRequest 接口请求,添加基础Basic认证
    C#,调用对方接口,POST方法,Basic账号密码身份认证。stringurl="";stringaccount="";stringpwd="";JObjectpostData=newJObject();HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(url);request.Method="POST";re......
  • 系统开放相应接口给第三方平台
    SpringSecurity放行接口,匿名访问@EnableGlobalMethodSecurity(prePostEnabled=true,securedEnabled=true)publicclassSecurityConfigextendsWebSecurityConfigurerAdapter{/***自定义用户认证逻辑*/@AutowiredprivateUserDetailsServic......