https://dotnet-communities.connpass.com/event/277868/ での資料です
#dotnetjpcommunitiesWeb API development in Visual Studio 20222023/05/31 .NET の 3 日間 day1Yuta Matsumura© 2023 Yuta Matsumura.
View Slide
#dotnetjpcommunities松村 優大 (Yuta Matsumura)Currently working for© 2023 Yuta Matsumura.Chief Technical ArchitectC#, PHP, Azure, GitHub が好きMicrosoft MVP (Developer Technologies)#fukuten #devblogradio の中の人@tsubakimoto_s
#dotnetjpcommunities© 2023 Yuta Matsumura.
#dotnetjpcommunities© 2023 Yuta Matsumura.2023年6月24日 (土)福岡市で開催#phpconfuk
#dotnetjpcommunities© 2023 Yuta Matsumura.2023年8月3日 (木)福岡市で開催#cndf2023プロポーザル募集中event.cloudnativedays.jp/cndf2023
#dotnetjpcommunitiesこれからお話しすることVisual Studio 2022 での Web API 開発に関する最近の技術https://devblogs.microsoft.com/visualstudio/web-api-development-in-visual-studio-2022/© 2023 Yuta Matsumura.
#dotnetjpcommunities前提:Visual Studio 2022 17.7.0 Preview 1.0© 2023 Yuta Matsumura.https://visualstudio.microsoft.com/
#dotnetjpcommunities目次1. Visual Studio でのスキャフォールド2. Visual Studio での Entity Framework Core サポート3. Visual Studio でのエンドポイントエクスプローラー4. Visual Studio での REST クライアント5. (おまけ)Visual Studio dev tunnels© 2023 Yuta Matsumura.
#dotnetjpcommunitiesプロジェクトの作成© 2023 Yuta Matsumura.
#dotnetjpcommunities最小限の API = Minimal API• ASP.NET Core 6.0 で登場した機能• 依存関係が最小限の Web API を作成• ルーティングで構成するエンドポイント定義(ApiContollerを使わない)© 2023 Yuta Matsumura.https://learn.microsoft.com/ja-jp/aspnet/core/fundamentals/minimal-apis
#dotnetjpcommunities#dotnetjpcommunitiesProgram.cs
#dotnetjpcommunities© 2023 Yuta Matsumura.https://speakerdeck.com/tsubakimoto_s/minimal-api-to-di-noliang-izu-mihe-wase
#dotnetjpcommunities#dotnetjpcommunitiesのサポート© 2023 Yuta Matsumura.
#dotnetjpcommunities#dotnetjpcommunities定義を設定した エンドポイント© 2023 Yuta Matsumura.
#dotnetjpcommunitiesスキャフォールドの実施© 2023 Yuta Matsumura.
#dotnetjpcommunities#dotnetjpcommunitiesこういうクラスがあったとします© 2023 Yuta Matsumura.
#dotnetjpcommunitiesスキャフォールディング後• DB コンテキスト• 接続文字列の設定 (appsettings.json)• エンドポイントの定義• EF Core ツールのインストール• Microsoft.EntityFrameworkCore.Sqlite• Microsoft.EntityFrameworkCore.Tools• Microsoft.VisualStudio.Web.CodeGeneration.Design© 2023 Yuta Matsumura.
#dotnetjpcommunities#dotnetjpcommunitiesエンドポイント© 2023 Yuta Matsumura.
#dotnetjpcommunitiesEF Core でのマイグレーション© 2023 Yuta Matsumura.
#dotnetjpcommunitiesWeb API エンドポイントエクスプローラー© 2023 Yuta Matsumura.
#dotnetjpcommunities#dotnetjpcommunitiesエンドポイントエクスプローラーのサポート© 2023 Yuta Matsumura.
#dotnetjpcommunities表示>その他のウィンドウ© 2023 Yuta Matsumura.
#dotnetjpcommunities#dotnetjpcommunities... 変数... HTTPリクエスト(GET)区切り© 2023 Yuta Matsumura.
#dotnetjpcommunities#dotnetjpcommunities... 変数... HTTPリクエスト(POST)リクエストヘッダーリクエストヘッダーリクエストボディ変数の埋込© 2023 Yuta Matsumura.
#dotnetjpcommunitiesVS の REST Client• .http 拡張子、または .rest 拡張子• 以前は REST Client 拡張機能が必要だった• 今は Visual Studio がサポートしている• VS Code でも同様のことができるhttps://marketplace.visualstudio.com/items?itemName=humao.rest-client© 2023 Yuta Matsumura.
#dotnetjpcommunitiesVS の REST Client でまだできないこと• OPTIONS メソッド• 複数行にわたるリクエスト• 名前付きリクエスト• 動的変数• 環境ファイル• リクエストボディのファイルパス指定• multipart/form-data を使用する場合の本文の混合形式• GraphQL リクエスト• cURLリクエスト• cURL としてコピー/貼り付け• リクエスト履歴• 応答本文をファイルに保存する• 証明書ベースの認証• プロンプト変数• システム変数• 応答プレビューのカスタマイズ• リクエストごとの設定© 2023 Yuta Matsumura.
#dotnetjpcommunities(おまけ)Visual Studio dev tunnels© 2023 Yuta Matsumura.
#dotnetjpcommunitiesローカル環境Web API の動作確認© 2023 Yuta Matsumura.https://example.com/...https://localhost/...到達しない!
#dotnetjpcommunitiesローカル環境Web API の動作確認© 2023 Yuta Matsumura.https://example.com/...https://xxx.ngrok.io/...
#dotnetjpcommunitiesローカル環境Web API の動作確認© 2023 Yuta Matsumura.https://example.com/...https://xxx.devtunnels.ms/...
#dotnetjpcommunitiesVisual Studio dev tunnels• Visual Studio 2022 17.5 Preview から登場• ローカルの Web エンドポイントを外部公開する• 一時的または永続的なエンドポイント• アクセス制御可能• HTTPS プロトコルで提供される© 2023 Yuta Matsumura.https://learn.microsoft.com/ja-jp/connectors/custom-connectors/port-tunneling
#dotnetjpcommunities© 2023 Yuta Matsumura.一時的・永続的非公開・組織用・公開用
#dotnetjpcommunitiesdev tunnels のアクセス制御種類 アクセス範囲非公開 (Private) 作成者のみ組織用 (Organization)同一組織アカウントのみ(MSAやGitHubアカウントでは非公開と同じ)公開用 (Public) 認証なし© 2023 Yuta Matsumura.
#dotnetjpcommunities初回アクセス時© 2023 Yuta Matsumura.
#dotnetjpcommunitiesご清聴ありがとうございました© 2023 Yuta Matsumura.