将接收到的消息从发件人发送到特定控制器:ASP.NET Core Web API 中的 MassTransit
Get the received message from the sender to a specific controller : MassTransit in ASP.NET Core Web API
我是 Masstransit 和 rabbitMq 的新手,我想在两个 Web API 之间建立通信。
目标:如果 service A
收到制作某物的请求,但它需要来自另一个 service B
的一些额外信息,我想制作这两个服务之间的连接使用Masstransit和RabbitMq,但我想在服务A中的特定控制器(请求信息的API)的操作方法中获取服务B的返回结果。
我已经创建了 Masstransit 和 RabbitMq 的集成,但我在消费者中收到消息,我想在等待服务 B 响应的操作方法中获得该结果。
如果有任何示例或任何提示来调整解决方案或任何可能有帮助的东西,我们将不胜感激
谢谢
使用请求客户端生成请求,并获取响应。 API 控制器中的示例显示在 scoped filter 示例中,以及许多其他 MassTransit 示例。
[ApiController]
[Route("[controller]")]
public class CheckInventoryController :
ControllerBase
{
readonly IRequestClient<CheckInventory> _client;
public CheckInventoryController(IRequestClient<CheckInventory> client)
{
_client = client;
}
[HttpGet]
public async Task<IActionResult> Get(string sku)
{
Response<InventoryStatus> response = await _client.GetResponse<InventoryStatus>(new {sku});
return Ok(response.Message);
}
}
我是 Masstransit 和 rabbitMq 的新手,我想在两个 Web API 之间建立通信。
目标:如果 service A
收到制作某物的请求,但它需要来自另一个 service B
的一些额外信息,我想制作这两个服务之间的连接使用Masstransit和RabbitMq,但我想在服务A中的特定控制器(请求信息的API)的操作方法中获取服务B的返回结果。
我已经创建了 Masstransit 和 RabbitMq 的集成,但我在消费者中收到消息,我想在等待服务 B 响应的操作方法中获得该结果。
如果有任何示例或任何提示来调整解决方案或任何可能有帮助的东西,我们将不胜感激
谢谢
使用请求客户端生成请求,并获取响应。 API 控制器中的示例显示在 scoped filter 示例中,以及许多其他 MassTransit 示例。
[ApiController]
[Route("[controller]")]
public class CheckInventoryController :
ControllerBase
{
readonly IRequestClient<CheckInventory> _client;
public CheckInventoryController(IRequestClient<CheckInventory> client)
{
_client = client;
}
[HttpGet]
public async Task<IActionResult> Get(string sku)
{
Response<InventoryStatus> response = await _client.GetResponse<InventoryStatus>(new {sku});
return Ok(response.Message);
}
}