ThinkAPI服务SDK正式发布

在官方不久前宣布提供统一API接口服务之后,SDK接口现在也已经正式发布了1.0版本 。
ThinkAPI服务介绍开发者经常为了各种功能而四处寻找是否有相应的API接口,即便找到了可能还要忍受第三方各种奇葩的SDK调用,或者不支持composer安装 。
ThinkAPI统一API接口服务是由官方联合合作伙伴封装的一套接口调用服务及SDK,旨在帮助Thinkphp开发者更方便的调用官方及第三方的提供的各类API接口及服务,从而更好的构建开发者生态 。
一站式接口服务ThinkAPI提供了一站式的接口服务,从接口购买、调用到SDK封装都只需要一个官方账号即可完成,无需注册各种接口服务账号,除了涵盖常用API服务之外,还设计了可转换接口服务更好的保障接口的稳定性,让你省心省力 。
提供统一的SDK官方提供了一套统一的SDK for PHP调用服务,通过composer安装一个轻量级的依赖包即可调用,采用简洁和现代化的调用方式,并且对IDE友好,可以简化你的API调用开发工作 。
官方服务市场保障ThinkAPI所有支持的接口都纳入官方服务市场,包括免费接口和付费接口,市场服务有保障,并且有购买记录以及统计数据 。
对于一些付费的接口,官方的服务市场提供了更优惠的价格 。
身份认证(AppCode)无论是免费还是付费接口,都需要通过AppCode授权后才能进行接口请求 。AppCode的值可以在官方服务市场->个人中心->API管理的上方查询到,每个用户账号拥有一个唯一的AppCode值(请不要随意泄露) 。
ThinkAPI服务SDK正式发布

文章插图
 
可以使用两种方法进行身份认证:
第一种:Header信息认证(推荐)在请求Header中添加的Authorization字段,配置值为“AppCode + 半角空格 +AppCode值” 。
格式如下:
Authorization:AppCode AppCode值第二种:请求参数认证请求Query中添加的appCode参数,参数的值为用户AppCode的值 。
https://API接口地址?appCode=AppCode值原生API调用ThinkAPI所有支持的接口服务都有一个唯一的接口调用地址,这个接口地址统一使用https://api.topthink.com 作为接口网址,例如身份证查询接口的请求地址是:
https://api.topthink.com/idcard/index你可以通过下面的请求来调用接口
https://api.topthink.com/idcard/index?appCode=AppCode值&cardno=要查询的身份证号码你可以在注册市场账号后测试下这个免费接口,查看具体的返回数据 。
注意:部分接口可能采用不同的请求类型,不一定是GET请求,具体的接口参数请参考具体的API文档,会有详细的说明 。
返回数据格式所有的api接口返回数据规范如下:
名称类型说明codeint返回码,0 表示成功 其它表示失败messagestring返回提示信息dataobject返回数据
当code为0的时候计费,其中data包含的数据和具体的接口有关 。
使用SDK调用除了使用原生的方式调用接口外,ThinkAPI还提供了一套通用的SDK接口规范,让你用更简洁和现代化的方式调用接口服务 。使用方法如下:
首先需要在你的项目里面安装think-api库
composer require topthink/think-api
建议设置使用阿里云 Composer 全量镜像
然后就可以调用你需要的接口进行查询和返回数据,还是以上面的查询身份证所属地区接口为例说明:
use thinkapiClient;// API调用之前必须设置`AppCode`值,用于接口调用的身份认证$client = new Client("YourAppCode");// 调用某个接口方法和传入参数$result = $client->idcardIndex()->withCardno('身份证号码')->request();var_dump($result);所有的接口服务和方法都支持IDE自动提示和完成(请务必注意方法大小写必须保持一致 确保参数名的正确性),基本上不需要文档即可完成接口开发工作 。
上面是免费接口的SDK调用示例,付费接口的调用方式是完全一样的,区别在于付费接口你必须要先在市场购买接口次数才能正常调用(ThinkAPI服务的接口必须在官方市场购买才有效,第三方购买的接口是不支持调用的),而免费接口则有每天不超过100次请求的限制 。
下面是身份证实名认证的接口调用示例:
$client = new Client("YourAppCode");$result = $client->idcardQuery()->withIdcard('身份证号码')->withRealname('姓名')->request();var_dump($result);
注意,该SDK服务仅支持官方已经接入的API接口,目前接口数量正在扩充中,你可以联系我们反馈你需要的API接口,我们来统一进行接入 。


推荐阅读