解决方案:#小白接口# 使用云函数,人人都能编写和发布自己的API接口

优采云 发布时间: 2022-11-07 22:28

  解决方案:#小白接口# 使用云函数,人人都能编写和发布自己的API接口

  编写接口时,设置接口参数、接口返回、云函数代码等,如(部分截图):

  保存后可以看到在线界面文档是这样的(部分截图):

  提交审核和发布

  完成界面设计和云端功能开发后,即可勾选“申请发布”。审核通过后即可发布使用。

  .

  生成云接口和接口文档

  发布通过后,您可以生成自己的云界面和在线界面文档。

  可提供在线接口文档给客户端开发者查看和访问;云接口可以提供给客户端进行调用。

  生成的完整在线界面文档类似于:

  接口文件地址:

  http://api.yesapi.cn/docs.php?service=SVIP.Sdogstar_MyApi.ATest&detail=1&type=fold

  客户端调用后,即可得到云函数执行的结果。

  云函数编写完成后,会自动生成云接口和接口文档。如果需要,您也可以自己手动编写接口文档。

  温馨提示:如果需要手动编写API接口文档,可以进入我的在线文档编辑,保存后即可发布接口文档。

  文档编辑背景:

  保存后,对外查看的界面文档效果:

  如何支持多客户端访问?

  如果需要支持多个客户端调用API接口,可以【客户端管理】,添加一个客户端应用,然后分配app_key和key。

  云函数 PHP 开发手册

  下面介绍如何通过代码示例和模板开发云功能。您可以复制代码并稍作修改。只需几行 PHP 代码或一段代码,您就可以实现自己的业务逻辑并运行移动后端代码,而无需管理服务器。

  亮点开发说明

  开始之前,这里有一些重要的知识点和注意事项。

  重复说明一下,直连数据库的操作和我的model数据库一样,不同的是:直连数据库在使用前需要配置访问你的数据库,DI服务使用$di[' db_super'],最后需要填写完整的表名,不需要额外的_tbl后缀。

  直接投资服务清单

  DI服务功能说明 备注 $di['db'] 我的model数据库可以进行CURD数据库操作,对于单表 $di['db_super'] 直接连接数据库可以进行CURD数据库操作,对于单表,MySQL需要使用前要执行 配置数据库直连服务 $di['logger'] 日志服务记录各种日志 $di['email'] 邮箱服务发送邮件,使用前需要配置邮箱服务 $di[' pinyin'] 拼音服务将汉字转成拼音 $di['curl'] CURL服务请求远程接口,只支持80端口 $di['crypt'] 安全服务加解密数据 $di['sms_aliyun'] 阿里云短信通过阿里云服务发送短信,使用前需配置阿里云服务

  云函数代码模板F1-1,两个数字相加

  function ($params, $di) {

$result = array('err_code' => 0, 'err_msg' => '');

$result['sum'] = $params['left'] + $params['right'];

return $result;

}

  假设传入的参数为:left=1&right=2,请求这个云函数后,会得到如下结果:

  {

"ret": 200,

"data": {

"err_code": 0,

"err_msg": "",

"sum": 3

},

"msg": "V2.1.1 YesApi"

}

  F1-2、数据库——获取模型总数

  function ($params, $di) {

$result = array('err_code' => 0, 'err_msg' => '');

$result['count'] = $di['db']->article_tbl->count('id'); // 模型名称后面须带上_tbl后缀

return $result;

}

  假设你有如下模型,有 23 条数据:

  请求此云功能后,您将得到以下结果:

  {

"ret": 200,

"data": {

"err_code": 0,

<p>

"err_msg": "",

"count": 23

},

"msg": "V2.1.1 YesApi"

}</p>

  F1-3、数据库——添加模型数据

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$article = $di[&#39;db&#39;]->article_tbl;

$article->insert($data);

$result[&#39;id&#39;] = $article->insert_id(); // 返回新增的ID

return $result;

}

  F1-4、数据库——查询模型数据

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$result[&#39;article&#39;] = $di[&#39;db&#39;]->article_tbl->where(&#39;id&#39;, 1)->fetchOne(); // 取出id=1的文章数据

return $result;

}

  F1-5、数据库——更新模型数据

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$data = array(&#39;title&#39; => &#39;新文章标题&#39;, &#39;content&#39; => &#39;文章内容&#39;); // 待更新的数据

$result[&#39;update_row&#39;] = \$di[&#39;db&#39;]->article_tbl->where(&#39;id&#39;, 1)->update($data); // 更新id=1的文章数据,返回更新的数量

return $result;

}

  F1-6、数据库——删除模型数据

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$result[&#39;delete_row&#39;] = $di[&#39;db&#39;]->article_tbl->where(&#39;id&#39;, 1)->delete(); // 删除数据,返回删除的数量

return $result;

}

  F1-7、数据库——获取模型列表数据

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$result[&#39;list&#39;] = $di[&#39;db&#39;]->article_tbl->where(&#39;id > ?&#39;, 1)->where(&#39;id < ?&#39;, 10)->fetchAll(); // 取出id从1到10的全部数据

return $result;

}

  F1-8、数据库-获取模型列表数据(搜索+分页+排序+字段选择)

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$result[&#39;list&#39;] = $di[&#39;db&#39;]->article_tbl

->select(&#39;id, title, content&#39;)

->where(&#39;id&#39;, 1) // 精确区配

->where(&#39;name LIKE ?&#39;, &#39;%小白%&#39;) // 模糊匹配

->where(&#39;id&#39;, array(1, 2, 3)) // 范围枚举

->where(&#39;id > ?&#39;, 1) // 范围大于

->where(&#39;id < ?&#39;, 10) // 范围小于

->where(&#39;id BETWEEN ? AND ?&#39;, array(1, 10)) // 范围介于

->or(&#39;status&#39;, 1) // 或逻辑条件

->order(&#39;add_time DESC&#39;) // 按时间降序

->limit(0, 100) // 分页,取出前面100条

->fetchAll(); // 取全部数据

return $result;

}

  提醒:获取列表数据时,一定要使用limit来限制页数,否则审核会失败。

  F2-1,CURL-GET 请求

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

// 第一个参数为网址,第二个参数表示超时时间(单位毫秒)

$result[&#39;res&#39;] = $di[&#39;curl&#39;]->get(&#39;http://demo.phalapi.net/?username=YesApi&#39;, 3000);

// 得到结果类似:{"ret":200,"data":{"title":"Hello YesApi","version":"2.13.3","time":1590764249},"msg":""}

return $result;

}

  F2-2,CURl-POST 请求

  

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

// 第一个参数为网址,第二个参数是POST的参数,第三个参数表示超时时间(单位毫秒)

$result[&#39;res&#39;] = $di[&#39;curl&#39;]->post(&#39;http://demo.phalapi.net/&#39;, array(&#39;username&#39; => &#39;YesApi&#39;), 3000);

// 得到结果类似:{"ret":200,"data":{"title":"Hello YesApi","version":"2.13.3","time":1590764249},"msg":""}

return $result;

}

  提醒:通过云函数和CURL,可以对原有的API接口进行封装,形成开放的接口API。

  F3-1,日志

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$di[&#39;logger&#39;]->record(&#39;DEBUG&#39;, &#39;调试日志,这里可放日志内容&#39;);

$di[&#39;logger&#39;]->record(&#39;INFO&#39;, &#39;业务日志,这里可放日志内容&#39;);

$di[&#39;logger&#39;]->record(&#39;INFO&#39;, array(&#39;uuid&#39; => &#39;ABC&#39;, &#39;tip&#39; => &#39;第二个参数还可以是数组&#39;));

$di[&#39;logger&#39;]->record(&#39;NOTICE&#39;, &#39;提醒日志,这里可放日志内容&#39;);

$di[&#39;logger&#39;]->record(&#39;WARNNING&#39;, &#39;警告日志,这里可放日志内容&#39;);

$di[&#39;logger&#39;]->record(&#39;ERROR&#39;, &#39;错误日志,这里可放日志内容&#39;);

return $result;

}

  提醒:日志记录后,可在开放平台查看日志。

  F4-1,发送邮件

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

// 第一个参数是收件人邮箱,第二个参数是邮件标题,第三个参数是邮件正文内容(HTML格式)

$result[&#39;is_send&#39;] = $di[&#39;email&#39;]->send(&#39;helper@yesapi.cn&#39;, &#39;邮件标题&#39;, &#39;邮件内容&#39;);

return $result;

}

  提醒:使用前请先配置邮箱服务配置。

  F5-1、安全——加解密

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$result[&#39;encrypt_data&#39;] = $di[&#39;crypt&#39;]->encrypt(&#39;YesApi&#39;); // 对数据进行加密

$result[&#39;decrypt_data&#39;] = $di[&#39;crypt&#39;]->decrypt($result[&#39;encrypt_data&#39;]); // 对数据进行解密

return $result;

}

  提醒:每个app_key加密的数据只能用自己的app_key解密。

  F6-1,拼音

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$result[&#39;pinyin_1&#39;] = $di[&#39;pinyin&#39;]->convert(&#39;小白接口&#39;); // 将一段汉字串内容转成拼音,结果是:xiao bai jie kou

$result[&#39;pinyin_2&#39;] = $di[&#39;pinyin&#39;]->abbr(&#39;小白接口&#39;); // 获取拼音首字母,结果是:x b j k

$result[&#39;pinyin_3&#39;] = $di[&#39;pinyin&#39;]->name(&#39;张三&#39;); // 姓名转拼音,结果是:zhang san

return $result;

}

  F7-1。发简讯

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

// 参数1:手机号,参数2:短信签名,参数3:短信模板,参数3:更多数组参数(没动态参数时可传空数组)

$di[&#39;sms_aliyun&#39;]->aliyunSendSms(&#39;13800138000&#39;, &#39;小白接口&#39;, &#39;SMS_153055065&#39;, array(&#39;code&#39; => &#39;123456&#39;));

return $result;

}

  提醒:使用前需配置阿里云服务

  F9,效用函数

  function ($params, $di) {

$result = array(&#39;err_code&#39; => 0, &#39;err_msg&#39; => &#39;&#39;);

$time = time(); // 当前时间戳,例如:1590561632

$datetime = date(&#39;Y-m-d H:i:s&#39;); // 当前时间,例如:2020-05-20 00:00:00

$arr = json_decode(&#39;{"name":"YesApi"}&#39;, true); // json解析成数组

$json = json_encode($arr); // 数组转json

$md5 = md5(&#39;123456&#39;); // md5操作

return $result;

}

  更多的例子来了!

  官方发布:除了百度搜索、头条搜索,虎博搜索、夸克、How好好搜索都很好用

  前言:

  “今日头条”做了一个搜索,和“百度搜索”对比,看谁更接地气

  虎博搜索

  金融领域的主要搜索和问答系统。

  优势:

  1、信息数据覆盖全球、全网,尤其是金融和商业领域,涵盖市场、宏观、行业、研报、新闻等多维度数据。

  2. 搜索门槛低,可以使用口头问答。例如:“四大银行哪个收入更高?”、“阿里巴巴的活跃买家”。

  3. 搜索结果不再是一般的搜索产品、列表链接,而是系统经过计算汇总、解析文档、准确提取后呈现的结构化搜索结果。

  夸克

  阿里的智能搜索APP,AI引擎。毫秒启动,无推送,无推送,无广告。

  

  搜索的预判让用户无需点击搜索即可直接访问内容。这确实是我非常喜欢它的原因。其背后的机器学习和数据分析,在“李*敏*感*词*玉成”关键词这几种类型中,优势明显。

  《李现》:点击搜索前的推荐,应该可以实时覆盖热搜。

  “箍牙”:兼容百度和今日头条的优势,加上没有广告侵入,太干净了。和“李现”一样,出牌结果会加分。

  涵盖的类别,从官网、百科、天气、便利的环境,甚至是菜谱,都非常适合头条搜索,更何况数据上有这么多视频被用户清楚地识别。

  如何搜索好

  如何搜索好,问答搜索平台。

  也可以理解为日常琐事中的琐事。好内容来自私域,所以想把“万能朋友圈”搬到平台上。

  1.提问:关键词识别匹配,用户可以通过自然语言提问。

  

  2、回答:提取关键词后,会直接显示最近的回复。如果没有结果,将分发给平台上相应的用户回复。

  3.运营策略+财务属性,通过审核、打赏、兑现等,不断强化问答体验,确保有人问、有人答、流通。

  长尾关键词提取、自动完成和内容匹配、分发。

  今年8月公布的数据:

  平台累计提问超过1300万条,回复超过1800万条。用户每天提问 1.5 次,回复 3-4 次。回复率为90%,平均回复时间为15-30分钟。

  应用中 45% 的用户是问答提供者,而非浏览器,30 天留存率达到 25%。用户二次提问率为62%,二次回复率为64%。

  只看数据。他们都受到金钱的补贴,并受到*敏*感*词*提款的约束。许多人来收羊毛。

  比如“打磨”、“24小时无人接听,我送你1金币”,想了很多。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线