C# ASP.NET Core Webサービスで Hello World する
こんにちは、@studio_meowtoon です。今回は、WSL の Ubuntu 24.04 で C# ASP.NET Core Web アプリケーションを作成して Hello World を出力する方法を紹介します。
目的
Windows 11 の Linux でクラウド開発します。
こちらから記事の一覧がご覧いただけます。
実現すること
ローカル環境の Ubuntu で、C# ASP.NET Core Web サービスの DLL ファイル形式のアプリを起動します。
DLL ファイル形式のアプリを起動
要素 | 概要 |
---|---|
terminal | ターミナル |
Ubuntu | OS |
dotnet | .NET 実行環境 |
kestrel | Web サーバー |
WebApp.dll | .NET アプリケーション |
C# には本来厳格なコーディング規則がありますが、この記事では可読性のために、一部規則に沿わない表記方法を使用しています。ご注意ください。
技術トピック
ASP.NET Core とは?
こちらを展開してご覧いただけます。
ASP.NET Core
ASP.NET Core は、Microsoft が開発したオープンソースの Web アプリケーションフレームワークです。
特徴 |
---|
クロスプラットフォームで動作します。 |
ASP.NET Coreは、Web アプリケーション、API、マイクロサービス、および IoT アプリケーションの開発に使用できます。 |
ASP.NET Core には、軽量なリクエスト処理パイプライン、依存関係注入、テスト可能なアーキテクチャ、およびクロスプラットフォームのサポートが組み込まれています。 |
ASP.NET Core は、C#、F#、および Visual Basic をサポートし、Visual Studio、VS Code、およびその他のエディターで開発できます。 |
開発環境
- Windows 11 Home 23H2 を使用しています。
WSL の Ubuntu を操作していきますので macOS の方も参考にして頂けます。
WSL (Microsoft Store アプリ版) ※ こちらの関連記事からインストール方法をご確認いただけます
> wsl --version
WSL バージョン: 2.2.4.0
カーネル バージョン: 5.15.153.1-2
WSLg バージョン: 1.0.61
Ubuntu ※ こちらの関連記事からインストール方法をご確認いただけます
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: noble
.NET SDK ※ こちらの関連記事からインストール方法をご確認いただけます
$ dotnet --list-sdks
8.0.107 [/usr/lib/dotnet/sdk]
$ dotnet --version
8.0.107
この記事では基本的に Ubuntu のターミナルで操作を行います。Vim を使用してコピペする方法を初めて学ぶ人のために、以下の記事で手順を紹介しています。ぜひ挑戦してみてください。
作成する Web アプリケーションの仕様
No | エンドポイント | HTTPメソッド | MIME タイプ |
---|---|---|---|
1 | /api/data | GET | application/json |
/api/data というエンドポイントに対して HTTP GET リクエストを送信すると、JSON データがレスポンスされるシンプルな Web サービスを実装します。
{"message":"Hello World!"}
Hello World を表示する手順
プロジェクトルートフォルダに移動
プロジェクトルートフォルダに移動します。
※ ~/tmp/WebApp をプロジェクトフォルダとします。
$ cd ~/tmp
プロジェクトの作成
プロジェクトを作成します。
$ dotnet new web -n WebApp
プロジェクトフォルダに移動します。
$ cd ~/tmp/WebApp
Program クラスの修正
Program クラスを修正します。
$ vim Program.cs
ファイルの内容
using System.Text.Json;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
WebApplication app = builder.Build();
configure(app);
static void configure(IApplicationBuilder app) {
app.UseRouting();
app.UseEndpoints(endpoints => endpoints.MapGet("/api/data", handleGetData));
}
static async Task handleGetData(HttpContext context) {
object data = new { message = "Hello World!" };
String json = JsonSerializer.Serialize(data);
context.Response.ContentType = "application/json";
await context.Response.WriteAsync(json);
}
app.Run();
このように記述することも可能です。
ファイルの内容
using System.Text.Json;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
WebApplication app = builder.Build();
app.UseRouting();
app.UseEndpoints(endpoints => {
endpoints.MapGet("/api/data", async context => {
object data = new { message = "Hello World!" };
String json = JsonSerializer.Serialize(data);
context.Response.ContentType = "application/json";
await context.Response.WriteAsync(json);
});
endpoints.MapControllers();
});
app.Run();
アプリのビルドと起動
アプリを起動します。
※ アプリを停止するときは ctrl + C を押します。
$ dotnet run
ここまでの手順で、Ubuntu でアプリの DLL ファイルを起動することができました。
アプリの動作確認
アプリを起動したターミナルにアプリがリッスンする URL が表示されています。※ ポート番号は変動するので読み替えてください。
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5079
別ターミナルから curl コマンドで確認します。
$ curl -v http://localhost:5079/api/data -w "\n"
出力
* Host localhost:5079 was resolved.
* IPv6: ::1
* IPv4: 127.0.0.1
* Trying [::1]:5079...
* Connected to localhost (::1) port 5079
> GET /api/data HTTP/1.1
> Host: localhost:5079
> User-Agent: curl/8.5.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Wed, 17 Jul 2024 13:15:16 GMT
< Server: Kestrel
< Transfer-Encoding: chunked
<
* Connection #0 to host localhost left intact
{"message":"Hello World!"}
ここまでの手順で、ターミナルに {"message":"Hello World!"} と表示され、JSON データを取得することが出来ました。
まとめ
Ubuntu に構築したシンプルな .NET の開発環境で、C# ASP.NET Core Web サービスを実行することができました。
実際の業務での ASP.NET Core の使用ケースでは、ここで示したようなシンプルな構成とは異なる場合があります。しかしながら、最小構成の例を学ぶことで、ASP.NET Core がどのような構成が必要なのかを理解することができます。
どうでしたか? WSL Ubuntu で、C# ASP.NET Core Web アプリケーションを手軽に起動することができます。ぜひお試しください。今後も .NET の開発環境などを紹介していきますので、ぜひお楽しみにしてください。
推奨コンテンツ
関連記事
Java Spring Boot