ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC=2,3] ## 云API * 面向微擎开发者 * 新的防盗版机制 * 避免重复造轮子 * 供自己使用 * **无偿** 或 **有偿** 供其他开发者使用 ## 发布 API 步骤 1. 新增 API, 完善信息, 添加说明文档. 2. 上传 API 版本, 完善版本说明 3. 等待审核 4. 审核通过可以使用 5. 审核拒绝重复 2. 6. 开发者可以在 **[API 广场](http://s.we7.cc/index.php?c=develop&a=api&do=mall&)** 购买他人发布的免费或收费 API. ## 开发说明 1. API 本质就是一个 `class`, 可以含有任意多个方法 ( `method` ) , 输入参数 **$gpc** 等价 **$_GPC**. 2. API 标识支持大小写字母, 假设为 `$api_name`. 3. API 目录为标识的小写, `strtolower($api_name)`. 4. API 入口文件为 `strtolower($api_name).'.php'` 5. API 方法命名不作特殊要求. 文件目录结构示例 ``` /api /api/lib/test.php /api/api.php ``` API 入口文件示例 ``` class Api { public function method($gpc) { include 'lib/test.php'; // code here } } ``` >[success]注意事项: >1. 开发者必须上传源码,不允许加密,否则不予审核. >2. 暂不支持数据库操作与文件读写. 未来将会支持. >3. 不要用 `return` 返回值, 请使用 `exit(json_encode($data));` 或 `die($content);`. >4. 使用 include, require 时, 请使用 **相对路径** ## 模块中调用 示例 ``` load()->classs('cloudapi'); // 开发版调用方式 $api = new CloudApi(true); // 发布版调用方式 $api = new CloudApi(); $rmb = $api->get('We7Util', 'to_rmb', array('number' => 123400786)); print_r($rmb); ``` ## 调用 API 的条件 * API 审核通过 * 模块在云服务备案(在线设计或已发布) 调用API需要满足以下条件: * 模块所有者为开发者 * 此 * 所调 API 审核通过 * 拥有 API 的所有权(作者)或使用权(购买获得) 发布版调用权限需要满足以下条件: * 已注册站点 —— 普通版、商业版、授权版 * 正版模块 —— 在线购买安装 * 模块开发者拥有所调 API 的使用权(开发或购买) ## 调用 API 并获取结果 三种调用方式 * url 访问链接 * get 带参数 GET 请求 * post 带参数 POST 请求 > 调用参数 |名称 | 类型 | 必填 |描述 |说明 | | -- | -- | -- | -- | -- | | $api | string | 是 |API标识,目录名,类名,php文件名 | | | $method |string |是 |方法名称 | | | $url_params | array |否 |query string | | | $post_params |array |否 |提交的参数 | | | $dataType | string |否 |返回值类型 |json:使用GET,POST将获得php array类型 ;<br/>html: | > 返回值 array | string * * * * * #### URL 访问链接 获取一个 `url`, 如获取一个二维码或页面. > 开发示例 ``` class We7Util { public function qrcode($gpc) { require 'phpqrcode.php'; if (empty($gpc['content'])) { json_result(error(1,'参数错误.')); } $errorCorrectionLevel = "L"; $matrixPointSize = "8"; $text = trim($gpc['content']); QRcode::png($text, false, $errorCorrectionLevel, $matrixPointSize); exit(); } } ``` > 调用示例 ``` load()->classs('cloudapi'); $cloud_api = new CloudApi(); $url = $cloud_api->url('We7Util', 'qrcode', array('content' => 123400786)); echo '<img src="'.$url.'">'; exit; ``` * * * * * #### GET >[success] public function url($api, $method, $url_params = array(), $dataType = 'json') 示例: 金额转人民大写 ``` load()->classs('cloudapi'); $cloud_api = new CloudApi(); $rmb = $cloud_api->get('We7Util', 'to_rmb', array('number' => 12300678.89), 'json'); print_r($rmb); ``` #### POST >[success] public function post($api, $method, $post_params = array(), $dataType = 'json') 示例: 中奖概率 ``` load()->classs('cloudapi'); $cloud_api = new CloudApi(); $post_data = array( 'prizes' => array( array('prize' => '飞机', 'rate' => 1), array('prize' => '大炮', 'rate' => 2), array('prize' => '花椒', 'rate' => 10), array('prize' => '大料', 'rate' => 20), array('prize' => '谢谢惠顾', 'rate' => 67), ) ); $prize = $cloud_api->post('We7Util', 'probability', $post_data, 'json'); var_dump($prize); ```