2017-04-12 9 views
0

我々持っている3サービスAPIゲートウェイパターン使用してRPCサービスの生地

  1. eShopCustomer
  2. eShopCart
  3. eShopPayments
  4. eShopOrders

だから我々が作成したこれらのmicroservices間で通信するために、 eShoのRPCモデルを使用して上記のマイクロサービスと通信するためのgatwayとしてのeShopAPIという別のwebapiプロジェクトpAPI。したがって、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

kong(https://getkong.org/) ? – Sascha

答えて

0

を露出しているか

は、私はAPI層でビジネスロジックを維持することではないのuを提案しますが、N層アーキテクチャを使用するには、以下のいくつかのサンプルコードを見てみましょう。私の意見では、サービスリクエスト(検証、オーケストレーションなど)の流れを担当する別のオーケストレーションレイヤ(ステートレスサービス/サービス)が必要です

関連する問題