用web api实现C#平台的分布式开发
来源:用户上传
作者:谢振华
摘要:分布式的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-),男,湖北松滋人,副教授,大学本科,研究方向为网站开发、网络工程等。
转载注明来源:https://www.xzbu.com/8/view-15180348.htm