必懂的技术知识

简介: 必懂的技术知识

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行业的人士了解技术。如果你有什么想要了解的技术知识,欢迎在评论中留言,我希望我写的正是你需要的。

相关文章
|
1月前
|
设计模式 程序员
从零到一:我的编程之旅与技术感悟
【10月更文挑战第22天】这是一篇关于个人编程学习经历和技术感悟的文章。文章以通俗易懂的语言,讲述了作者从一个编程新手,通过不断学习和实践,逐渐成长为一名熟练的程序员的过程。文章不仅分享了学习编程的方法和技巧,还深入探讨了编程的本质和意义,对于想要学习编程的人来说,具有很好的启发和指导作用。
33 2
|
4月前
掌握这 3 个诀窍,你也能成为一个技术大牛
掌握这 3 个诀窍,你也能成为一个技术大牛
|
6月前
|
算法 开发者
代码之美:技术感悟与编程艺术
【6月更文挑战第28天】在数字世界的构建中,代码不仅仅是冷冰冰的指令集合,更是开发者智慧与情感的结晶。本文将深入探讨编程背后的艺术性,揭示如何通过技术感悟提升代码质量,以及在日复一日的编码实践中如何保持创新与热情。
|
7月前
|
数据采集 人工智能 前端开发
干货满满,转行逆袭,0编程基础学Python拿高薪offer如何做?都在这里!
干货满满,转行逆袭,0编程基础学Python拿高薪offer如何做?都在这里!
|
设计模式 数据采集 程序员
代码整洁之道--告别码农,做一个有思想的程序员
代码整洁是软件长期稳定和可扩展的基础,本文作者从现实中的代码、重构、设计模式谈论代码整洁之道,总结出如何做一个有思想的程序员。
131423 58
|
设计模式 架构师 Java
牛皮了!世界级架构师,图解面向对象编程,小学生都能看得懂
面向对象编程(Object-oriented Programming,缩写:OOP)是软件工程中一种具有对象概念的编程范式(Programming Paradigm),同时也是一种程序开发的抽象方针,与之对应的编程范式还有:函数式编程(Functional Programming)、过程式编程(Procedural Programming)、响应式编程(Reactive Programming)等。
|
算法
谈一谈|编程中的数学思维
谈一谈|编程中的数学思维
165 0
|
敏捷开发 算法 架构师
【备战软考架构师系列笔记 · 001】软件工程篇 —— 软件开发方法的主要分类 ⭐
# 软件开发方法### 分类- 按功能 - 水平原型(针对界面) - 垂直原型(针对复杂算法)
242 0
【备战软考架构师系列笔记 · 001】软件工程篇 —— 软件开发方法的主要分类 ⭐
|
设计模式 运维 前端开发
《构建之法-现代软件工程》读书笔记(二)
《构建之法-现代软件工程》读书笔记(二)
《构建之法-现代软件工程》读书笔记(二)
|
前端开发 算法 JavaScript
蓝桥杯web开发-5道模拟题让你信心满满
距离蓝桥杯已经不到5天了,今天总结一下做过的5道简单的web开发组模拟题来增加信心,你只管努力学习,剩下的交给天意!
613 0
蓝桥杯web开发-5道模拟题让你信心满满