如何访问EMQX提供的API接口

参考资料

官方网站 HTTP API HTTP协议

创建应用并指定授权码

登录EMQX的文本管理端,如果未做过任何更改,管理端的地址应该是服务器IP的18083端口。成功登录WEB管理端后依次点开"通用","应用"。我们首先新建一个APP,APP的ID和名称可以随意输入,状态选择允许访问,到期日期根据实际需要进行选择。创建成功后把EMQX默认的应用删除,否则会有安全隐患。我们还需要把/etc/emqx/plugins/emqx_management.conf中默认APP帐号和密钥的配置注释掉,否则重启EMQX服务后默认APP会被重新创建。然后我们回到应用列表页面,在操作中点击查看,查看我们刚刚创建的应用,在详细信息中我们可以看到APP密钥。

测试访问API接口

我们得到了APP密钥后就可以使用HTTP请求来访问API接口了。需要特别注意的是我们在Header中需要加入授权信息,具体可以参考下面的示例。其他接口的定义请参考文章顶部的官方参考资料。下面两段示例中,第一段是在Linux命令行中直接用CURL请求,第二段是使用PHP代码请求。

            curl -i --basic -u app_id:app_key-X GET "http://localhost:8081/api/v4/nodes"
        
            $app_id = 'app_id';
$app_key = 'app_key';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Basic '.base64_encode($app_id.':'.$app_key)]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;