透過 ASP.NET Core 製作一個 QRCode 產生器的 API

  之前同仁反應使用 Google 的 QR Code API 有時會無法使用查了相關資訊後有了想透過撰寫這個 API 來學習 C# 的想法花了些時間摸索還真被我搞出來此 API 的功能為在網址輸入值便可直接在瀏覽器產生 QRCode 的圖片以下會以第一次撰寫 ASP.NET Core / C# 的新手角度來說明

新增專案
「檔案 → 新增 → 專案」上面的篩選類別選擇「C#, 윈도우, WebAPI」
선택 ASP.NET Core Web API

輸入一個專案名稱

這邊我有勾選「使用控制器」感覺程式稍微分類一下比較清楚
「啟用 OpenAPI 支援」則是取消勾選因為用不到

安裝 QRCoder 套件
「專案 → 管理 NuGet 套件」

검색 “QRCoder”,그리고 설치。

新增 Controller
에 [Controllers] 目錄按右鍵選擇「加入 → 控制器」

選擇 「API」項目中的「API 控制器空白」

再次選擇「API 控制器空白」

撰寫程式
在剛剛新增的 Controller 撰寫程式

// using Microsoft.AspNetCore.Http;
// 系統產生,沒用到。

using Microsoft.AspNetCore.Mvc;
using QRCoder;

namespace QRCode.Controllers
{
    [Route("[controller]")]
    // 指定路徑為 xxx.com/QRCodeGen,
    // 不指定時,會是 xxx.com/。

    // [ApiController]
    // 系統產生,沒用到。

    public class QRCodeGenController : ControllerBase
    {
        [HttpGet]
        [Route("{qrText}")]
        public IActionResult GetQrCode(string qrText)
        {
            byte[] image = PngByteQRCodeHelper.GetQRCode(qrText, QRCodeGenerator.ECCLevel.Q, 10);
            return File(image, "image/png");
        }
    }
}

測試結果
選擇「偵錯 → 開始偵錯」

在網址列最後面輸入 Controller 的名稱以及要產生 QRCode 的值按下 Enter 後即可以產生 QRCode圖片

其他補充
這支程式是在半年前寫的印象有遇到幾個狀況而陸續裝了以下套件供參考
ASP.NET Core 執行階段 6.0.36

  • x64 (開發端): aspnetcore-runtime-6.0.28-win-x64.exe
  • Hosting Bundle (IIS 端): dotnet-hosting-6.0.28-win.exe

"참고링크"

코멘트를 남겨주세요

유의하시기 바랍니다: 덧글 검토가 활성화되고 귀하의 코멘트를 지연시킬 수있다. 댓글을 다시 제출하실 필요는 없습니다.