
摘要:分布式的web系統可以看成一個分布在局域網上的web集群系統。企業所有的復雜業務本來可以部署在一臺web服務器之上,但為了降低企業運營成本,我們需要將復雜業務細分成不同的功能模塊,分別部署到不同的web服務器之上。這些不同的web服務器形成一個分布式的web系統,這個分布式web系統在外部看來它和一個web系統沒有任何區別。在這個分布式的web系統里,不同web系統之間要互相分工協作,共同完成企業內部用戶和外部用戶的web請求處理。Web api作為web分布式系統的主要技術之一,將先從概述開始介紹web api技術及其特點,然后從web api技術原理來介紹web api技術本質,最后以C#平臺為例,來介紹web api的開發過程。
關鍵詞:分布式;web api
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2020)05-0089-01
開放科學(資源服務)標識碼cOSID):
1 Web api技術概述
Web api是進行網絡服務的接口技術,通過該接口技術可以實現數據傳輸,存儲服務、消息服務、計算等服務,利用這些服務可以開發出強大功能的分布式的web應用。簡單來說,我們可以做前后端分離的項目,前端和后端通過url連接,進行數據傳輸。復雜來說,我們可以做服務器之間的服務調用,以url形式的訪問,進行數據傳輸,我們可以開發強大功能的分布式web應用。
2 Web api技術原理
服務器可以通過web api向請求者發送json格式的數據,請求者可以是分布式服務器中的一臺服務器,也可以是手機app終端等等。請求者可以采用http協議或者socket協議發送請求,服務器接收到請求,對請求進行參數解析,然后調用相應的接口,將獲得的數據發送給請求者,如下圖1所示:
上圖中,詳細描述了web api的工作過程,請求者通過http協議發送請求,服務器對request對象的url和參數進行解析,然后調用相應的web api,web api然后調用業務邏輯層,業務邏輯層調用數據訪問層,數據訪問層調用數據庫,然后數據依次返回,web api然后將Json格式的數據返回給請求者。
3 C#平臺實現web api的開發
在這里,我們采用visual studio開發工具進行C# web系統的開發環境。在visual studio開發工具中,提供了專門的模塊,可以直接創建一個web api。在這里以商品的增刪改查為例,來完成web api的開發,核心偽代碼如下:
3.1 配置web api
public class GoodsControUer: ApiControjler{
GoodsService goodsService= new goodsService0;
public Goods fmdGoodsByName (String name){
return goodService.findGoodsBvName(name)
)
public int deleteGoodsByld(int id){
return goodService.deleteGoodsByld (id)
)
public int insertGoods(Goods goods){
return goodService.insertGoods(goods)
)
public int updateGoodsByld (Goods goods){
goodService.updateGoodsByld(goods)
】】
3.2 配置Web API路由及返回json格式
config.Formatters.Remove(config.Formatters.XmIFormatter);
config.MapHttpAttributeRoutes0;
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate:“api/{controller)/{action}/{id)”,
defaults: new( id= RouteParameter.Optional)
);
通過http://ip/api/Goods/ findGoodsByName/name的url請求,調用類中findGoodsByName的方法。其他操作,采用相似的url請求,調用類中的不同的web api方法,獲得相應的Json格式數據。
4 結束語
本文通過對web api的概念,原理和應用等各方面的介紹,我們掌握了如何在web項目中創建一個對外的web api服務器技術。該服務可以讓同平臺的web項目訪問,也可以讓異構平臺的web項目訪問,因此web api技術可以在分布式web系統之間進行數據共享。既然可以實現了平臺之間的數據共享,那么我們就可以把不同的功能進行分解,部署在不同的服務器上,進而可以實現web項目的分布式部署。
參考文獻:
[1]王仲洲,楊曉洪,王劍平,等.基于REST風格的WEB API架構研究[J].微處理機,2016,37(5):52-55.
[2]張爾喜,先曉兵,王雪鋒.基于WebAPl的移動端學生綜合服務平臺設計與實現[J].軟件工程,2017,20(10):40-42.
[3]廖治凱.基于WebApi和類WebApp的畢業論文管理系統[Jl.科技展望,2017,27(24):31.
[4]王佳琪.基于J2EE架構的分布式企業級Web應用研究[J].計算機產品與流通,2018(10):27.
【通聯編輯:謝媛媛】
收稿日期:2019-12-15
基金項目:湖南省教育廳科學研究課題之一《基于分布式的web系統架構設計》
作者簡介:謝振華(1981-),男,湖北松滋人,副教授,大學本科,研究方向為網站開發、網絡工程等。