軟件程序服務(wù)端開發(fā),簡單到難以想象(軟件程序服務(wù)端開發(fā),簡單到難以想象的程序)

提到服務(wù)端不得不說客戶端。客戶端(Client)是指與服務(wù)端相對的,提供用戶操作界面,實現(xiàn)業(yè)務(wù)管理的桌面應(yīng)用程序、Web頁面、小程序或手機(jī)App,旨在收集用戶意圖、為用戶展現(xiàn)服務(wù)結(jié)果、在用戶本地服務(wù)的程序。

軟件程序服務(wù)端開發(fā),簡單到難以想象(軟件程序服務(wù)端開發(fā),簡單到難以想象的程序)

服務(wù)端-客戶端

服務(wù)端和客戶端

網(wǎng)絡(luò)服務(wù)的軟件分B/S(瀏覽器Browser/服務(wù)器Server)和C/S(客戶端Client/服務(wù)器Server)兩種模式?;贐/S模式的軟件又叫Web應(yīng)用。Web應(yīng)用可分為前端(在瀏覽器中執(zhí)行的部分)和后端(在服務(wù)器中執(zhí)行的部分),后端又叫服務(wù)端。

隨著大前端技術(shù)的興起,目前這兩種技術(shù)劃分方法,已經(jīng)沒有了嚴(yán)格的界限,例如:非原生App和小程序其本質(zhì)都是Web。

無論什么形式的客戶端都需要服務(wù)端提供必要的服務(wù)——數(shù)據(jù)庫服務(wù),Web Server、接口等。

服務(wù)端開發(fā),就是開發(fā)運行在服務(wù)器端的程序,為客戶端提供API接口服務(wù)。軟件客戶端和服務(wù)端的協(xié)作,分為B/S(瀏覽器/服務(wù)器)和C/S(客戶端/服務(wù)器)兩種模式,瀏覽器就是一種通用的客戶端,現(xiàn)在流行的APP就相當(dāng)于個性化的客戶端,無論B/S還是C/S都要有相應(yīng)的服務(wù)器端程序提供服務(wù)。對于絕大部分應(yīng)用,服務(wù)端的核心就是數(shù)據(jù)庫,服務(wù)器端的程序就是根據(jù)應(yīng)用需求來管理和操作服務(wù)端的數(shù)據(jù)庫,通過對數(shù)據(jù)庫的操作,返回滿足用戶需求的數(shù)據(jù)。服務(wù)端開發(fā)主要就是根據(jù)業(yè)務(wù)邏輯要求實現(xiàn)業(yè)務(wù)功能和性能要求。

服務(wù)端開發(fā)

今天要講的服務(wù)端特指可以為客戶端提供數(shù)據(jù)、業(yè)務(wù)處理功能的接口API。

一般開發(fā)模式下,開發(fā)服務(wù)端需要用到至少一門基礎(chǔ)開發(fā)語言和數(shù)據(jù)庫。每種開發(fā)語言理論上是通用的,可以實現(xiàn)任何業(yè)務(wù)場景,幾乎任何一種開發(fā)語言都能作為服務(wù)端程序語言。但是,術(shù)業(yè)有專攻,不同的開發(fā)語言在某個場景應(yīng)用的適用度、難易度不同,所以選用什么語言、什么數(shù)據(jù)庫,取決于是否便于解決實際問題和需求。

使用基礎(chǔ)開發(fā)語言實現(xiàn)服務(wù)端開發(fā),需要解決客戶端請求接口,數(shù)據(jù)庫訪問、操作,業(yè)務(wù)邏輯的實現(xiàn)算法。而在有效云開發(fā)平臺依然只使用SQL、JS就可實現(xiàn)服務(wù)端的開發(fā)。

軟件程序服務(wù)端開發(fā),簡單到難以想象(軟件程序服務(wù)端開發(fā),簡單到難以想象的程序)

服務(wù)端開發(fā)

僅使用SQL和JS實現(xiàn)服務(wù)端開發(fā)

開發(fā)服務(wù)端需要實現(xiàn)以下三部分功能:客戶端接口、業(yè)務(wù)邏輯處理、后臺數(shù)據(jù)庫操作。

1、服務(wù)接口定義

客戶端接口一般情況下通過http協(xié)議get或post發(fā)起請求,根據(jù)應(yīng)用場景的需求提交請求參數(shù)數(shù)據(jù),服務(wù)端獲取參數(shù)。

進(jìn)入“有效云開發(fā)集成環(huán)境”,進(jìn)入【接口管理】,新建接口:

軟件程序服務(wù)端開發(fā),簡單到難以想象(軟件程序服務(wù)端開發(fā),簡單到難以想象的程序)

接口定義

接口可以定義接口

● 模塊(便于管理)

● 代號(接口的詳細(xì)訪問地址)數(shù)據(jù)庫綁定系統(tǒng)設(shè)置的鏈接。

● 模板:模板通過系統(tǒng)腳本的形式返回Json格式的數(shù)據(jù),開發(fā)者可以根據(jù)業(yè)務(wù) 需求自己定義,其中可以訪問客戶端的請求參數(shù)、接口返回參數(shù)等等。

返回接口定義:

{{if .r}}{ "code": 100, "goods_id":"{{.r.goods_id}}", "goods_count":"{{.r.goods_count}}", "msg": "ok", "extra": "", "result": [] }{{else}}{ "code": 104, "msg": "查詢失敗", "extra": "系統(tǒng)異常,未能獲得庫存數(shù)量", "result": [] }{{end}}

2、接口參數(shù)

這里的參數(shù)是廣義上的,即可以是客戶端提交的參數(shù),也可以是服務(wù)端計算得到的參數(shù)。

在“有效云集成開發(fā)環(huán)境”中選中某接口,點擊操作欄的【參數(shù)】按鈕

軟件程序服務(wù)端開發(fā),簡單到難以想象(軟件程序服務(wù)端開發(fā),簡單到難以想象的程序)

接口參數(shù)

參數(shù)r為計算參數(shù),通過SQL直接查詢得到客戶端傳遞的商品ID(goods_id)對應(yīng)商品的庫存數(shù)量。

軟件程序服務(wù)端開發(fā),簡單到難以想象(軟件程序服務(wù)端開發(fā),簡單到難以想象的程序)

計算參數(shù)

SQL:

select goods_id,goods_count from tb_store where goods_id={{.goods_id}} and shop_id={{ME.deptid}} limit 1;

在“有效云開發(fā)平臺”開發(fā)接口,只需要編寫極少量的代碼。

客戶端的調(diào)用,與采用直接通過基礎(chǔ)開發(fā)語言開發(fā)的接口是相同的。

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('當(dāng)前庫存不足,請重新輸入出庫數(shù)量!'); } }else{ window.top.vm.$message.error('商品庫存校驗失敗,請人工核驗當(dāng)前庫存!'); } }).catch(function (error) {});}

該代碼設(shè)置在了,出庫操作出庫數(shù)量組件的 blur 時間中。

軟件程序服務(wù)端開發(fā),簡單到難以想象(軟件程序服務(wù)端開發(fā),簡單到難以想象的程序)

實際運行情況

感謝閱讀,我是在軟件開發(fā)平臺研究中不停前行的草根開發(fā)者,感謝關(guān)注支持。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部