做产品助理之后接的第一个产品就与“API接口”有关。刚做的时候,稀里糊涂,后来各种喷过后,才慢慢理解了“接口”这个东西。都说产品只需要“了解”技术就可以,不需要自己会写。所以不知羞耻的我对这东西也只知表皮啦。做到懂得基本原理,会看,会用,就好了。

如果你和我一样是个技术盲,那么我们要先来扫盲一下了。

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

恩。有点复杂

简单的说,开放接口是一个抽象的概念,直接听名字就知道他是为了连接而开放的入口,以让别人的程序能够调用你的程序数据。就像你的电脑、手机有一些USB接口,也可以说是开放了接口,有了这些接口别人就可以用他来做插U盘或充电等功能。只是说API不是硬件接口,而是程序软件接口罢了。

这里给大家举个例子,蓄水池与水泵。

如果把提供接口的一方,比作蓄水池,那么池子里装的就是一些封装好的数据啊函数之类之类。这时候如果蓄水池想把他的水,分享给其他人,他就需要在自己身上造个出水口,这个出水口就是所谓的接口

这时候水泵出场了,水泵很需要这些水,他找来了一个水管用来把水抽出来,这时候水泵发送一个指令,蓄水池就会放出一点水。同样,今天你想要水,明天你想要果汁,都需要通过指令来命令蓄水池。这样的一去一回,就完成了一次对接口的交互。

可能说的不是很严谨,但是你能懂个大概意思就可以了。

大概的原理我们懂了。那如果拿到一个接口文档我们该如何来阅读呢?

一个比较专业的文档都会写上各种补充说明辅助你理解,比如接口使用的协议、格式、接口应答返回的数据格式等等。

拿一个手头的接口文档给大家看看,比较正规的文档格式:

小白大呼看不懂这些奇怪的文字,那么下面就教你如何看懂这些参数。

一般接口包含以下几个内容:

  • 接口地址
  • 请求方法
  • 请求参数
  • 返回内容
  • 错误代码

接口地址

顾名思义就是接口的地址,以网址的形式展现,你通过发送请求给这个网址来对接口进行交互操作。

请求方法

请求指令可以用很多种语言来写,一般有curl、php、python、java等等,而与我们合作的接口方提供的就是curl的方式。

如下图,就是典型的curl的GET请求形式。

很多产品都会听到技术说这个用POST传输,那个用GET传输,那么什么是POST和GET呢?

我们通常说的http传输形式最基本的方法有4种,分别是GET,POST,PUT,DELETE。我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。

GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。不过对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。

所以一般我们只会看到GET和POST两种。两者的区别在于get多用于查询,而POST多余用对资源进行修改的操作。比如一般的天气查询,账号金额查询都以GET形式传输,比如登陆信息的传输就会用到POST。

更直观的去区别两者的话,GET请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,如:xxxx.ha?userid=PMnote&userpws=123456&version=6.0。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。而POST把提交的数据则放置在是HTTP包的包体中。

请求参数

即传输参数的时候要带的一些参数,一般文档中会用表格的形式清晰的说明。当我向接口发送携带请求参数的请求时,都要携带什么字段,规则是什么。如下图:

返回内容

返回内容一般会以json或是XML的形式返回。

上图就是以XML的形式返回的。

像上面贴出来的这种接口,还是比较好阅读的。如果我们发送userid和userpws,就是用户名和密码给接口,接口就返回给我们err_msg为空,则说明正确,retconde也返回1说明也成功了。

如果错误则retcond返回空,如果出现其他错误就可以查询具体的错误代码提示内容了。ret_leftcredit则返回了352328.97的数字,这就是这个账户中的余额啦。

所以可以看出该接口主要是为了查询余额而用,使用了GET方式,传过去用户名和密码,返回正确或错误,如果正确则显示余额,错误显示错误信息。

是不是很容易理解啦。

错误代码

最后是错误代码,一般都会附在接口文档的最后,如果在测试或是上线后,可以根据返回接口查看问题。也可以在设计产品时将错误的状态显示在前端。

知道了接口的原理,看到了接口的各种参数和规则。

接下来就到了实战了。

接口是如何应用在产品设计当中的呢?

请先记住:接口决定功能,接口决定功能,接口决定功能。

重要的事情要说三遍。

笔者在第一次碰接口的时候就傻傻的去照抄了其他网站的一些功能和验证方法,没有做好最初与接口方和技术的沟通工作,结果在评审的时候就被喷的体无完肤了。

“你确定接口有这个功能吗?”

“这个接口是实现不了这个功能的。”

所以在产品设计之初就要先透彻了解手中的接口文档中的接口是否具有你想要的功能。

下面以一个加油卡充值来举个实战案例。这是我最初所负责的加油卡虚拟充值服务。

应用平台是在终端机上,它与PC和手机不同是具有一下几个特征:

  • 屏幕大,相应的按钮与文字都比其他平台要大,触屏的敏感度不如手机,操作的精准度不如PC,所以要做到尽量少的输入。
  • 不能输入汉字。
  • 根据用户使用终端设计的场景,核心用户为中老年人,会在相对固定的场所,以站立的方式在屏幕前操作,会有工作人员协助操作,可能会遇到后方排队的现象,所以操作尽量直观简化,防止用户出现焦虑等情绪。

带着这些特点与场景,那么进行一次产品设计吧。

首先根据业务部门提出来的需求,我们只做中石化的充值卡,并且是以固定面额进行充值,这是一个大前提。之后就去了解了一下,目前PC或手机上加油卡充值的大概操作流程。

这是中石化网上营业厅的一个截图

具体的操作流程

输入卡号——确认卡号——选择金额(输入金额)——输入手机号——接受验证码——确认并支付——到网点圈存

好像输入的地方有点多,想一想根据终端机的特性,能不能进行简化呢?带着这个问题,再回头来看看接口文档与加油卡相关的接口都有哪些。

经过查看发现,关于加油卡充值接口有两个,一个是充值接口、一个是卡号信息查询接口。

信息查询接口主要功能就是输入19位的卡号后,返回给我们卡主的真实姓名。因为我们都知道中石化的卡办理是需要身份证实名认证的,所以这个功能实际上能够帮助用户确认自己输入的卡号是否正确。

好,我们记下这个功能以及他能解决的问题。

再看加油卡充值接口。因为一些原因这里就不给大家贴图了。不过可以说一下这个接口需要的参数都有哪些,包括,cardid这个参数来决定你是需要任意金额充值,还是固定面值的充值。另外就是卡号,加油卡类型等参数。

不过值得注意的是我发现在接口里有个参数需要输入手机号码与持卡人姓名。他们是否是必填项呢?接口没有写清楚。而且终端机不能输入汉字的规则,如果要输入姓名,这将是一个不能完成的任务了啊,除非接口方更改规则。

似乎产品走到这里,有些地方不太清晰了,那么我们要做什么,当然是沟通喽。

持卡人手机号是否必填?

是的。

用来做什么的呢?

中石化会给这个手机号发送充值成功的短信。

好的,谢谢。

那持卡人姓名呢?

这个是辅助信息,不是必填项

好的。

这时候顾虑都没有了,接口貌似能够顺利的使用啦。

功能都确定了之后,想想是否能简化原有的步骤呢。记得做产品的时候业务部的同事提议让用户输入两次卡号来确认,因为通常都是这样做的。这时候就能用到那些写PM文章里的一句话,需求需要分析,不能拿过来解决方案就用。

如果输入两次卡号是为了让用户确认自己输入是否有误,那么我们可不可以利用卡号查询接口,来给用户返回姓名来解决这个问题呢?

实际上根本要满足他的需求是,让用户知自己输入的卡号无误。

如此在产品设计上,我就只采用了一次输入卡号的形式,让接口返回我真实姓名就好了,而且让一个人在终端机上输入两次19位卡号,那也是一种折磨。

功能确认,操作流程确认了。因为业务流程沿用了之前公司设定好的流程这里就不再赘述。剩下的工作就是画原型图了,注意,在画原型的时候最好加入input的一些规则限制,调用哪些接口,正确与错误的提示都是什么?有什么异常状态,需不需要做友好提示等等。这些交互说明都对前端开发和技术开发是必须要的。

这样就完成了一次通过调用接口来实现产品功能、设计的一个全过程。

欢迎关注 PMnote  听说关注的人都已经找到了对象: )


http://www.taodudu.cc/news/show-546665.html

相关文章:

  • 有逼格的产品经理都用什么样的杯子?
  • App推广中如何寻找200个以上渠道
  • 为什么你今年的去哪儿产品经理面试挂了?
  • 停止对互联网的意淫吧,它不过是个信息技术啊
  • 互联网音乐还有什么机会
  • 如何设计一款大学生找实习的APP?
  • 适合创业团队使用的团队协作工具大盘点
  • 产品需求文档中容易被忽视的10个细节
  • 听说邻居表妹来了
  • 如何在面试中有条理的回答用户体验方面的问题
  • 产品体验分析之7步走(附PPT)
  • 总被忽略的 2 条产品原则
  • App上线需要自查的list——主要针对产品、部分运营加测试
  • PMCAFF微课堂已结束 | 前YY产品总监深度揭秘P2P运营推广精髓
  • 互联网金融投放获客优化的讨论(新用户引导流程)
  • 神吐槽|产品经理都是如何相爱相撕的?
  • 避免需求分析与定义误区的7个招式:作为产品新人,我所遇到的坑(续)
  • 如何使用Axure高效完成高保真原型
  • 我们从产品团队扩大中学到了什么
  • 产品经理的每日反省清单
  • 从支付宝面试题谈:怎样有效减少用户咨询的客服成本
  • 移动产品经理必须要知道的11件事
  • 需求变质与需求生态
  • 我在百度这四个月
  • PMCAFF出品|十一月30篇爆款文章合集,干货、技能、内涵齐飞,总有一款适合你
  • 如何在开发资源或能力不足的情况下进行敏捷开发?
  • 导购的路上,媒体向左,社区向右
  • 从0到1,你的导流姿势真的正确吗?
  • 我是如何从技术转向产品的
  • 产品工作中保持饥饿感,保持拒绝90%以上的伪需求你就不会错过下一个微信

利用「接口」做产品时我们该如何思考?相关推荐

  1. 如何回答「为什么想做产品经理」【面试核心问题3】

    当问出"为什么想做产品经理/为什么转行做产品经理"时,面试官的动机,是想知道:我为什么要录用你做产品经理 今日问题:为什么想做产品经理 面试时很多问题是相通的: 为什么想做产品经理 ...

  2. 别“躺”着了,赶紧把「复盘」做起来

    大家好,我是Z哥. 有一种类型的故事大多数人都喜欢,就是"屌丝逆袭"的故事,这也是很多小说的题材. 不管是在小说还是现实中,这样的逆袭都不是一蹴而就的.并且,大多数人一直只在逆袭的 ...

  3. 字节「大力」做教育,依然技术思维,1万员工参与,三年不考虑盈利

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 字节跳动搞教育,现在终于官方明确了. 名字和品牌也非常有意思:大力教育. 该品牌会承接字节跳动所有教育产品及业务. 而曾任今日头条CEO的字 ...

  4. 「2B」的产品到底是什么

    显然不是2(er4)B(bi1),而是英文to Business的缩写,不过,它与2C(Customer)的界限到底在哪里?区别在哪里?自己做过给内贸企业用的CRM和进销存,应该算2B吧:做过给淘宝运 ...

  5. 前腾讯游戏产品经理舒展:「觉」是产品最重要的维度

    嘉宾介绍 舒展,2002-2009 KONAMI游戏制作人,制作过:Frogger,Gradius,幻想水浒传,BEMANI等产品,2009-2016腾讯,曾负责QQ飞车,枪神纪,微信手环,微信运动等 ...

  6. 如何利用AI语义分析,做产品需求分析(1)

    近些年来,关于AI 的讨论有很多,也有不少人工智能相关的产业与产品在不断发展着.不过,对产品经理来说, AI 能否应用在产品需求分析上呢?为打造一款产品做出更好的帮助吗?笔者将为我们带来一系列的分析. ...

  7. 支付接口调用成功后如何让前端知道_开发口中的「接口」到底是什么

    你有没有遇到过这种情况: 1.发现线上有bug时,不知道是前端的问题,还是后端的问题? 2.需要通过一份<接口文档>设计产品功能,不知道如何思考? 3.好奇前端和后端是如何通信的? 下面将 ...

  8. 挖个冰块就能修自己!用「冰」做的科考机器车

    来源|大数据文摘作品 编辑|Mickey 上周,北京低温跌破21世纪最低纪录,达到零下20度.泼水成冰不只是东北的独有景观,北京的小伙伴也体验了一把快乐. ▲北京日报记者在北京体验泼水成冰 这周末,青 ...

  9. 全面解读如何利用百度知道来做产品推广

    百度系的百度知道是一个非常好的推广平台,权重高流量大,有很多人遇到问题都喜欢在百度知道里搜索或提问,从而得到帮助,所以,掌握合理方法技巧在百度知道做推广也是一种非常不错的营销手段.下面我就针对百度知道 ...

最新文章

  1. 相机矩阵(Camera Matrix)
  2. 【转】如何从SharePoint Content DB中查询List数据***
  3. 汕头市队赛 SRM16 T2
  4. 论文浅尝 | 从知识图谱流中学习时序规则
  5. linux 系统 可视化工具实时监控_Linux上的实时监控平台-你需要这样做
  6. 信息学奥赛一本通 提高篇 第6章 平衡树Treap
  7. 又翻车?苹果被揪出夸大iPhone续航时间:iPhone XR虚标51%
  8. matlab新建脚本java报错,Matlab(四)脚本的使用
  9. 20道做完信心嫉妒膨胀的前端测试题
  10. 标准模块 os.path
  11. 设计模式(外观模式)
  12. C#开发和调用Web Service
  13. A - Silver Cow Party(最短路径+矩阵转换)
  14. java实例成员与类成员区别_Java之实例成员与类成员
  15. White Sheet(面积法)
  16. C/C++如何整行输入
  17. 五款超级易用的网络监控软件
  18. C语言中puts跟printf的区别
  19. 互动微剧《明星大侦探》打造沉浸式探案体验
  20. 微信引流推广:美拍视频简单的引流方法分享

热门文章

  1. 长话短说,阿里云原生团队招人,急
  2. 开发函数计算的正确姿势——OCR 服务
  3. 降低 80% 的读写响应延迟!我们测评了 etcd 3.4 新特性(内含读写发展史)
  4. oracle 新建TNS监听,oracle for windows 监听问题之TNS-12545
  5. postgresql 安装_CentOS7安装使用PostgreSQL数据库
  6. php loading效果,利用CSS3打造十种Loading效果
  7. redis分布式锁实现原理_redis分布式锁实现分析与实践
  8. 保持函数依赖的模式分解可以减轻或解决什么_推荐系统玩家 之 因子分解机FM(Factorization Machines)...
  9. 坚果云下载的文件夹在哪_坚果云文件夹在哪?如何直接访问坚果云文件夹?
  10. scikit-image安装 from numpy.lib.arraypad import _validate_lengths ImportError: cannot import name ‘_va