.net core使用RPC方式进行高效的HTTP服务访问

 传统的HTTP接口调用是一件比较繁琐的事情,特别是在Post数据的时候;不仅要拼访问的URL还是把数据序列化成流的方式给Request进行提交,获取Respons后还要对流进行解码。在实际应用虽然可以对HttpClient进行一个简单的封装,一旦到了上层大量的API调用还是不方便和不好维护。但如果在不改变HTTP接口服务的情况可以通过RPC的方式来调用HTTP服务那在使用和修改上都会变得更简单和便于维护了; 接下来讲解一下如何使用FastHttpApi通过接口描述的方式来访问HTTP接口服务!

引用组件

在这里简单地介绍一下FastHttpApi,它是一个轻量级高性的能的HTTP通讯组件,除了可以构建高性的HTTP服务外,还可以通过它来实现基于RPC的方式来访问第三方HTTP服务。可以到GitHub了解。如果需要通过接口的方式访问通第三方HTTP服务,首先要在项目用引用FastHttpApi,可以在Nuget上找到它,命令安装如下 Install-Package BeetleX.FastHttpApi -Version 1.0.2.6也可以直接在VS中添加Nuget引用。

使用组件

在定义接口前了解第三方的HTTP服务结构是必须的(当然如果选择FastHttpApi构建webapi会得到一下更高效的性能支持),下面主要讲解通过组件定议接口来访问asp.net mvc api的接口服务,先看一下服务的代码

复制代码
    public class HomeController : Controller     {         public DateTime GetTime()         {             return DateTime.Now;         }         public IActionResult Hello(string name)         {             return new JsonResult($"hello {name}");         }         public IEnumerable<Order> ListOrders(int employee, string customer)         {             Func<Order, bool> exp = o => (employee == 0 || o.EmployeeID == employee)            && (string.IsNullOrEmpty(customer) || o.CustomerID == customer);             var result = DataHelper.Orders.Where(exp);             return result;         }         public Employee GetEmployee(int id)         {             Employee result = DataHelper.Employees.Find(e => e.EmployeeID == id);             return result;         }         [HttpPost]         public int AddEmployee([FromBody] List<Employee> items)         {             if (items == null)                 return 0;             return items.Count;         }         [HttpPost]         public Employee EditEmployee(int id, [FromBody]Employee employee)         {             employee.EmployeeID = id;             return employee;         }         public bool Login(string name, string pwd)         {             if (name == "admin" && pwd == "123456")                 return true;             return false;         }     }
复制代码

以上是一个简单的asp.net mvc api的代码,接下来用接口来描述对应调用方法

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信