PHP如何更优雅地调用API接口

admin 轻心小站 关注 LV.19 运营
发表于thinkphp交流版块 教程

API接口在各种场景中已经非常普遍使用,通常在PHP后台调用API接口,需要通过Curl库来自己封装,且不说各种充值门槛,还要被各种api接口平台的appKey、appSecret之类的参数困惑,没法

API接口在各种场景中已经非常普遍使用,通常在PHP后台调用API接口,需要通过Curl库来自己封装,且不说各种充值门槛,还要被各种api接口平台的appKey、appSecret之类的参数困惑,没法实现统一调用,很多小白更是被Curl各种配置参数弄得头大。ThinkPHP官方出品的ThinkAPI服务正是为了解决PHP接口调用的各种麻烦问题。

ThinkAPI统一API接口服务是由官方联合合作伙伴封装的一套接口调用服务及SDK,旨在帮助ThinkPHP开发者更方便和更低成本调用官方及第三方的提供的各类API接口及服务,从而更好的构建开发者生态。

通过ThinkAPI提供的SDK功能可以以更优雅的方式来调用API接口,首先需要在你的项目里面安装think-api库(适用于任何PHP5.6+项目,没有任何框架要求)。

composer require topthink/think-api

然后就可以调用你需要的接口进行查询和返回数据,支持ThinkAPI所有的API接口,以查询身份证所属地区接口为例:

use think\api\Client;

$client = new Client("appCode");

$result = $client->idcardIndex()
    ->withCardno('身份证号码')
    ->request();

idcardIndex方法就是调用了身份证归属地查询接口 withCardno方法则表示传入了cardno参数,如果还需要传入更多的参数则链式调用更多的方法即可,最后通过request方法进行实际调用并返回数据。通过IDE配合的话,你不需要自己记住任何接口方法名和参数方法名,都会有自动提示。

ThinkAPI所有的API调用服务必须设置appCode值(只需要注册一个账号即可获取),用于接口调用的身份认证。如需多次调用的话,建议自己在项目里面封装一个助手函数,例如:

use think\api\Client;

/**
 * API接口调用助手函数
 * @return Client
 */
function api(): Client
{
    return new Client('yourAppCode');
}

// 调用示例
$result = api()->idcardIndex()
    ->withCardno('身份证号码')
    ->request();

所有的接口服务和方法都支持IDE自动提示和完成(请务必注意方法大小写必须保持一致),所有的返回数据都是JSON格式,因此基本上不需要文档即可完成接口开发工作。API接口调用中的一些常见问题通过系统的方法封装都可以规避掉,你甚至不需要关心接口是要用GET还是POST,都是系统自动处理的。

SDK把所有接口和参数都封装为一个个独立的方法,你可以像调用一个类的方法一样简单的调用官方支持的任何API接口,也无需再去记住每个接口的参数有哪些。

如果你的环境不支持Composer或者PHP版本过低,可能需要你自己封装Curl库来调用接口。ThinkAPI接口文档都提供了两种方式调用:直接调用接口地址和使用SDK调用。

目前ThinkAPI已经接入包括实名认证、人工智能、电子商务、新闻资讯和生活服务等类目在内的常用API接口共269个,包含大量免费接口,付费接口的价格比较实在、门槛也低,并且还在陆续扩充中。更详细的用法可以参考:https://doc.topthink.com/think-api

文章说明:

本文原创发布于探乎站长论坛,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,探乎站长论坛平台仅提供信息存储空间服务。

评论列表 评论
admin 轻心小站 LV.19 运营 2#
emotion
共0条回复,点击查看回复
发布评论

评论: PHP如何更优雅地调用API接口

粉丝

0

关注

0

收藏

0

已有0次打赏