-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
バックエンドサーバーのヘルスチェック用APIを追加する #543
The head ref may contain hidden characters: "feature/\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u30B5\u30FC\u30D0\u30FC\u306E\u30D8\u30EB\u30B9\u30C1\u30A7\u30C3\u30AF\u7528API\u3092\u8FFD\u52A0\u3059\u308B"
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
全体的に機能を正しい場所に配置するように変更していきたいと思います。現状だとDbHealthCheckクラス内にインフラストラクチャ層の実装が入り込んでいるので、この部分をアーキテクチャ上の正しい場所に移動します。またクラス名も「DbHealthCheck」から「DatabaseHealthCheck」としましょう。このあたりの修正をかけると、DatabaseHealthCheckクラスのフィールドから接続文字列は消せるはずです。また、「Microsoft.Data.SqlClient」名前空間の参照も消えるはずです。
データベースにアクセスできるか検査する機能は、Dressca.EfInfrastructureプロジェクトに移動します。名前は仮でDresscaHealthCheckerとしてます。実装も大幅に変更し、DresscaDbContextを利用してヘルスチェックのロジックを実装する形にします。DresscaDbContext.Database.CanConnectAsyncとかExecuteSqlRawAsyncとかを使えばよいと思いますが、何をもって「正常」と判断するかは一旦お任せします。
DresscaHealthCheckerは内部で利用するDresscaDbContextをDIコンテナーから取得する都合上、DresscaHealthChecker自身をDIコンテナーに登録したいです。EfInfrastructureServicesExtensionに登録するロジックを追加すればよいはずです。
DatabaseHealthCheckをインフラストラクチャ層に持たせることも一瞬考えたんですが、インフラストラクチャ層の参照するパッケージが増えてしまうのを嫌い、最も忠実なこの形で考えてみました。
@tsuna-can-se |
@tsuna-can-se |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
機能実装の方を優先してコメントします。Open API仕様書の方は後程確認します。
samples/Dressca/dressca-backend/src/Dressca.EfInfrastructure/HealthChecksBuilderExtensions.cs
Outdated
Show resolved
Hide resolved
samples/Dressca/dressca-backend/src/Dressca.EfInfrastructure/HealthChecksBuilderExtensions.cs
Outdated
Show resolved
Hide resolved
samples/Dressca/dressca-backend/src/Dressca.EfInfrastructure/HealthChecksBuilderExtensions.cs
Outdated
Show resolved
Hide resolved
samples/Dressca/dressca-backend/src/Dressca.EfInfrastructure/HealthChecksBuilderExtensions.cs
Outdated
Show resolved
Hide resolved
...a/dressca-backend/src/Dressca.Web/Diagnostics/HealthChecks/HealthCheckDescriptionProvider.cs
Outdated
Show resolved
Hide resolved
...a/dressca-backend/src/Dressca.Web/Diagnostics/HealthChecks/HealthCheckDescriptionProvider.cs
Outdated
Show resolved
Hide resolved
...a/dressca-backend/src/Dressca.Web/Diagnostics/HealthChecks/HealthCheckDescriptionProvider.cs
Outdated
Show resolved
Hide resolved
...a/dressca-backend/src/Dressca.Web/Diagnostics/HealthChecks/HealthCheckDescriptionProvider.cs
Outdated
Show resolved
Hide resolved
...a/dressca-backend/src/Dressca.Web/Diagnostics/HealthChecks/HealthCheckDescriptionProvider.cs
Outdated
Show resolved
Hide resolved
...a/dressca-backend/src/Dressca.Web/Diagnostics/HealthChecks/HealthCheckDescriptionProvider.cs
Outdated
Show resolved
Hide resolved
samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/CustomWebApplicationFactory.cs
Outdated
Show resolved
Hide resolved
samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/Dressca.IntegrationTest.csproj
Show resolved
Hide resolved
samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/CustomWebApplicationFactory.cs
Outdated
Show resolved
Hide resolved
samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/Dressca.IntegrationTest.csproj
Outdated
Show resolved
Hide resolved
samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/Dressca.IntegrationTest.csproj
Show resolved
Hide resolved
Test Result 📝Test was a success. Coverage 📐Summary
Dressca.ApplicationCore - 84.9%
Dressca.EfInfrastructure - 9.8%
Dressca.Store.Assets.StaticFiles - 9.8%
Dressca.SystemCommon - 86.4%
Dressca.TestLibrary - 47.2%
Dressca.Web - 24.7%
Dressca.Web.Dto - 0%
|
ヘルスチェック用APIを追加しました。