您好, 访客   登录/注册

用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