このプロジェクトは、Herokuの12ファクター、RichardsonのMicroservices.io、Openapi仕様、Microsoftの実装と設計の再構成にリストされているAPI開発タスクの実装パターンをランプアップするための基本的なASP.NETコアWebAPIシャーシを作成することを目的としています。 .NET 5フレームワークを中心に作成され、構成管理、ロギング、キャッシュなどのツールとともにDockerスタックで実行する準備ができています。
このテンプレートの最新の安定したバージョンをインストールして実行するだけです。
dotnet new install Xopz.Templates.Api
dotnet new apichassis --name MyApiこれがすでに実装されているパターンのリストです。
| パターン | 説明 |
|---|---|
| APIシャーシ | このプロジェクト自体は、リチャードソンのマイクロサービスシャーシパターンで提案されている施設に対処するために反対されています。 12ファクターのトピックVI、VII、およびVIIIに対処することを目的としたサービスAPIプロジェクトタイプの選択。 |
| APIメトリック | このプロジェクトは、dotnetのapp.UseHealthChecks()を介してHealthCheckを箱から出します |
| APIバージョン化 | このプロジェクトは、APIのURLバージョン化を実装しています |
| hateoas | 進行中のこのプロジェクトは、Webリンクの仕様とMicrosoftが推奨するWebリンクに記載されているように、リンクを使用してデータを要求する代替品を提供します。 |
| OAS 3.0 | このプロジェクトは、APIドキュメント用のOpenAPI仕様の3番目のバージョンに従います。 |
| 休む | このAPIは処理リクエストに関する休憩ガイダンスを実装しているため、応答を送信するときにHTTP仕様に従い、Microsoftの推奨 |
このテンプレートと実装は.NET 5に基づいているため、.NET SDKを使用するか、このプロジェクトを.NET Docker画像で実行する必要があります。
Avaliable Solutionsはsourceフォルダー内にあります。各ソリューションをVisual StudioまたはCodeで開くことができるはずです。コマンドラインから現在のプロジェクトを構築するには、次のようなコマンドを使用します。
dotnet build ./source/ApiChassi/ApiChassi.slnプロジェクトは、基本的なユニットテストセットで提供される必要があり、テンプレートに含まれています。また、次のコマンドを使用してスタンドアローンを実行することもできます。
dotnet test ./source/ApiChassi/ApiChassi.slnNugetパッケージを構築するには、Docker画像を使用することを選択します。必要なNuget Tool Dockerイメージを構築し、Nugetをテンプレートとして梱包するのに役立つ事前定義されたスクリプトがあります。ローカルに(Linuxまたはmacosでも)作成および構築するには:
# EXECUTE THE FOLLOWING COMMANDS AT THE ROOT FOLDER
# CREATES A DOCKER IMAGE LOCALLY TO PACK THE SOURCE
./.environment/scripts/make_nuget.cmd
# CREATES THE NUPKG
./.environment/script/make_package.cmdローカルテストの場合、フォルダーからnupkgファイルをインストールすることができます。それを行うには、次のコマンドを実行します。
dotnet new --install ./Xopz.Templates.Api.0.0.1.nupkg
# CHECK INSTALLED TEMPLATES
dotnet new --list | grep XOPZ
# CREATE SOLUTION FROM TEMPLATE
dotnet new apichassis --name MyApiインストールされているテンプレートを削除するには - nuget.orgまたはローカルから - 使用します。
dotnet new --uninstall Xopz.Templates.Api