精华内容
下载资源
问答
  • 在产品开发过程中,当...我不是技术,我怎么清楚开发这个功能需要多少接口,需要联调哪些东西呢。最近刚好碰到联调接口的问题,于是我将有些日子没接触开发文档的阅读内容又捡了起来。对于产品经理而言,我们没有...

    7920b175300798bbe0606a5784d78801.png

    在产品开发过程中,当涉及到前后端数据交互的时候,基本离不开接口的调用,常常听到开发提到这个接口还没有调通呢,还需要一定的工作量。

    对于刚接触产品工作的新手而言,可以会一脸懵逼:什么是接口,为什么接口调试的时候要花费大量的时间啊。我不是技术,我怎么清楚开发这个功能需要多少接口,需要联调哪些东西呢。

    最近刚好碰到联调接口的问题,于是我将有些日子没接触开发文档的阅读内容又捡了起来。对于产品经理而言,我们没有必要了解技术怎么进行接口联调,但是能够阅读基本的开发接口文档是非常有必要的。

    今天大寸老师从什么是API接口、接口分类、API接口文档内容、阅读API文档有什么用四个方案来谈谈我眼中的开发接口。

    一 什么是API接口

    API,全名Application Programming Interface,翻译过来就是应用程序编程接口。百度词条的定义是:API是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。 用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。

    哎,太专业了,大白话解释一下。

    API可以类比是一个传输数据的通道,入口时需要请求数据,出口需要返回请求的接口。接口的使用方式不需要关心接口是如何实现的,只关心是否得到最后的返回接口。

    7128d7e70954d87eaceeaf25852f049e.png
    来自:百度图片

    举个例子:在支付宝买火车票时,你选定了时间、地点搜索车次,后台会调用搜索接口传入时间、地点等参数,接收列车类别、价格等参数,然后在前台页面上进行排列展示。

    二 接口的分类

    接口的分类很多,平时遇到的接口类型主要分为以下两类

    1 根据相应机制分为同步接口和异步接口

    同步接口:当A系统在向B系统接口请求之后,必须等到B系统接口的相应后才会执行下一步的操作。

    例如:登录操作调用第三方平台接口(如QQ)进行登录时,需要跳转到QQ进行验证并返回验证结果之后,才可以登录成功。

    异步接口:当A系统在向B系统接口请求之后,不需要等到B系统接口的相应后才会执行下一步的操作。

    例如:在支部宝中给余额宝进行充值时,不需要等待银行付款成功后再开始下一笔的充值。此时,支付宝已经验证了用户的银行账户,确认了双方交易的合法性就可以结束这笔操作了。这时,我们看到已经充值成功,其实银行可能还没有进行扣款,但是支付宝后台会将这笔交易流水传递给银行,在银行验证成功后再进行扣款、付款操作。

    2 根据接口的触发形式分伟分发接口和订阅接口

    分发接口:一个系统产生数据的时候就分发给其他系统(可能是多个)。

    中台系统的核心思想是高内聚、低耦合,所以分发接口的使用场景是很多的。例如有一个主渠道系统来管理所有渠道的数据,而渠道数据是其他系统例如商品系统、订单系统、促销系统也会用到的信息。当主渠道有内容更新时,需要分发给其他对接的各个系统,实现最新渠道的功能拓展。

    订阅接口:一个系统在需要的时候调用另一个系统的接口进行数据订阅。

    例如订单系统生成订单时,有很多其他的系统可能需要及时获取订单的状态信息,但是订单系统并不知道要分发给哪些系统。此时往往会将订单信息推送至特定的消息队列,其他需要订单信息的系统会订阅这个消息,就可以及时获取订单的状态信息,进行下一个动作了。

    9ee32b715954c948d89fd98b02b1e3d6.png
    来自:百度图片

    三 接口文档内容

    如何调用接口,接口文档做了明确的说明,以腾讯接口文档举例说明,其主要内容包括以下几点:

    1 功能说明:这个接口是用来干什么的,以及相关的规则

    举例:用户点击按钮选择“购买”后,应用调用该接口发送请求,以获取本次交易的token,以及购买物品的url参数。

    2 接口调用说明

    (1)URL地址

    以网址的形式展示,你通过发送请求给这个网址来对接口进行交互操作。

    (2)格式

    Json

    (3)HTTPS请求方式

    通常所说的http传输方式有四种:get、post、put、delete。简单来说,一个URL地址,用于描述一个网络上的资源,get、post、put、delete对应着这个资源的查、改、增、删四个操作。get一般用户获取资源信息,post用来更新资源信息。很多时候,都可以通过get或者post来完成增删改查四个操作。

    7706478573819e3ce518bbefdaacc8cc.png
    来自:百度图片

    (4)IP限制

    true

    (5)输入参数说明

    各个参数请进行url编码,编码时请遵守RFC1738,参数属性包括名称、类型、是否必填、描述等内容。

    a3c16d3725af92243be3a7556bfe1dd3.png
    来自;百度图片

    (6)返回参数

    接口正常相应后,返回的内容

    (7)错误代码

    接口请求失败后,返回的错误代码,方便开发人员定位问题原因

    四 阅读API文档有什么用

    掌握API接口文档基本知识可以让我们对技术理解更深刻,可以结合新接口,让产品的开发更具可行性,降低工作量,也能够更好的预估开发的工作量,制定合理的产品方案。当然,最重要的是能够方便我们和程序猿的沟通,减少程序猿对产品的吐槽——这个产品连接口都不知道,竟然给我安排这么点时间,产品万一出了问题,我可以不背锅。

    1 深刻了解技术,让沟通跟顺畅

    可以让产品经理明确各个系统之间的数据流转,尤其是做后台产品的产品经理,在知道了功能设计的目的,需要对外提供什么样的接口服务,设计产品的时候才可以更加全面。在工作过程中不仅能够站在产品设计的角度上看待问题,同时也可以从开发的接口来评估产品,有利于产品经理和开发人员顺畅沟通

    2 合理安排开发工作量

    在了解了接口文档之后,能够准确地掌握开发的工作量,而不是局限于自己的产品功能,同时在安排产品开发的郭晨中能够统筹考虑周边系统联调的时间,这样计划安排才会更加合理。同时也可以识别项目中的关键风险点,尤其是一些关键接口,数据量需要压测的接口,需要今早安排联调和测试,并且对周边需要配合的项目提出要求。

    a9ab0b1f70aeb84d6c68c5f293792606.png
    来自:百度图片

    总之,掌握阅读API接口文档能力,对一个产品经理来说是一个非常有意义的事情。无论站在产品设计的角度还会从和技术人员高效沟通的方面,甚至从提高产品经理的自我修养来看,都是锦上添花的事情,会给你一定的帮助,能够让你设计产品时从全局思维触发去真正打磨出一款好的产品。

    展开全文
  • 更多精彩“程序员被逼死丨王小波程序员丨我会编程丨七夕表白丨程序员最高殊荣丨程序猿(媛)CP丨祭天丨Python歌词丨特斯拉丨程序媛丨直播丨鄙视链丨敲代码丨404丨结婚丨Facebook丨怎么进BAT丨女友日记丨高逼格指南丨...
        

    是不是感觉数据永远都对不上!

    0?wx_fmt=gif&wxfrom=5&wx_lazy=1


    看完此文,你有什么想法或观点呢?欢迎在留言区留言评论。


    更多精彩

    程序员被逼死王小波程序员我会编程七夕表白程序员最高殊荣程序猿(媛)CP祭天Python歌词特斯拉程序媛直播鄙视链敲代码404结婚Facebook怎么进BAT女友日记高逼格指南计算机专业技能干货九寨沟地震编程习惯陆奇演讲自救指南周鸿祎谈创业


    0?wx_fmt=png

    公众号ID:coder_life

    0?wx_fmt=gif

    扫码关注CSDN程序人生

    程序猿(媛)的专属公号

    展开全文
  • 两个系统做数据传输时,懒省事,...post请求返回的格式是String,数据提供方返回的数据格式Map啊JSON啊都不怎么对。只得返回了json.toString.。记录一下,欢迎拍砖指导。 net.sf.json.JSONObject obj = net.sf.js...

    两个系统做数据传输时,懒省事,直接访问 action 方式。结果总是报500,或者fileNotFount。

    究其原因是因为两边的数据格式没对应上。post请求返回的格式是String,数据提供方返回的数据格式Map啊JSON啊都不怎么对。只得返回了json.toString.。记录一下,欢迎拍砖指导。

    net.sf.json.JSONObject obj = net.sf.json.JSONObject.fromObject(resultMap);
            
            try {
                response.setCharacterEncoding("UTF-8");
                response.setContentType("text/plain, utf-8");
                PrintWriter out = response.getWriter();
                out.print(obj.toString());
                out.flush();
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            
    //        return obj.toString();
    return obj.toString();  直接返回这个接受方会出现乱码。
    关于乱码这个问题,网上也有其他解决方案:比如 mapping中增加produces

    @Controller
    @RequestMapping(value = "/query", produces = "text/html;charset=UTF-8")
    public class QueryController {

     

    @RequestMapping(value = "***",produces={"application/json;","text/html;charset=UTF-8;"})  

    可参见

    http://blog.csdn.net/u010979495/article/details/50610856

     

    转载于:https://www.cnblogs.com/yeyuchangfeng/p/6774793.html

    展开全文
  • 公司项目默认的游戏规则,前后端分离开发,测试在联调测试之前做接口测试,联调时参与联调测试,联调结束后,开始集成测试,直至项目上线。 高级Jmeter接口自动化:901813303 Jmeter接口测试群:956186148 测试工作...

    前提

    公司项目默认的游戏规则,前后端分离开发,测试在联调测试之前做接口测试,联调时参与联调测试,联调结束后,开始集成测试,直至项目上线。
    高级Jmeter接口自动化:901813303
    Jmeter接口测试群:956186148

    测试工作安排

    项目前期,测试参加需求评审会议,测试用例评审,接口文档评审等一系列会议后,开发提测接口时,安排接口测试工作。

    假设项目整体里程碑进度如下

    1、项目是2020年8月1日启动
    2、开发接口转测从2020年8月15日开始输出
    3、2020年8月26日开始联调测试
    4、2020年8月30日转测,开始集成测试
    5、2020年9月15日项目上线

    接口测试

    接口文档评审后,如果测试用例已经评审完,项目进度按计划进行,那么2020年8月15日就可以开展接口测试啦~
    接口测试的参考依据,是接口文档。一个完整的接口文档应该包含以下内容:
    高级Jmeter接口自动化:901813303
    Jmeter接口测试群:956186148

    • 服务器地址
    • 信息头
    • 接口名称 - 开发人员
    • 开发中涉及的表(方便测试和其他开发定位)
    • url
    • 请求入参 是否必填 入参类型
    • 请求示例
    • 返回示例

    其中,每个节点都有自己的意义,开展接口测试之前,要先学会解读接口文档。
    接下来就是接口脚本编写啦~~~
    ------------------------------------------------华丽丽的的分割线-------------------------------------------------------

    脚本编写

    高级Jmeter接口自动化:901813303
    Jmeter接口测试群:956186148
    打开jmeter,根据接口文档,写好信息头部,请求默认值,根据入参,写好一个单一的接口请求。。。
    但是问题来了,数据要么是乱填的,要么为了保证有效性,去数据库里复制出来一个个填上去,有别的接口可以提供返回值给我去关联,但是接口还没转测。
    (还不会关联的移步至接口自动化连载 (7)- 正则表达式关联
    在这里插入图片描述

    思考:关联接口还没转测,有没有办法可以实现接口脚本之间的动态关联呢?

    这里引入下mock的概念

    Mock-高效、易用、功能强大的可视化接口管理平台

    对于mock,可能知道的同学还是比较少。但是mock技术,已经像docker技术一样,慢慢在测试界普及。

    以下是官网对mock的介绍

    Mock 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,Mock 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
    高级Jmeter接口自动化:901813303
    Jmeter接口测试群:956186148
    总结而言,mock早先用于前端,前端内部做测试时,需要判断某个字段值取值是否正确,那就需要接口辅助,此时接口未转测,与测试遇到的情况一样,但是,前端也是需要继续开发页面,为了保证转测版本的质量,引入mock进行接口模拟,提高前端代码的质量。
    这种方式也可以给接口测试脚本自动化打辅助。首先创建一个mock接口,写入模拟数据
    在这里插入图片描述

    预览得到mock地址
    在这里插入图片描述
    此地址填写的是接口文档的地址。接下来在jmeter里添加一个http接口,填写mock的请求
    在这里插入图片描述

    得出结果如下图所示。
    在这里插入图片描述

    我们要取的是configurationId,此时可以直接用正则取出

    在这里插入图片描述
    引入到下一个接口,实现接口脚本关联自动化
    在这里插入图片描述
    在这里插入图片描述
    接口返回如下
    在这里插入图片描述

    mock小结

    对于前端而言
    1、mock是js写的,node 是js 服务器,安装node.js就可以启用
    2、mock是用来模拟数据的,可以造假数据
    3、mock写好后通过url路由关系转换,直接引用
    4、前端用koa框架来调用mock,轻松实现页面联调
    优势:前后端分离 让前端攻城师独立于后端进行开发
    弊端:依赖于API文档

    对于测试而言
    1、mock可以用来模拟数据,大批量造假数据
    2、mock可以用来联调接口测试脚本,前期工作做完,后期只需完善脚本
    3、mock可以用来实现大批量入参的dubbo接口测试
    高级Jmeter接口自动化:901813303
    Jmeter接口测试群:956186148

    展开全文
  • 什么是联调测试

    千次阅读 2016-06-07 14:41:30
    联调测试性质:集成测试,又称组装测试、联合测试、联调测试、子系统测试、部件测试。不同的称呼而已,侧重点在于模块间接口的正确性、各模块间的...但联调测试的关注点是模块间的接口。至于模块怎么划分要根据具...
  • 一、前提公司项目默认的游戏规则,前后端分离开发,测试在联调测试之前做接口测试,联调时参与联调测试,联调结束后,开始集成测试,直至项目上线。二、测试工作安排 项目前期,测试参加需求评审会议,测试用例评审...
  • 在实际工作中,前后端的接口联调对接工作量占Web前端人员日常工作的30%-50%,甚至会更高。接下来小编就给大家讲解一下前后端分离接口。 为什么要前后端分离? 把前端与后端独立起来去开发,放在两个不同的服务器,...
  • apipost工具设计之初是用于做接口测试,接口联调和接口文档生成的工具。它在实现对各种接口的调用方面已经做的比较成熟。因此,本次直接使用apipost来完成对Http接口的测试。 一、接口测试案例的整体方案 第一步:...
  • 很多人会说,设计接口多么简单,只要命名好,然后联调通了,上线可以调用就行了。特别是非互联网行业的人,这里没有歧视的意思。因为互联网行业和传统行业太多不一致性决定了这种思想的产生。接口是项目里面的最小...
  • apipost工具设计之初是用于做接口测试,接口联调和接口文档生成的工具。它在实现对各种接口的调用方面已经做的比较成熟。因此,本次直接使用apipost来完成对Http接口的测试。 一、接口测试案例的整体方案 第一步:...
  • ​前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来...
  • 在实际工作中,前后端的接口联调对接工作量占Web前端人员日常工作的30%-50%,甚至会更高。接下来小编就给大家讲解一下前后端分离接口。  为什么要前后端分离?  把前端与后端独立起来去开发,放在两个不同的...
  • 在和客户端联调测试银联二三类账户的影印件采集接口时候,前端需要对图片进行Base64,安卓联调成功,ios却怎么联调都测试不过。第二天进行Base64比对,发现字符串中多了转义字符。 若是有遇到的,可以好好看下是否...
  • 作者:狂乱的贵公子最近做了一个搜索接口的优化,反复压测了四次,终于达到要求了,记录一下,晚上加个鸡腿?业务逻辑从OpenSearch中检索出数据,然后各种填充组装数据,最后返回逻辑看似很简单,当初我也是这样认为...
  • 我们在做应用开发的时候,经常需要利用一些工具抓取网络请求接口,这样可以极大的方便接口联调。但是在用 Flutter 做应用开发时 Charles 却抓不到接口,到底是怎么回事呢 ? 尝试用其它客户端应用请求网络接口,...
  • 但有些公司的流程不正规,开发也没有给接口文档的习惯,那这样的话,测试人员就不知道该怎么去做接口测试了… 一般如果我在工作中遇到这种情况的话,两种方式: 1.先找开发,一般接口写好后,后端与前端的开发会去...
  • 系统中其他所有的get请求都不跨域,只有这一个功能接口,get请求都跨域 post没问题3.后台配置了 允许跨域的配置4.axios没有修改过别的,只配置了拦截器5.本地联调等等情况下都没问题,只有正式环境出问题 IIS也配置...
  • 接口测试之桩

    2020-01-09 22:55:16
    文章目录什么是桩?解耦开发过程中桩的运用环境搭建 做过接口自动化数据驱动和框架设计...也就是联调没有办法进行,因为很多时候都需要你的数据去支持,那这样的一个情况我们应该怎么去解决呢,这就需要用到我们接口...
  • 【公众号回复 “1024”,免费领取程序员赚钱实操经验】大家工作中是怎么完成不同服务的联调的?是等你依赖的同学 API 开发完成上线了,你才开始开发你的功能嘛?很多公司都...
  • 首先,我们来看看正常怎么实现api接口:1,后端给出(或经过协商给出)api定义文档2,前端多端开发编写各自的api请求代码3,单元测试,如果有的话4,前后端都完成后,联调接口然后,给大家讲讲我们团...
  • 前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来...
  • 前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来...
  • 制定API接口的规范在设计接口时尤为重要,统一的格式规范会减少联调的难度,也能让后续维护者身心愉悦.在编写接口时,运用适合的参数检验技巧也能提高代码的健壮性.本文将围绕这两点详解一些我的一些经验. 思考 业务...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

怎么接口联调