透过 ASP.NET Core 制作一个 QRCode 产生器的 API

  之前同仁反应使用 Google 的 QR Code API 有时会无法使用,查了相关资讯后,有了想透过撰写这个 API 来学习 C# 的想法,花了些时间摸索,还真被我搞出来。此 API 的功能为在网址输入值,便可直接在浏览器产生 QRCode 的图片,以下会以第一次撰写 ASP.NET Core / C# 的新手角度来说明。

新增专案
「档案 → 新增 → 专案」,上面的筛选类别选择「C#, 窗口, 网页API」,
选择 ASP.NET Core Web API

输入一个专案名称。

这边我有勾选「使用控制器」,感觉程式稍微分类一下比较清楚。
「启用 OpenAPI 支援」则是取消勾选,因为用不到。

安装 QRCoder 套件
「专案 → 管理 NuGet 套件」。

搜尋 “二维码编码器”,并安装。

新增 Controller
在 [控制器] 目录按右键,选择「加入 → 控制器」。

选择 「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
  • 托管捆绑包 (IIS边缘): dotnet-hosting-6.0.28-win.exe

《参考连结》

一个响应

  1. 老森常谭 IT Help » 透过 Visual Studio 将专案发布至 IIS 伺服器 说: |

    […] QRCode 產生器的 API 後摸不著頭緒要怎麼把程式變成 IIS […]

发表评论

请注意:: 评论审核已启用,可能会耽误您的评论. 有没有必要重新提交您的评论.