接口平台_api接口平台 - CSDN
精华内容
参与话题
  • 什么是API接口平台?作用是什么?

    千次阅读 2019-09-14 19:07:49
    在每一个互联网总不会缺少统一的API接口平台,公司级、部门级等等。存在即是合理,那么一个接口平台诞生的背景是什么,为了解决什么问题?怎么解决? 接口治理 系统A调用系统B,双方测试各种联调,终于有一天调通了...

    在每一个互联网总不会缺少统一的API接口平台,公司级、部门级等等。存在即是合理,那么一个接口平台诞生的背景是什么,为了解决什么问题?怎么解决?

    接口治理

    系统A调用系统B,双方测试各种联调,终于有一天调通了。相约着一起上线,上线当晚量小看不出问题,第二天上量之后,一顿报错,大家都慌了,赶紧重新走流程,紧急回退。一个流程下来到结束,个把小时没了,可想而知,研发小哥的心是崩溃的。如果整个调用链能做到秒级回退想必是极好的。

    重新联调测试,又准备上线了,领导被上次的问题搞怕了,来找测试小姐姐,问道:都测全了吧。小姐姐回复说,该测的功能都测了,典型的按理都跑通了,但是线上的参数各式各样的,不敢说100%没问题。领导一听,顿时脸就沉了下来,测半天还不是不知道接口有没有问题啊。领导心想,如果能有线上分量功能岂不美哉?

    战战兢兢的上线了,好在老天保佑,接口运行正常,业务系统也没跳起来。研发小哥一颗悬着的心也放下来了,领导又来了,问道:如何?新上的接口没啥问题吧?研发小哥自信满满:没问题,各个业务系统都通知到了,没接收到异常反馈。领导一听,眉头一皱,自己系统上线的接口需要业务系统验证是否有问题,有点被动。看来,接口监控有必要提上日程了。

    突然有一天,一个其他的业务部门跑来说:你们的接口有问题啊。数据各种异常,怎么回事?研发小哥一想:最近没作上线啊,怎么会有问题,是其他问题引起的吧。心里有底多了,反驳道:我们最近没变更,你们查下自己的问题吧。结果一顿排查,发现接口名太相似了,导致调错了。研发小哥长吁一口气,领导拉着研发小哥说:这次事件也反应了我们系统的潜在问题,接口想怎么调就怎么调,得有个接口授权功能啊。

    又临近大促了,最近各个系统都在进行压测。研发小哥把需要压测的接口都进行了扩容,心想:应该没啥问题了吧。第二天起床一看,手机各种报警,各个业务线系统都找到了他,说接口调用失败/超时之类,赶紧起床排查问题,结果发现某一无压测需求的接口昨晚调用量异常巨大,影响了其他的接口。领导大发雷霆:接口限流接口隔离怎么做的?

    作为一个接口平台,接口降级也是必不可少的,主动降级/被动降级都是必须的,否则不管对业务系统还是自身系统都可能造成不可预估的影响。

    接口编排

    有这样一场景,业务系统想先调用接口A,根据接口A的返回决定是调用接口B或接口C,研发小哥信誓旦旦说,这不很简单么?判断一下不就好了?如果后续要改逻辑了呢?调接口D了怎么办?你要更变代码再上一次线么?就为了改一下判断逻辑。如果能够将接口之前的调用逻辑封装在一个接口里,接口之间的调用逻辑实现可配置,对于业务系统而言无需每次都上线,还能做到和单个接口治理一样的功能,对业务的影响做到最小。

    实现方式

    以上就是个人对于API接口平台的一点理解,至少得需要具备以下的功能

    • 版本控制(秒级回退、分量测试)
    • 监控/报警
    • 授权
    • 限流
    • 隔离
    • 降级
    • 编排

    版本控制

    版本控制顾名思义,就是针对同一个接口维护多个版本,增加上线状态,每个接口都只能有一个上线版本,针对有问题的版本可实现秒级回退。分量的功能,每个接口都维护着一个预发环境,针对接口可以选择在指定环境进行上线,开启分量后,将在指定环境进行验证接口的正确性。

    监控/报警

    记录接口的运行情况,包括耗时/成功率/失败率。
    如果有报警设置,查看是否满足报警条件,有的则调用报警接口。(邮件/微信/短信/外呼)

    授权

    为每个接口添加token授权校验之类,没有或错误则调用拒绝

    限流

    一般大型系统都是分布式,所以用到的分布式限流,redis+lua等等,以接口为维度来进行限流。

    隔离

    以接口维度来进行分配服务器资源,各个接口调用互不干扰。

    降级

    主动降级:让API接口平台用户设置的一种降级方式,接口维度,一般如果注册在API接口平台上的接口需要维护窗口,在那个时间内接口往往是不可用的,可以在那个时间点进行接口降级,返回默认值之类。或者大促时间,某些接口是允许被降级的,那么为了增加系统的吞吐量,也是可以被适当降级的。

    被动降级:没有不出问题的系统,那么在出问题的时候怎么去很好的避免呢。做到尽可能少的影响业务。使用熔断/降级不失为一种好方法,Hystrix可以是个较好的选择。在某段时间窗口内,失败率达到多少则进行降级返回默认值,过了一定时间后,尝试打开熔断,如果失败,继续降级,如果成功,则恢复调用。

    编排

    通过简单的脚本语言来编写条件,根据返回的结果调用脚本引擎执行条件(是/否),来选择下一个应该被执行的节点(接口)。最终实现多个接口组合编排的目的。

    总结

    API接口平台远不止这么多功能,鄙人也是刚接触不久,对于其中使用的技术也是一知半解,此篇理论为主,后续还会写点技术点的深入理解。包括熔断/降级的使用、接口的泛化使用、接口限流的实现等等。希望能对读者有一点点的帮助吧。

    展开全文
  • 数据接口平台

    千次阅读 2019-09-24 13:00:34
    接口测试案例:--短信接口 和银行卡信息接口 package com.example.demo; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework....

    接口测试案例:--短信接口 和银行卡信息接口

    package com.example.demo;
    
    import org.springframework.http.HttpEntity;
    import org.springframework.http.HttpHeaders;
    import org.springframework.http.MediaType;
    import org.springframework.http.ResponseEntity;
    import org.springframework.util.LinkedMultiValueMap;
    import org.springframework.util.MultiValueMap;
    import org.springframework.web.client.RestTemplate;
    
    public class Demo01 {
        public static void main(String[] str){
            card();
        }
        void sms(){
            RestTemplate restTemplate = new RestTemplate();
            System.out.println("sss");
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    
            MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
            map.add("mobile", "18726175886");
            map.add("tpl_id", "12734");
            map.add("tpl_value", "#code#=4797");
            map.add("key", "#############");//密匙
    
            HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map, headers);
    
            ResponseEntity<String> response = restTemplate.postForEntity( "http://v.juhe.cn/sms/send", request , String.class );
    
            System.out.println(response.getBody());
        }
    
        static void card(){
            RestTemplate restTemplate = new RestTemplate();
            System.out.println("sss");
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    
            MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
            map.add("bankcard", "##############");//银行卡号
            map.add("key", "################");//密匙
    
            HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map, headers);
    
            ResponseEntity<String> response = restTemplate.postForEntity( "http://apis.juhe.cn/bankcardcore/query", request , String.class );
    
            System.out.println(response.getBody());
        }
    
    }
    
    展开全文
  • 年前最后一更,自从Internet...一个重要的优点是,对于后台服务(系统),它只需要提供一个统一的API接口,即可被多个客户端重用,并且分工和协作更加精细。大大提高了效率。目前某些公司接口文档管理方式采用word...
        

      年前最后一更,自从Internet服务开发以来,作为开发者阵营,我们已经在实践中证明了前端和后端分离开发模型正逐渐成为越来越多的Internet公司构建服务和应用程序的一种方式。

      前端和后端分离的优点很多。一个重要的优点是,对于后台服务(系统),它只需要提供一个统一的API接口,即可被多个客户端重用,并且分工和协作更加精细。大大提高了效率。目前某些公司接口文档管理方式采用word,wiki及html形式,由于版本迭代较快。随之而来的是

    • 接口文档管理混乱,接口描述不清;
    • 间接导致测试人员测试效率低下,后续问题无法追踪,测试无法保障
    • 资源分散,难以共享,虽然有SVN,git,但由于权限问题,不能及时查看
    • 由于项目较多,接口文档排版各异,查看不便

      由此可见接口文档规范是多么的重要,作者推荐市面上常见的几款接口管理平台,仅供参考

      1.Swagger

    小说搜索 https://shupu.org/

      Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。它可以方便地和 Spring MVC、Spring Boot等框架进行快速整合,并且通过结合诸如Swagger-UI等组件,将 controller层的方法进行方便地可视化展示,像方法注释,方法参数,方法返回值等都提供了相应的用户界面

       项目地址:https://swagger.io

      2.YApi

      YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。它可以帮助开发者轻松创建、发布、以及维护API。除此之外,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

    特性:

    • 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
    • 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
    • 类似 postman 的接口调试
    • 自动化测试, 支持对 Response 断言
    • MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据
    • 支持 postman, har, swagger 数据导入
    • 免费开源,内网部署,信息再也不怕泄露了

     

      博主有个问题想咨询的时候,特意去加github上面的群,但加群的时候,心中sfowfwfpw,先这样吧

     

     

      难点:如果需要要执行自动化测试,需要编写脚本,好像比较难,可能是博主太菜了吧(大哭.gif)

      github源码地址:https://github.com/YMFE/yapi

      部署文档地址:https://hellosean1025.github.io/yapi/documents/index.html

      3.eolinker

      开箱即用的API研发管理方案,无需繁琐的配置,支持读取代码注解生成API文档,或者是通过UI界面快速创建全面的API文档。通过Mock API、API变更通知、版本管理等服务,让团队更敏捷。

      

      项目地址:https://www.eolinker.com

      疑问:github上面源码已经被删除,需要下载源码自己搭建的就不要想了

      4.showdoc

      一个非常适合IT团队的在线API文档、技术文档工具

      项目地址:https://www.showdoc.cc/

      5.DOClever

      DOClever是一个可视化免费开源的接口管理工具 ,可以分析接口结构,校验接口正确性, 围绕接口定义文档,通过一系列自动化工具提升我们的协作效率。DOClever前后端全部采用了javascript来作为我们的开发语言,前端用的是vue+element UI,后端是express+mongodb,这样的框架集成了高并发,迭代快的特点,保证系统的稳定可靠。

    主要特性:

      • 可以对接口信息进行编辑管理,支持 get,post,put,delete,patch 五种方法,支持 https 和 https 协议,并且支持 query,body,json,raw,rest,formdata 的参数可视化编辑。同时对 json 可以进行无限层次可视化编辑。并且,状态码,代码注入,markdown 文档等附加功能应有尽有。

      • 接口调试运行,可以对参数进行加密,从 md5 到 aes 一应俱全,返回参数与模型实时分析对比,给出不一致的地方,找出接口可能出现的问题。如果你不想手写文档,那么试试接口的数据生成功能,可以对接口运行的数据一键生成文档信息。

      • mock 的无缝整合,DOClever 自己就是一个 mock 服务器,当你把接口的开发状态设置成已完成,本地 mock 便会自动请求真实接口数据,否则返回事先定义好的 mock 数据。

      • 支持 postman,rap,swagger 的导入,方便你做无缝迁移,同时也支持 html 文件的导出,方便你离线浏览!

      • 项目版本和接口快照功能并行,你可以为一个项目定义 1.0,1.1,1.2 版本,并且可以自由的在不同版本间切换回滚,再也不怕接口信息的遗失,同时接口也有快照功能,当你接口开发到一半或者接口需求变更的时候,可以随时查看之前编辑的接口信息。

      • 自动化测试功能,目前市面上类似平台的接口自动化测试大部分都是伪自动化,对于一个复杂的场景,比如获取验证码,登陆,获取订单列表,获取某个特定订单详情这样一个上下文关联的一系列操作无能为力。而 DOClever 独创的自动化测试功能,只需要你编写极少量的 javascript 代码便可以在网页里完成这样一系列操作,同时,DOClever 还提供了后台定时批量执行测试用例并把结果发送到团队成员邮箱的功能,你可以及时获取接口的运行状态。

      • 团队协作功能,很多类似的平台这样的功能是收费的,但是 DOClever 觉得好东西需要共享出来,你可以新建一个团队,并且把团队内的成员都拉进来,给他们分组,给他们分配相关的项目以及权限,发布团队公告等等。

     

      

      github源码地址:https://github.com/sx1989827/DOClever

      官网地址:http://doclever.cn/controller/index/index.html

      帮助文档地址http://doclever.cn/controller/read/read.html#5a532f98b7731a2ba86093b3

      6.RAP2

      阿里妈妈前端团队出品的开源接口管理工具RAP第二代,RAP通过GUI工具帮助WEB工程师更高效的管理接口文档,同时通过分析接口结构自动生成Mock数据、校验真实接口的正确性,使接口文档成为开发流程中的强依赖。有了结构化的API数据,RAP可以做的更多,而我们可以避免更多重复劳动。

      基于RAML的接口定义、文档生成、Mock Server完成了定义和使用的分离,通过一套规范完成的接口定义,可以用不同的工具得到适应不同API管理系统的输出,有更多的可能性,同时保持了核心定义不变。

      RAP较之于RAML,前者更加集中,所有的定义、文档、mock都在同一个服务中完成,并且实时生效,方便快捷,如果只考虑方便易用,RAP是更好的选择,而RAML显得更加繁琐,更适合于公开的接口定义,方便在各个系统之间流转。

     

      github源码地址:https://github.com/thx/rap2-delos

    以上信息均来自互联网,如有侵权,请联系作者删除,谢谢

    展开全文
  • 前端应用系统通过统一接口平台获取数据,不直接与外部系统接口打交道。统一接口平台通过多种方式与外部系统联接获取数据并向各前端应用系统提供各种数据格式包,将外部系统有效地隔离在业务系统之外。前端应用系统...

    产品介绍

    前端应用系统通过统一接口平台获取数据,不直接与外部系统接口打交道。统一接口平台通过多种方式与外部系统联接获取数据并向各前端应用系统提供各种数据格式包,将外部系统有效地隔离在业务系统之外。前端应用系统需要请求的外部接口需要在统一接口平台注册,开放。每次访问都会被有效的记录,实行监管。

    应用范围

    前后端分离,跨域,缓存策略,接口管控,服务组装,负载均衡等。

    技术描述

    应用包:servlet,ehcache,memcached/redis,http协议,http连接池,apache下httpclient,IOUtils,装饰模式,责任链模式,享元模式。

    后台包:Spring MVC,Mybatis。

    架构描述

    interface1.png

    设计欣赏

    此平台做为一个通用解决方案平台,经历了门户网,小型商城,物联网等项目的实践,不断在完善,后期会将所有设计原稿全部分享出来。

    展开全文
  • 统一接口平台

    千次阅读 2018-11-28 18:07:00
    前端应用系统通过统一接口平台获取数据,不直接与外部系统接口打交道。统一接口平台通过多种方式与外部系统联接获取数据并向各前端应用系统提供各种数据格式包,将外部系统有效地隔离在业务系统之外。前端应用系统...
  • 接口测试平台(二)

    千次阅读 2019-04-26 16:42:47
    选择接口数据来源于接口列表中启用的接口,选择成功后,默认的数据会带过来,并且可以自行改动保存 2).每个tab页都会有个帮助,鼠标放上去即可显示 接口tab提示: 临时变量(测试用例保存的变量):#{temp}# 初始...
  • easyopen一个简单易用的接口开放平台平台封装了常用的参数校验、结果返回等功能,开发者只需实现业务代码即可。git地址:https://gitee.com/durcframework/easyopen
  • 一、百度api集市 1136个数据服务接口 ... 二、聚合 144个数据服务接口 ...25个电商平台的数据接口,专营电商平台的数据 注册网址:https://console.open.onebound.cn/console/?i=Bob 五、阿凡达数据 118个数据服务
  • 先发一张设计图:加解密相关: 
  • API接口管理平台-rap

    万次阅读 2016-02-25 11:44:37
    因为公司多个项目组并行,多次出现因为分支交叉使用导致影响其他项目组线上功能的情况,制定了几条规则来解决这一情况,其中一条规则就是对于各个项目组API接口的管理工作。...所以需要一个API接口管理平台,最后通过
  • 【工具分享】Django接口测试平台

    千次阅读 2020-09-09 10:10:32
    接口测试平台从开始到放弃 目录 python3.6.3 Django 2.0.2框架 github地址:https://github.com/githublitao/api_automation_test 体验网址 请体验用户不要删除已有数据 项目结构: 项目目录简介: 项目介绍...
  • 代理商通过约定的接口协议调用接口平台进行提单,接口平台需要对请求方做验证并且生成唯一订单号返回给代理商,代理商可以通过平台返回的订单号查询订单充值状态(处理中,充值失败,充值成功)。 代理商通过约定的...
  • 微信公众平台为公众号开发者提供了网页版的接口调试工具,开发者可以直接在网页中调用对应的接口,比如获取access_token接口,创建菜单接口,发送消息接口 等等。 先看一下界面,访问: ...一、接口类型:因为...
  • 用友U8开放平台的 api接口

    万次阅读 2018-07-15 23:36:26
    用友U8开放平台: API,提供丰富的业务分类,接口类,业务需求分析可以借鉴其分类架构;
  • 常见的接口在线管理平台

    千次阅读 2019-08-20 16:17:50
    1.EOLINKER(推荐)可以协作,界面简洁 https://www.eolinker.com/#/?status=link-jump 2.RAP(前阿里妈妈团队)支持版本管理,开源,有文档 http://rap2.taobao.org/ 3.EasyAPI (相对来说easy) ...
  • 接口设计与数据同步解决方案小结

    万次阅读 2012-05-12 23:07:11
     在做项目过程中,对于一个Web平台性的系统来说,往往需要为其他程序开放系统接口,即是以自己做的系统为平台,允许第三方的程序接入。需要和第三方的程序数据打交道,需要第三方程序通过调用web平台接口来传递数据...
  • SDK调用API流程 概述本文主要是提供给开发者使用诺诺平台提供的SDK请求测试诺诺开放平台API过程的说明。1. SDK是一个用于测试API的用例包。2. SDK版本包含:Java、PHP、.NET、Nodejs。下文将提供Java版本调用示例。...
  • 接口自动化平台

    千次阅读 2018-12-03 15:12:44
    https://github.com/HttpRunner/HttpRunnerManager
  • 第三方支付接口有哪些?   目前中国国内的第三方支付产品主要有PayPal(易趣公司产品)、支付宝(阿里巴巴旗下)、财付通(腾讯公司,腾讯拍拍)、傲付宝等。其中最用户数量最大的是PayPal和支付宝,前者主要在...
  • 微信公众平台接口调试工具

    万次阅读 2018-08-07 20:54:23
    微信公众平台为公众号开发者提供了网页版的接口调试工具,开发者可以直接在网页中调用对应的接口,比如获取access_token接口,创建菜单接口,发送消息接口 等等。   先看一下界面,访问: ... ...
1 2 3 4 5 ... 20
收藏数 722,430
精华内容 288,972
关键字:

接口平台