0

私は、次のようなウェブAPIコントローラを持っている:私の質問は、私は、コントローラを簡素化し、新しいサービス/ビジネスロジック層にこのロジックをプッシュする必要があるかどうかである追加の「サービス」またはBLLレイヤーをいつ追加するのですか?

[HttpGet] 
    [Route("accounts", Name = "GetAccounts")] 
    public async Task<IHttpActionResult> GetAccounts() 
    { 
     var query = Request.RequestUri.PathAndQuery.Split('/')[2]; 

     var response = await Client.HTTPCLIENT.GetAsync(Client.HTTPCLIENT.BaseAddress + query); 

     if (!response.IsSuccessStatusCode) 
     { 
      return NotFound(); 
     } 

     var readAsAsync = response.Content.ReadAsAsync<object>(); 
     if (readAsAsync == null) 
     { 
      return NotFound(); 
     } 

     var result = await readAsAsync; 
     return Ok(result); 
    } 

私の使用例は、このコードをサービスファブリック上のマイクロサービス内で実行させることです。

このアーキテクチャに別のレイヤーを追加することは冗長性/不要性の複雑さですか?利点はありますか?

+0

複雑なロジック、大規模なアプリケーション、および別のバスロジックとプレゼンテーションロジック(MVCなど)には別のレイヤーを使用する必要があります。 – ArDumez

+0

サービスファブリックを使用する場合は、おそらくマイクロサービスアーキテクチャが必要です。ステートフルなサービスを使用して、たとえばバックエンドとしてdbを使用してデータやステートレスサービスを格納および取得することができます。ビジネスロジックのためのステートレス/ステートフルなサービスです。それはマイクロサービスの大きさのあなたの見方によります。それでは、なぜ、あなたはウェブアプリではなくサービスファブリックを選んだのですか?サービスファブリック内の –

+0

の共通のシナリオは、コンピューティングサービスを実行するノードタイプである他の仕様を持つノードタイプでapiを実行することです。あなたに正確な要件がわからなければ、伝えるのは難しいです。 –

答えて

0

私が知る限り、このコントローラが行うことは、別のサービスを呼び出して結果を返すことだけです。私はあなたが別のサービスに引き出すことができるものはここには見当たりません。

私はいつも、より多くのサービスを提供することからどのようなメリットがありますか?サービスへの往復は、物理的なマシンリソースの使用、開発コスト、およびメンテナンスに関して比較的高価です。

関連する問題