解决方案:#小白接口# 使用云函数,人人都能编写和发布自己的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('err_code' => 0, 'err_msg' => '');
$article = $di['db']->article_tbl;
$article->insert($data);
$result['id'] = $article->insert_id(); // 返回新增的ID
return $result;
}
F1-4、数据库——查询模型数据
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
$result['article'] = $di['db']->article_tbl->where('id', 1)->fetchOne(); // 取出id=1的文章数据
return $result;
}
F1-5、数据库——更新模型数据
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
$data = array('title' => '新文章标题', 'content' => '文章内容'); // 待更新的数据
$result['update_row'] = \$di['db']->article_tbl->where('id', 1)->update($data); // 更新id=1的文章数据,返回更新的数量
return $result;
}
F1-6、数据库——删除模型数据
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
$result['delete_row'] = $di['db']->article_tbl->where('id', 1)->delete(); // 删除数据,返回删除的数量
return $result;
}
F1-7、数据库——获取模型列表数据
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
$result['list'] = $di['db']->article_tbl->where('id > ?', 1)->where('id < ?', 10)->fetchAll(); // 取出id从1到10的全部数据
return $result;
}
F1-8、数据库-获取模型列表数据(搜索+分页+排序+字段选择)
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
$result['list'] = $di['db']->article_tbl
->select('id, title, content')
->where('id', 1) // 精确区配
->where('name LIKE ?', '%小白%') // 模糊匹配
->where('id', array(1, 2, 3)) // 范围枚举
->where('id > ?', 1) // 范围大于
->where('id < ?', 10) // 范围小于
->where('id BETWEEN ? AND ?', array(1, 10)) // 范围介于
->or('status', 1) // 或逻辑条件
->order('add_time DESC') // 按时间降序
->limit(0, 100) // 分页,取出前面100条
->fetchAll(); // 取全部数据
return $result;
}
提醒:获取列表数据时,一定要使用limit来限制页数,否则审核会失败。
F2-1,CURL-GET 请求
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
// 第一个参数为网址,第二个参数表示超时时间(单位毫秒)
$result['res'] = $di['curl']->get('http://demo.phalapi.net/?username=YesApi', 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('err_code' => 0, 'err_msg' => '');
// 第一个参数为网址,第二个参数是POST的参数,第三个参数表示超时时间(单位毫秒)
$result['res'] = $di['curl']->post('http://demo.phalapi.net/', array('username' => 'YesApi'), 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('err_code' => 0, 'err_msg' => '');
$di['logger']->record('DEBUG', '调试日志,这里可放日志内容');
$di['logger']->record('INFO', '业务日志,这里可放日志内容');
$di['logger']->record('INFO', array('uuid' => 'ABC', 'tip' => '第二个参数还可以是数组'));
$di['logger']->record('NOTICE', '提醒日志,这里可放日志内容');
$di['logger']->record('WARNNING', '警告日志,这里可放日志内容');
$di['logger']->record('ERROR', '错误日志,这里可放日志内容');
return $result;
}
提醒:日志记录后,可在开放平台查看日志。
F4-1,发送邮件
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
// 第一个参数是收件人邮箱,第二个参数是邮件标题,第三个参数是邮件正文内容(HTML格式)
$result['is_send'] = $di['email']->send('helper@yesapi.cn', '邮件标题', '邮件内容');
return $result;
}
提醒:使用前请先配置邮箱服务配置。
F5-1、安全——加解密
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
$result['encrypt_data'] = $di['crypt']->encrypt('YesApi'); // 对数据进行加密
$result['decrypt_data'] = $di['crypt']->decrypt($result['encrypt_data']); // 对数据进行解密
return $result;
}
提醒:每个app_key加密的数据只能用自己的app_key解密。
F6-1,拼音
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
$result['pinyin_1'] = $di['pinyin']->convert('小白接口'); // 将一段汉字串内容转成拼音,结果是:xiao bai jie kou
$result['pinyin_2'] = $di['pinyin']->abbr('小白接口'); // 获取拼音首字母,结果是:x b j k
$result['pinyin_3'] = $di['pinyin']->name('张三'); // 姓名转拼音,结果是:zhang san
return $result;
}
F7-1。发简讯
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
// 参数1:手机号,参数2:短信签名,参数3:短信模板,参数3:更多数组参数(没动态参数时可传空数组)
$di['sms_aliyun']->aliyunSendSms('13800138000', '小白接口', 'SMS_153055065', array('code' => '123456'));
return $result;
}
提醒:使用前需配置阿里云服务
F9,效用函数
function ($params, $di) {
$result = array('err_code' => 0, 'err_msg' => '');
$time = time(); // 当前时间戳,例如:1590561632
$datetime = date('Y-m-d H:i:s'); // 当前时间,例如:2020-05-20 00:00:00
$arr = json_decode('{"name":"YesApi"}', true); // json解析成数组
$json = json_encode($arr); // 数组转json
$md5 = md5('123456'); // 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金币”,想了很多。