我们有3项服务
因此,为了在这些微服务之间进行通信,我们创建了另一个名为eShopAPI的webapi项目,作为使用eShopAPI中的RPC模型与上述微服务进行通信的途径。因此,eShopAPI项目是暴露的REST API。
这个过程是好的吗?
让我们看一下下面的一些示例代码
[ServiceRequestActionFilter]
[Route("api/[controller]")]
public class OrderController : ApiController
{
IOrderService _orderService = ServiceProxy.Create<IOrderService>(new Uri("fabric:/eShop/OrderService"));
ICartService _cartService = ServiceProxy.Create<ICartService>(new Uri("fabric:/eShop/CartService"));
// GET api/values/5
[Route("api/order/{id}")]
public string CreateOrder([FromBody] OrderViewmodel model)
{
_orderService.CreateOrder(id);
_cartService.AddItems();
return "value";
}
}
[ServiceRequestActionFilter]
[Route("api/[controller]")]
public class BasketController : ApiController
{
IBasketService _orderService = ServiceProxy.Create<IBasketService>(new Uri("fabric:/eShop/BasketService"));
// GET api/values/5
[Route("api/order/{id}")]
public string Get(long id)
{
_orderService.GetOrder(id);
return "value";
}
}`enter code here`
答案 0 :(得分:0)
我建议您不要将业务逻辑保留在api层中,而是使用N层架构。在我看来,你需要另一个业务流程层(无状态服务/服务),它将负责服务请求的流程(验证,编排等)