什么是API接口?API接口怎么用?计支宝API开放平台是啥?
- 版本:计支宝信息科技有限公司
- 上架时间:2019-01-05
- 服务商:计支宝信息科技有限公司
- 咨询热线: 400-965-0588
一、什么是API接口?
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API 接口属于一种操作系统或程序接口,而后两者都属于直接用户接口。 有时公司会将 API 作为其公共开放系统。也就是说,公司制定自己的系统接口标准,当需要执行系统整合、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码,该接口标准被称之为开放式 API。
说到API,往往是和SDK放在一起的。
什么叫API,看一下餐厅里怎么点餐的就行了。
到了饭店,喊一场服务员,点餐。
服务员拿出来菜单给你看,你点什么,她在小本本上记什么。
点好了之后,再把菜单送到后厨去。
这里服务员就是提供服务的(不然也不叫服务员),提供什么服务呢?
点餐服务。
点餐服务需要什么呢?
谈一个服务,通常就是要谈输入是什么,输出又是什么。
从眼下这个例子来看,输入就是一道道菜品的名字(或者是ID,不知道你们见过菜品上面有编号,服务员只记编号的?),输出的结果就是端过来的一道道菜。
有了输入和输出,服务员就可以提供了点餐的功能,这就是API,顾客就是调用者,服务员就是服务的提供者。
你可以在这里把服务员替换成猫猫,假设女王大人猫猫来给你提供服务,只要输出是菜品的名字,输出是菜品,这个API就是能够正常使用的。
而且,所有的顾客都可以用这种方式来点菜的~~~
再想想,是不是有的服务员手里拿的是点餐机?想想一个漂亮的小姑娘,拿着一个和手机大小差不多的点餐机,这个点餐机,就是需要和后厨系统有交互,这种交互,就需要一种约束,来声明点菜功能的输入是什么,输出是什么。比如说,如果用户点了一道已经估清的菜,是不是服务员要告诉顾客一下?
API通常是以Http的形式提供,它隐藏的含义就是,只要你符合我定义的标准,你就可以来使用我。
比如说,服务员是中国姑娘,顾客是美国人,没关系,只要美国人能说中国话,这套API就可以使用。如果美国人只会说英语,怎么办?让和美国人一起来吃饭的中国朋友翻译成中文,就可以了~~
那么什么是SDK呢?
当美国人不会说中文的时候,饭店里的大堂经理来了,他来给美国佬当翻译。这就是SDK,SDK一般都是和语言相关,是官方提供的各种不同语言的实现版本。
同样的,我们再把思维模式扩大一点。
除了Http这种API,内部系统集成的组件,是否也是有API?
你会发现,确实是这样的,比如说,JDK本身提供的各种API,在这里,API和SDK的概念没有那么清楚了,但是API本身的含义就是,当服务的提供方对外提供服务的时候,应该声明输入和输出和功能的明确含义。
而一组组明确声明了的输入,输出和功能描述,就是服务方提供的各种API。
比如说数组对外暴露的方法,链表对外暴露的方法等等。
那么,API和方法之间有没有明显的区别呢?暴露出去的,可被公开使用的方法,统称为API~~~
以上解释不够严谨,但是对于初学者来说,理解起来应该够了。
如果你在理解API的时候有困难,大概问题并不是在API上,而是你有没有理解清楚什么叫做封装,什么叫做服务?
二、API接口怎么用?
方法一:用前端方法调用api
完整代码:
1 <!DOCTYPE html>
2
3 <html lang="en">
4 <head>
5 <meta charset="UTF-8">
6 <title>Title</title>
7 </head>
8 <style>
9
10 </style>
11 <body>
12 <button onclick = request()>tijiao</button>
13 </body>
14 </html>
15 <script>
16 function request() {
17 var xhr = new XMLHttpRequest;
18 xhr.onreadystatechange = function () {
19 if (this.readyState == 0) {
20 console.log("UNSENT open 尚未调用");
21 } else if (this.readyState == 1) {
22 console.log("OPEND open 已调用");
23 } else if (this.readyState == 2) {
24 console.log("接收头消息");
25 } else if (this.readyState == 3) {
26 console.log("接收响应主体");
27 } else {
28 console.log(JSON.parse(this.responseText));
29 }
30 };
31 xhr.open('GET', "http://route.showapi.com/90-87?showapi_appid=45300&showapi_sign=c28de9d6f79e44369a9abcd40fa3e277");
32 xhr.send();
33 }
34 </script>
如果你想直接使用我上述代码,也是可以的,直接复制就好.
我解释一下上面的那个url(其实就是我们调用的api):
红色部分: 表示这个api的提供商,不是同一个api,后面的数字不一样
绿色部分: 表示这个api的appid,自己申请到api后,都会有自己的appid
黄色部分: 表示这个api的appkye,每个应用的appid和appkey申请完,自己都是可以看到的.
然后根据我上面的格式拼接到一块儿就可以调用了.
完整代码如下:
<?php
header("content-type:text/html;
charset=utf-8");
$fp = fopen("http://route.showapi.com/341-1?showapi_appid=35585&showapi_sign=249e47ff8d5e4bf7b44d55a42e0163ef", "r");
stream_get_meta_data($fp);$result = "";
while (!feof($fp)) {$result .= fgets($fp, 1024);
}echo $result;fclose($fp);
这个是php调用api的方法,api的拼接和上述一样,最后的那个棕色的 "r" 意思是只读模式.
三、计支宝API开放平台介绍
计支宝API开放平台基于计支宝生态体系,旨在为用户提供更加全面和优质的服务。计支宝将突破现有的产品线来开放API接口,迎接合作伙伴的加入,最大限度满足用户的全场景使用体系,将产品价值输出最大化和最优化。