API的教学点(API的简介和API的请求附代码实例,以淘宝API接口请求为实例)

API的教学点

1.API的简介

2.API的请求和代码实例

一.API的定义

API就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。

API:应用程序接口(API:Application Program Interface)

应用程序接口是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。程序员通过调用 API 函数对应用程序进行开发,可以减轻编程任务。 API 同时也是一种中间件,为各种不同平台提供数据共享。

根据单个或分布式平台上不同软件应用程序间的数据共享性能,可以将 API 分为四种类型:

远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信。

标准查询语言(SQL):是标准的访问数据的查询语言,通过数据库实现应用程序间的数据共享。

文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。

信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享。

API 与图形用户接口(GUI)或命令接口有着鲜明的差别:API 接口属于一种操作系统或程序接口,而后两者都属于直接用户接口。

有时公司会将 API 作为其公共开放系统。也就是说,公司制定自己的系统接口标准,当需要执行系统整合、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码,该接口标准被称之为开放式 API。

二.淘宝API的请求参数和代码       

1.调用第三方平台接口需要进行系统间的通信,目前常用的协议是http和https;简单理解https是http的加密版,可以将用户到服务端请求的信息进行加密,避免因明文传输被截获而获知用户信息。

基于http协议的接口具有轻量级、跨平台、和跨语言的特点,为了适应不同的开发者,目前各个第三方平台都会提供基于各种常用语言的接口形式,因此大多采用http或https协议;举例,百度、科大讯飞:笔者查阅了百度、腾讯、旷视、阿里的云平台发现在视觉方面均都采用的是https协议;对于视觉,图片数据本身包含的信息就很丰富,尤其是人脸,因此采用https还是有利于保护用户隐私信息的。

2、 接口的请求方式

了解接口的请求方式有助于了解用户端和服务端间的交互方式,基于http协议的常用请求方式是post和get;两者的主要区别如下:

(1)直观区别:get请求方式是将请求参数放到url中,post是将参数放到requst body中,所带来的的直接影响是get的请求参数存在长度限制,post无限制;其次是get将参数放到url中安全性弱于post;

(2)深度区别:get请求方式用户端和服务端只产生一次交互,post请求方式用户端会和服务端产生两次交互,举例:快递小哥是用户端,你是服务端,则get就像常来你们小区和你认识的快递员直接将快件送到你家,你跟他说声谢谢;post就像新来的快递员先打个电话问下你在家吗?你告诉他你在家呢,过了5分钟他将快递送到你家了,你跟他说声谢谢;

3.请求参数及代码

taobao.item_get

公共参数

名称类型必须描述
keyString调用key(必须以GET方式拼接在URL中)
secretString调用密钥
api_nameStringAPI接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]
cacheString[yes,no]默认yes,将调用缓存的数据,速度比较快
result_typeString[json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读
langString[cn,en,ru]翻译语言,默认cn简体中文
versionStringAPI版本

请求实例

<?php

// 请求示例 url 默认请求参数已经URL编码处理
// 本示例代码未加密secret参数明文传输,若要加密请参考:https://open.…….cn/help/demo/sdk/demo-sign.php
$method = "GET";
$url = "https://api-gw.…….cn/taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1";
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
var_dump(curl_exec($curl));
?>
<?php
//定义缓存目录和引入文件
define("DIR_RUNTIME","runtime/");
define("DIR_ERROR","runtime/");
define("SECACHE_SIZE","0");
//SDK下载地址 https://open.…….cn/help/demo/sdk/……-api-sdk.zip
include ("ObApiClient.php");

$obapi = new otao\ObApiClient();
$obapi->api_url = "http://api-gw.……n/";
$obapi->api_urls = array("http://api-gw…….cn/","http://api-1.…….cn/");//备用API服务器
$obapi->api_urls_on = true;//当网络错误时,是否启用备用API服务器
$obapi->api_key = "<您自己的apiKey>";
$obapi->api_secret = "<您自己的apiSecret>";
$obapi->api_version ="";
$obapi->secache_path ="runtime/";
$obapi->secache_time ="86400";
$obapi->cache = true;

$api_data = $obapi->exec(
                array(
	                "api_type" =>"taobao",
	                "api_name" =>"item_get",
	                "api_params"=>array (
  'num_iid' => '652874751412',
  'is_promotion' => '1',
)
                )
            );
 var_dump($api_data);
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值