当前位置: 首页 > news >正文

send函数 获得已发送数据长度_好用的云函数!后端低代码接口开发,零基础编写API接口...

前言

在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作。
不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人,通过云函数,即可实现后端低代码接口开发,做到零基础编写API接口。


云函数优势

云函数具有以下特点和优势:
1、无需管理服务器即可运行移动后端代码
2、可在线接口编程,自动生成云接口和接口文档
3、代码简单,功能强大,一行代码就可以实现数据库、短信发送等功能
4、可以开发自己的接口,实现自己的业务逻辑
5、可以提供多个客户端接入使用
6、配套完整的接口流量统计、分析、接口鉴权和开关控制


果创云MyAPI云函数架构

果创云提供的MyAPI云函数,其架构如下:

c2e1d4f06d95d091a9d9ffb5c4407ca2.png

果创云云函数架构

整体架构分为四层:
第一层:MyAPI我的接口 提供给客户端调用的云接口。
第二层:云函数。 由开发者自己编写,可在线接口编程,编写云函数,生成接口。
第三层:果创云聚合服务 由果创云提供,封装了常用的服务,可进行数据库、CURL、短信等服务操作。
第四层:云服务 由第三方提供的云服务,包括但不限于自建数据库、云数据库、企业邮箱、短信接口、开放平台接口和内部接口等。

云函数示例

果创云的云函数是基于PHP语言,PHP是一门非常容易上手的后端语言。云函数默认示例如下:

function ($params, $di) {
   $result = array('err_code' => 0, 'err_msg' => '');

    // TODO:在这里编写你的具体业务
    $result['content'] = 'Hello YesApi';

    return $result; // 返回接口结果
}


云函数参数说明:
$params,类型:数组,为当前客户端的接口参数,由开发者配置的接口参数和客户端动态传递的参数而定,例如:array('uuid' => null, 'left' => 1, 'right' => 2)
$di,类型:数组,为DI容器,里面封装并提供了众多强大而实用的PHP服务,例如数据库操作等,对于后端编程有非常大的帮助,后面会详细介绍。


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

6c4cdce0cf31bec02030b7c9ba086673.png


保存后,你可以看到类似这样的在线接口文档(部分截图):

1a4e4e7b7c8b67550c0aa77f50974d3a.png

21a5910801c41f9638c2d5d585320fb8.png


一键生成云函数,生成CURD数据API接口

在准备好数据库模型后,点击【生成CURD数据接口】

451978a20a551c8d964042db96d0cf72.png


选择相应的数据模型,以及API功能:

b1f179a183a97f7a1d01c71e359bb985.png


可以生成的API功能有:
创建新数据
删除一条数据
获取数据详情
更新一条数据
获取数据列表


生成后,即可获得属于你自己的API接口。

bd5a0f9dcbcbb31a432cd1ca6d201b66.png


还要以根据自己的业务需要,调整云函数的代码,实现自己的业务逻辑。

function ($params, $di) {
    $result = array('err_code' => 0, 'err_msg' => '');

    $data = array();
    $data['title'] = $this->title;
    $data['content'] = $this->content;
    $data['post_time'] = $this->post_time;
    $data['view_times'] = $this->view_times;
    $data['state'] = $this->state;
    $data['zhaiyao'] = $this->zhaiyao;
    $data['tag'] = $this->tag;
    $data['cate_id'] = $this->cate_id;
    $notorm = $di->db->article_tbl;
    $notorm->insert($data);
    $result['id'] = $notorm->insert_id();

    return $result;
}


一键生成云函数,生成常用接口


常用的云函数,是指一些常用的功能操作。例如:

  1. F1-1、两数相加
  2. F2-1、CURL-GET请求
  3. F2-2、CURl-POST请求
  4. F3-1、日志
  5. F4-1、发送邮件
  6. F5-1、安全-加密解密
  7. F6-1、拼音
  8. F7-1、发送短信
  9. F8-1、站内消息通知
  10. F9-1、会员
  11. F10-1、登录会话与凭证
  12. F11、实用函数
  13. F12、内部调用小白接口
  14. F13、编写回调接口API

当你需要生成这类API接口时,需要做的只是选择你要的API接口功能,然后果创云会自动为你生成相应的API接口代码。例如,对于邮件发送。

87e1703349f9127503c3c08a07bde883.png
function ($params, $di) {
    $result = array('err_code' => 0, 'err_msg' => '');
    // 第一个参数是收件人邮箱,第二个参数是邮件标题,第三个参数是邮件正文内容(HTML格式)
    $result['is_send'] = $di['email']->send('helper@yesapi.cn', '邮件标题', '邮件内容');
    return $result;
}


生成的云函数代码如上所示。再稍微调整里面的参数,包括收件人、邮件标题、邮件内容,就可以生成自己的云函数API接口了。


生成发送邮件API接口的接口效果如下,完整的接口文档显示。

94232c8d09d2f860b142991646460cb8.png


一键生成云函数,生成ODM贴牌接口

果创云的小白接口,默认提供了500+款API接口。如果需要对500多款进行二次开发,可以生成ODM贴牌接口,把默认的API接口调整成自己需要的API接口。

dd819505f4a5e3b651f75b012ac9fba2.png


例如,针对默认的Hello World小白接口,二次开发后的云函数,生成的源代码如下:

function ($params, $di) {

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


    // TODO:在这里实现你的业务

    $odmRs = $di['odm']->call('App.Hello.World', $params);

    $result = array_merge($result, $odmRs);


    return $result;

}


可根据自己的需求,调整或去掉不必要的接口参数,或者修改成自己需要的接口标题和接口功能介绍。


手动编写云函数


如果你已经熟悉云函数,可以自己编写云函数,最大化发挥编程的强大和灵活性。
例如,如果需要统计文章数据库表中的总数,只需要编写:

function ($params,$di) {
    $result = array('err_code' => 0, 'err_msg' => '');
    $result['count'] = $di['db']->article_tbl->count('id'); // 模型名称后面须带上_tbl后缀
    return $result;
}


就可以生成API接口:取文章总数 SVIP.Sdogstar_MyApi.AArticleTotal

9b7ea1d80551f55bd49f51bf9d2a72fb.png


API接口调用和测试效果:

6337fd95bbf80030848dc75063aee22f.png


得到接口结果:

c79382e0bd2f5fc66a9aa2c7a96c4363.png


原来接口结果:

{
    "ret": 200,
    "data": {
        "err_code": 0,
        "err_msg": "",
        "count": 24
    },
    "msg": "V3.1.0 YesApi SVIP.Sdogstar_MyApi.AArticleTotal"
}


DI服务一览
果创云函数,在内部提供了以下DI服务,可以使用这些DI服务,完成绝大部分的编程功能。

  • $di['db'] 我的模型数据库 可进行CURD数据库操作,针对单表
  • $di['db_super'] 直连数据库 可进行CURD数据库操作,针对单表,使用前需要进行MySQL数据库直连服务配置
  • $di['logger'] 日志服务 记录各种日志
  • $di['email'] 邮箱服务 发送邮件,使用前需要进行邮箱服务配置
  • $di['pinyin'] 拼音服务 将汉字转成拼音
  • $di['curl'] CURL服务 请求远程接口,仅支持80端口
  • $di['crypt'] 安全服务 对数据进行加密和解密
  • $di['sms_aliyun'] 阿里云短信 通过阿里云服务发送短信,使用前需要进行阿里云服务配置
  • $di['odm'] ODM内部接口调用 内部调用小白接口,接口签名:call($service, $params)

维护我的云函数API接口


在果创云后台,可以添加自己的云函数API接口,也可以进行修改接口API代码,以及发布API接口,查看自己的接口列表。

90ff43b73930c3ddb7eaf5174597956b.png


查看我的云函数API接口


在前台,当你的云函数审核并发布后,即可查看到你的API接口,然后就可以进行使用和调用访问了。注意,只有自己才可以调用自己的API接口。

fa373bc281090eae287cefdbf0deed8c.png

我的接口列表


点击进去,可以查看到自己的API接口文档,接口文档是实时自动生成的。

2427017bed00343e20f7d30c9570ef35.png


在线API接口编程


更多技术介绍,请查看果创云文档:云函数MyAPI(在线接口编程)

教程文档 | 果创云​www.yesapi.cn

相关文章:

  • 课程设计python调用摄像头权限_python课程设计
  • micropython定制_Micropython 如何用Turnipbit做一个自动浇水装置
  • 代码流程图怎么画_招聘流程图怎么画好看,原来方法这么简单!
  • paxos算法_zookeeper为什么弃用paxos而选用zab协议?
  • python中元组怎么存放元素_人生苦短 | Python列表和元组的性能以及存储方式等
  • 前端遍历导致查询数据时间过长_「干货」一文搞懂为什么图数据库比关系型数据库查询更快...
  • 对抗生成网络_如何应用TFGAN快速实践生成对抗网络?
  • debian编译安装python3.8_Debian8 下我想安装个 python3 的 pip,然而各种报错,完全不懂...
  • 用python语言实现人工智能猴子摘香蕉的问题_人工智能 猴子香蕉问题
  • python子类继承_Python:子类可以重载继承的方法吗?
  • python调用opengl_Python之OpenGL笔记(1):窗口工具包GLFW的安装
  • 最长有效括号python_leetcode 032中最长有效括号的Python实现,Leetcode032,python
  • 60多套html5移动端模板_扫盲贴:全网最系统、完整的Web前端和移动APP开发知识...
  • python实现端口转发_python实现超简单端口转发的方法
  • x9此计算机上没有hasp_150马力23方货厢,跑快递快运不妨看看陕汽轩德X9蓝牌轻卡...
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • C# 免费离线人脸识别 2.0 Demo
  • docker python 配置
  • dva中组件的懒加载
  • httpie使用详解
  • Spring Cloud中负载均衡器概览
  • webpack+react项目初体验——记录我的webpack环境配置
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 力扣(LeetCode)357
  • 前嗅ForeSpider教程:创建模板
  • 听说你叫Java(二)–Servlet请求
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • hi-nginx-1.3.4编译安装
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (52)只出现一次的数字III
  • (备忘)Java Map 遍历
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (南京观海微电子)——I3C协议介绍
  • (十六)串口UART
  • (原)本想说脏话,奈何已放下
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)Sublime Text3配置Lua运行环境
  • .net 程序发生了一个不可捕获的异常
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .Net 垃圾回收机制原理(二)
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .net分布式压力测试工具(Beetle.DT)
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [AIGC] MySQL存储引擎详解
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [C++]unordered系列关联式容器
  • [CISCN 2023 初赛]go_session
  • [emuch.net]MatrixComputations(7-12)
  • [ffmpeg] x264 配置参数解析