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);
}
?
私の使用例は、このコードをサービスファブリック上のマイクロサービス内で実行させることです。
このアーキテクチャに別のレイヤーを追加することは冗長性/不要性の複雑さですか?利点はありますか?
複雑なロジック、大規模なアプリケーション、および別のバスロジックとプレゼンテーションロジック(MVCなど)には別のレイヤーを使用する必要があります。 – ArDumez
サービスファブリックを使用する場合は、おそらくマイクロサービスアーキテクチャが必要です。ステートフルなサービスを使用して、たとえばバックエンドとしてdbを使用してデータやステートレスサービスを格納および取得することができます。ビジネスロジックのためのステートレス/ステートフルなサービスです。それはマイクロサービスの大きさのあなたの見方によります。それでは、なぜ、あなたはウェブアプリではなくサービスファブリックを選んだのですか?サービスファブリック内の –
の共通のシナリオは、コンピューティングサービスを実行するノードタイプである他の仕様を持つノードタイプでapiを実行することです。あなたに正確な要件がわからなければ、伝えるのは難しいです。 –