Refit
一、简介
Refit 是一个类型安全的 REST 开源库,是一套基于 RESTful 架构的 .NET 客户端实现,内部使用 HttpClient 类封装,可通过 Refit 更加简单安全地访问 Web API 接口,要使用 Refit 框架,只需要在项目中通过 NuGet 包安装器安装即可。
二、安装nuget
Install-Package refit
三、使用

创建两个weiapi ==01_Publisher 和02_Subscriber ==
01_Publisher 代码
1.InterfaceA(接口)
public interface InterfaceA {
//以上方法定义一个 REST API 接口,该接口定义了 GetPerson 函数,该函数通过 HTTP GET 请求去访问服务器的 //api/ThriftB/{name}路径并把返回的结果封装为 Person 对象返回,其中 URL 路径中 name的值为 GetPerson 函数的 name 参数取值 //然后,通过 RestService 类生成 InterfaceA 的代理实现,通过代理直接调用 Web API 接口。 [Post("/api/ThriftB/{id}")] Task<Person> GetPerson(string id); }
2.ThriftAController
[Route("api/[controller]/[action]")] [ApiController] public class ThriftAController : ControllerBase {
public async Task<IActionResult> Index() {
//通过接口访问,同时将地址端口与路由拼接 var gitPerson = RestService.For<InterfaceA>("http://localhost:50615"); //调用GetPerson方法 //所以插入name值,拼接出来的地址是http://localhost:50615/api/ThriftB/name var octcat = await gitPerson.GetPerson("name"); return Ok(octcat); } }
3.Person
public class Person {
public int Id {
get; set; } public string Name {
get; set; } }
02_Subscriber
1.ThriftBController
[Route("api/[controller]")] [ApiController] public class ThriftBController : Controller {
[HttpPost] [Route("name")] public IActionResult name() {
Person person = new Person(); person.Name = "B"; person.Id = 1; return Ok(person); } }
2.Person
同上
四、测试
1.运行两个webapi
2.打开PostMan

五、总结
Refit可以通过类似访问路由的方式,进行跨服务访问数据
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198475.html原文链接:https://javaforall.net
