产品经理必懂的技术知识

news2024/11/26 9:34:28

API

是不是经常听见程序猿小哥哥A说:“这个简单,直接调用现成的接口就可实现。 一会儿程序猿小哥哥B说:“你这个不行,我们的第三方服务接口不支持。”

此时你的心里活动:API ≈ 听不懂 啥子是接口哦?接口能干啥呀?接口怎么用呀?我怎么去了解这个功能,接口到底能不能实现呀?莫慌,且看下文慢慢道来 API的全名是Application Programming Interface,又叫做“接口”。

如果你的产品是微信小程序,程序员就会说“咋们得好好看看微信开发接口文档”,“这里需要调用微信登录的api呀”,“哦,你这个功能的设计,微信的api不支持哟”。。。不懂技术的产品经理马上就一头雾水。

什么是api?

简单的说,api就是某个系统提供的带有约定说明的接口。通过调用api可以获取这个系统提供的服务,服务是什么?怎么调用?能获取什么?都在api的约定说明里面(术语称为‘接口规范’) 例如,我们可以调用百度的翻译接口将中文翻译为英文,可以调用微信的登录接口让用户通过微信登录到我们的系统中。 你可能已经get到了几个要点:

1 - 如果你的产品里面自带了翻译的算法,你就不用了解啥是api了。api常用于从其它系统获取服务。

2 - 如果你要让你的产品支持微信登录,因为微信不是你们家的,你必须了解微信的api

3 - api一定会提供详细的接口规范说明文档告诉你怎么使用这个接口,否则就用不了(例如下图就是微信某个接口的说明文档)

微信API说明文档示例

现实生活调用api的例子

下面是进阶,帮助你了解api的更多细节。为了让非技术的你能够理解技术世界的api,我必须得想一个较为类似的现实生活的例子,通过类比的方式快速理解。 现在全国各个街道社区都创办了便民图书馆,去便民图书馆借书就是一个很好的例子。我讲这个例子时带出一些api的专用术语,你就可以很快理解了。 你现在需要一本参考书,家里没有而且网上也买不到,却听朋友说这本书便民图书馆里有。于是你需要调用便民图书馆的【借书api】去获取这本书。(请注意是你有这个需要,而且这个需要你自己搞不定,所以才会去用便民图书馆提供的服务)

什么是api的url地址

你首先要找到最近的便民图书馆的位置,这就是api的访问地址。(所以每个api都有一个明确的url,也就是网络地址) 什么是api的接口规范 你到了图书馆,仔细看了门口的借书流程(这就是在阅读api接口规范)。

什么是api的参数

流程上说,你需要提供书的名字、作者、出版社、你的身份证、借多久,这就是调用借书api需要提供的参数。 什么是调用api 于是你走到服务台,向工作人员提供以上的信息,此时你就在“调用”api了。

什么是get调用方式

你可以向工作人员口述以上信息,此时你调用借书这个api的方式就是get方式。(get方式会将参数直接拼接在接口地址url的后面,从浏览器的地址栏就能一眼看出各个参数,是非常暴露的一种方式,犹如你向工作人员口述参数时旁边的人也能听到)

什么是post调用方式

你也可以填一张借书信息表,递交给工作人员,此时你调用借书这个api的方式就是post方式。(post方式会将参数放到http请求的body里面,浏览器地址栏是看不出参数的。因此填表的时候旁边有人也相对安全,偷窥除外)

什么是api的返回值

你传递了完整的参数成功调用了借书api,工作人员开始工作,她走进了库房,很快又出来,手里拿着你要的书,并且书上有一个标签纸写了还书的日期。她把这本书交给你,此时,你就拿到了api的返回值:【结果:借书成功;细节:【你要的书 + 还书的日期】 】 也可能,工作人员空着手出来了,但她给了你一张纸,上面写着另一个便民图书馆的地址、电话、工作时间。此时你也拿到了api的返回值:【结果:借书失败; 细节:【请到另一个图书馆取书,该图书馆的地址+电话+工作时间】】 于是,你会根据返回值的情况进行相应下一步的动作。 返回值有哪些情况,每种情况下都有哪些详细信息,都会在接口文档中说明。这个工作人员不是看见你帅就贴了一张还书日期的标签纸,这是图书馆的api接口规范!

只有一个api吗#API#

聪明的你马上会举一反三,图书馆提供的api肯定有 借书api、还书api、延期api、办理长期借书卡api。。。。。 这些都是图书馆提供的服务。每个服务都是api,都有api调用的地址(哪个窗口办理)、输入参数(你需要提供什么)、返回值(你将会得到几种可能的结果)。这些都会明确的写在api接口规范里。 所有这些api接口规范全部都张贴在一张巨大的墙上,这张墙就叫“开发平台手册”“开放平台开发指南”等等。其实就是各种api的详细说明。

什么是api调用的key和secret

图书馆发现仅凭身份证就能借书已经爆仓了。怎么办呢?借书卡!必须先办借书卡,每次凭卡号和密码进行借书。于是借书api的参数里面就多了借书卡的卡号和密码,卡号就是key,密码就是secret。 因此我们必须先调用图书馆的开卡api,获取属于自己的卡号key和密码secret,后面调用其它接口时提供自己的key和secret,图书馆的api就能提供服务。 没办卡就没有key和secret,就无法访问图书馆的接口。

现在几乎所有的api都会要求你先注册该系统的账号,生成自己的key和secret。例如你必须先注册百度开放平台的账号,才能调用百度翻译的api;必须先注册微信开放平台,才能调用微信的api。

微信开放平台把key叫做apppid,把secret叫做appsecret。 这种机制一方面是阻止不注册的人随意调用接口带来的服务器负荷,另一方面当然就是嘿嘿(你懂的)。

系统为什么要提供API接口?

你想过吗,系统为啥要提供这些API接口呢?百度为啥要提供翻译接口API,微信为啥要提供微信接口API。。。基本上你看到的大厂都有开发平台,都对外提供各种API接口。 腾讯,通过微信这个产品获取C端用户,也通过微信接口获取开发者用户,给其它产品赋能微信登录等功能的同时,也通过被赋能的产品在C端获得了品牌曝光度。相当于拓展了单一产品的市场。 不得不提到的是,接口调用也是会收费的哦,创造了新的收入方式。例如聚合数据这个网站,就是专门通过各种API接口赚钱的。

来看一个技术世界真实的API

现在来看一个技术世界真实的API。 https://fanyi.baidu.com/gettts?lan=en&text=hello&spd=1

现在你能看懂这个API了吗?

https://fanyi.baidu.com/gettts 就是 API的url地址,可以猜到这个API是百度提供的,用来得到翻译后的文本的语音!

?后面的都是访问这个API的参数

第一个参数 名字 叫做 lan,我们传入的 值 是 en,所以形成了 lan=en。

第二个参数 名字 叫做 text,我们传入的 值 是 hello,所以形成了 text=hello。

第三个参数 名字 叫做 spd,我们传入的 值 是 1,所以形成了 spd=1。

第一个参数告诉接口我们需要的是什么语言的语音(中文还是英文语音),第二个参数告诉接口需要什么文字的语音,第三个参数告诉接口需要什么语速的语音。 这个接口的访问方式是get方式,因为参数都在链接里面。因此你可以直接把这个链接放到浏览器里面试试结果。你会马上得到一个语音文件,就是hello的英文语音。

因此,如果你的产品里面需要朗读英文单词,你自己不可能有所有单词的朗读语音嘛,怎么办呢?就可以通过API,用百度的这个接口服务,通过这个接口获得英文单词对应的语音文件然后播放就可以啦!

总结

总结一下,API是获得另外一个系统提供的服务,API有明确的url地址,参数约定,返回值说明,总称为接口规范。根据接口规范,调用API,就可以获取这个系统提供的这个服务啦!了解更多的API知识

题外话

很长一段时间,身边的产品经理朋友都会问我一些技术知识。懂得一些技术知识,成为目前产品经理工作很重要的基础。所以打算用通俗的白话写一些技术知识,帮助产品经理和非IT行业的人士了解技术。如果你有什么想要了解的技术知识,欢迎在评论中留言,我希望我写的正是你需要的。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/364666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git合并分支

在复杂系统的开发过程中,我们经常需要通过不同的功能或环境分支来进行管理,那么开发阶段完成时,还需要进行合并,下边分享一下合并的流程:首先确保要合并的两个分支 本地分支与远程分支一致可以通过IDEA切换对应分支拉取…

【已解决】解决IDEA的maven刷新依赖时出现Connot reconnect错误

前言 小编我将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注一下!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习&#…

SAP分析云2023年第一季度亮点更新介绍

本文介绍了SAP分析云2023年第1季度的季度发布(QRC)新功能和增强功能。较于以往的版本,这次的更新在系统管理和服务管理、增强分析、业务内容交付、仪表盘和故事设计、Microsoft集成等方面做了产品的功能更新改进。那就和阿拓一起看看吧&#…

工作中,python真的有用吗?

普通上班族学Python有用吗? 那么,我也在这里提出一个问题:Python究竟适不适合办公人士来学习,以及学了之后究竟能不能给我的工作来带质一般的飞跃? 以我的亲身经历为例,我可以很负责的告诉大家&#xff0c…

Liunx服务器安装SVN

一、下载svn安装包链接:https://pan.baidu.com/s/1gkS0tef2kQP6nvXOS64hUw 提取码:cyuw二、SVN安装部署通过sftp将文件拉取到目的主机路径:/usr/package 跳转文件路径: cd /usr/package 执行解压命令:tar -zxvf subversion-1.14.2.tar.gz 执行…

Mysql的安装、语法、优化

1 数据库 数据库是存储数据,管理数据的仓库。 常见的数据库有两种: 关系型数据库:数据关系紧密。关系模型是二维表格模型,一个关系型数据库就是由二维表及其之间的关系组成的一个数据集合。 Oracle、MySQL、SQLServer、Access…

基础算法一:同向双指针

同向双指针——滑动窗口 讲解实例:LeetCode209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合…

二叉树、二叉搜索树、二叉树的最近祖先、二叉树的层序遍历【零神基础精讲】

来源0x3f:https://space.bilibili.com/206214 文章目录二叉树[104. 二叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-binary-tree/)[111. 二叉树的最小深度](https://leetcode.cn/problems/minimum-depth-of-binary-tree/)[129. 求根节点到叶节点…

工时表软件在项目中的作用 帮助企业管理项目成员的工时

企业的不断发展离不开每一个成功交付的项目,但在任何一个项目中,人力成本是主要的成本之一,员工的工作效率高低影响着项目成本和质量的关键点。如果想要降低整个项目的成本那就需要对员工工时更加精准的把控,所以规范管理员工时间…

文 件 操 作

程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束都会被释放通过文件可以将数据持久化C中对文件操作需要包含头文件< fstream >文件类型分为两种:1.文本文件&#xff1a; 文件以文本的AScII码形式存储在计算机中2.二进制文件&#xff1a; 文件以文本的二…

java反序列化基础

序列化与反序列化 1、概述 序列化是让Java对象脱离Java运行环境的一种手段&#xff0c;可以有效的实现多平台之间的通信、对象持久化存储。 Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存、文件、数据库中&#xff0c;ObjectOutputStream类的writeObject(…

计算几何原理与例题

目录 一、前言 二、简单几何 1、平面切分&#xff08;2020年省赛&#xff0c;lanqiaoOJ题号503&#xff09; 2、三角形的面积&#xff08;lanqiaoOJ题号1231&#xff09; 3、点和直线关系&#xff08;lanqiao0J题号1240&#xff09; 4、点和线段关系&#xff08;lanqiaoO…

活动回顾丨研发效能度量线下沙龙圆满举办

2月18日&#xff0c;由跬智信息&#xff08;Kyligence&#xff09;联合甄知科技主办的研发效能度量线下沙龙圆满举办。本次沙龙在 Kyligence 上海总部举办&#xff0c;Kyligence 联合创始人兼 CTO 李扬、腾讯 Tech Lead 茹炳晟&#xff0c;以及甄知科技创始人兼 CTO 张礼军在现…

ClickHouse学习笔记(一):ClickHouse架构概述(为什么ClickHouse这么快呢?)

文章目录1、ClickHouse 概述1.1 、简述1.2 、名词解释1.2.1 、MPP 架构1.2.2 、向量化执行引擎1.2.3 、SIMD1.2.4 、OLAP1.3、应用场景2、ClickHouse 核心特性2.1、完备的 DBMS 功能2.2、列式存储与数据压缩2.3、向量化执行引擎2.4、关系模型与SQL查询2.5、多样化的表引擎2.6、…

简单的C++:【运算符重载】新手易学

学过C语言的同志们应该都知道位运算符>> 和 << &#xff08;右移左移&#xff09;&#xff0c;但是这两个运算符在C中还是我们的输入和输出流操作符&#xff0c;那么这是为什么呢&#xff1f;&#xff0c;了解完本篇文章之后&#xff0c;我们再来回答这个问题。 C为…

python和C++代码实现模拟动态指针时钟

一、python代码实现及turtle库简单介绍 桌面时钟项目描述 1、使用turtle库绘制时钟外形及表针&#xff1b; 2、使用datetime获取系统时间&#xff1b; 3、时钟动态显示 turtle库基本命令 1、turtle.setup()函数&#xff1a;用于启动一个图形窗口&#xff0c;它有四个参数…

2023-02-22干活小计

复现BERT&#xff1a; 只能说爷今天干了一上午一下午的代码 bert的输入&#xff1a; batch_size * max_len * emb_num 768 * 768 bert的输出&#xff1a;三维字符级别特征(NER可能就更适合) 二维篇章级别特征(比如文本分类可能就更适合) batch_size * max_len * emb_num, ba…

亲身试验 Outlook防关联方法分享

Outlook在海外的用途是很广泛的&#xff0c;不仅可以用于收发邮件&#xff0c;还可以作为各类第三方网站的登录凭证。所以Microsoft对于Outlook的监管还是比较严格的&#xff0c;跨境卖家大量注册Outlook账号使用的话很容易被检测出关联然后被封号。龙哥针对Outlook防关联的问题…

35-Golang中的方法

Golang中的方法方法的介绍和使用方法的声明和调用方法的调用和传参机制原理方法的声明(定义)方法注意事项和细节讨论方法和函数的区别方法的介绍和使用 在某些情况下&#xff0c;我们需要声明(定义)方法。比如person结构体&#xff0c;除了有一些字段外(年龄&#xff0c;姓名……

unix高级编程-僵尸进程和孤儿进程

僵尸进程&#xff1a; 一个父进程利用fork创建子进程&#xff0c;如果子进程退出&#xff0c;而父进程没有利用wait 或者 waitpid 来获取子进程的状态信息&#xff0c;那么子进程的状态描述符依然保存在系统中。 孤儿进程&#xff1a;一个父进程退出&#xff0c; 而它的一个或…