网站首页 > 技术文章 正文
提到服务端不得不说客户端。客户端(Client)是指与服务端相对的,提供用户操作界面,实现业务管理的桌面应用程序、Web页面、小程序或手机App,旨在收集用户意图、为用户展现服务结果、在用户本地服务的程序。
服务端和客户端
网络服务的软件分B/S(浏览器Browser/服务器Server)和C/S(客户端Client/服务器Server)两种模式。基于B/S模式的软件又叫Web应用。Web应用可分为前端(在浏览器中执行的部分)和后端(在服务器中执行的部分),后端又叫服务端。
随着大前端技术的兴起,目前这两种技术划分方法,已经没有了严格的界限,例如:非原生App和小程序其本质都是Web。
无论什么形式的客户端都需要服务端提供必要的服务——数据库服务,Web Server、接口等。
服务端开发,就是开发运行在服务器端的程序,为客户端提供API接口服务。软件客户端和服务端的协作,分为B/S(浏览器/服务器)和C/S(客户端/服务器)两种模式,浏览器就是一种通用的客户端,现在流行的APP就相当于个性化的客户端,无论B/S还是C/S都要有相应的服务器端程序提供服务。对于绝大部分应用,服务端的核心就是数据库,服务器端的程序就是根据应用需求来管理和操作服务端的数据库,通过对数据库的操作,返回满足用户需求的数据。服务端开发主要就是根据业务逻辑要求实现业务功能和性能要求。
服务端开发
今天要讲的服务端特指可以为客户端提供数据、业务处理功能的接口API。
一般开发模式下,开发服务端需要用到至少一门基础开发语言和数据库。每种开发语言理论上是通用的,可以实现任何业务场景,几乎任何一种开发语言都能作为服务端程序语言。但是,术业有专攻,不同的开发语言在某个场景应用的适用度、难易度不同,所以选用什么语言、什么数据库,取决于是否便于解决实际问题和需求。
使用基础开发语言实现服务端开发,需要解决客户端请求接口,数据库访问、操作,业务逻辑的实现算法。而在有效云开发平台依然只使用SQL、JS就可实现服务端的开发。
仅使用SQL和JS实现服务端开发
开发服务端需要实现以下三部分功能:客户端接口、业务逻辑处理、后台数据库操作。
1、服务接口定义
客户端接口一般情况下通过http协议get或post发起请求,根据应用场景的需求提交请求参数数据,服务端获取参数。
进入“有效云开发集成环境”,进入【接口管理】,新建接口:
接口可以定义接口
● 模块(便于管理)
● 代号(接口的详细访问地址)数据库绑定系统设置的链接。
● 模板:模板通过系统脚本的形式返回Json格式的数据,开发者可以根据业务 需求自己定义,其中可以访问客户端的请求参数、接口返回参数等等。
返回接口定义:
{{if .r}}
{
"code": 100,
"goods_id":"{{.r.goods_id}}",
"goods_count":"{{.r.goods_count}}",
"msg": "ok", "extra": "",
"result": []
}
{{else}}
{
"code": 104,
"msg": "查询失败",
"extra": "系统异常,未能获得库存数量",
"result": []
}
{{end}}
2、接口参数
这里的参数是广义上的,即可以是客户端提交的参数,也可以是服务端计算得到的参数。
在“有效云集成开发环境”中选中某接口,点击操作栏的【参数】按钮
参数r为计算参数,通过SQL直接查询得到客户端传递的商品ID(goods_id)对应商品的库存数量。
SQL:
select goods_id,goods_count from tb_store where goods_id={{.goods_id}} and shop_id={{ME.deptid}} limit 1;
在“有效云开发平台”开发接口,只需要编写极少量的代码。
客户端的调用,与采用直接通过基础开发语言开发的接口是相同的。
here = this;
if(here.form["goods_id"]!="" && here.form["goods_count"]!=""){
var data=new FormData();
data.append("goods_id",here.form["goods_id"]);
axios.post('/api/{{APPID}}/storeapp/getstorecount',data).then(function (res) {
if(res.data.code==100){
var out_count=parseInt(here.form["goods_count"]);
var store_count=parseInt(res.data.goods_count);
if( out_count > store_count ){
here.form["goods_count"] = "";
window.top.vm.$message.error('当前库存不足,请重新输入出库数量!');
}
}else{
window.top.vm.$message.error('商品库存校验失败,请人工核验当前库存!');
}
}).catch(function (error) {});
}
该代码设置在了,出库操作出库数量组件的 blur 时间中。
感谢阅读,我是在软件开发平台研究中不停前行的草根开发者,感谢关注支持。
猜你喜欢
- 2024-11-18 Web前端、应用服务器、数据库SQL等性能优化总结
- 2024-11-18 C# .NET 6 校园图书管理系统:第七章 引入前端界面
- 2024-11-18 清华架构师用24章Git笔记带你完全学会Git,GitHub,Gitserver
- 2024-11-18 作为一名前端工程师,这些你一定要懂
- 2024-11-18 程序员私活攻略 (下)
- 2024-11-18 Web前端最强JavaScript Excel处理插件——exceljs
- 2024-11-18 前端必读书籍推荐
- 2024-11-18 手写一个main的Tomcat容器,构建Http服务器
- 2024-11-18 vue项目本地开发完成后部署到服务器后报404是什么原因呢?
- 2024-11-18 前端工程化体系设计与实践第4章第1节本地开发服务器解决的问题
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 604℃几个Oracle空值处理函数 oracle处理null值的函数
- 595℃Oracle分析函数之Lag和Lead()使用
- 583℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 580℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 575℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 569℃【数据统计分析】详解Oracle分组函数之CUBE
- 555℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 549℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)