NET8 Web API 框架: Swagger + Rin + Healthz

NET8 + Swagger + Rin + Healthz

Net8 + Swagger + Rin + Healthz

Web API 基礎框架

  • NET8 - 執行平台

  • Swagger - Web API 說明文件。預計只用開發時期。 若組織成功預設畫面多一個 swagger/index.html 網頁說明 API 封包。

  • Rin - 監看封包。預計只用開發時期。 若組織成功預設畫面多一個 rin 網頁監看 HTTP 封包。

  • Healthz - 網站健康狀態檢查。 若組織成功預設多一個 healthz 網址做網站健檢。

關於 Swagger 與 Healthz 均已介紹過不再說明。

關於 Rin

Request/response Inspector middleware for ASP.NET Core. like Glimpse.

Rin 教學

Rin 教學

沒圖沒真象

完整原始碼


補充 on 2024-09-27

讓 Swagger UI 夾帶 Bearer AccessToken

在 Swagger UI 加上驗證按鈕,讓 Request Header 傳遞 Authorize Token。

說明直接參考下面文章:

關鍵碼紀錄

Program.cs
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.OpenApi.Models;
using Serilog;

var builder = WebApplication.CreateBuilder(args);

#region §§ Add services to the container. ------------------------------------

//# 註冊服務
builder.Services.AddControllers();

//# 讓 Swagger UI 夾帶 Bearer AccessToken.  
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(options =>
{
  // 定義 Authorization 輪入欄位
  options.AddSecurityDefinition("Bearer",
    new OpenApiSecurityScheme
    {
      Name = "Authorization",
      Type = SecuritySchemeType.ApiKey,
      Scheme = "Bearer",
      BearerFormat = "JWT",
      In = ParameterLocation.Header,
      Description = "JWT Authorization"
    });

  // 把定義好的輪入欄位加到 UI 
  options.AddSecurityRequirement(new OpenApiSecurityRequirement
  {
    {
      new OpenApiSecurityScheme
      {
        Reference = new OpenApiReference
        {
          Type = ReferenceType.SecurityScheme,
          Id = "Bearer"
        }
      },
      new string[] {}
    }
  });
});

var app = builder.Build();

...略...

(EOF)

Last updated