提到服務端不得不說客戶端??蛻舳耍–lient)是指與服務端相對的,提供用戶操作界面,實現業務管理的桌面應用程序、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 時間中。
實際運行情況
感謝閱讀,我是在軟件開發平臺研究中不停前行的草根開發者,感謝關注支持。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。