零点博客复盘:手撸C#后端接口开发实战,从MySQL对接与JSON解析到SQL注入防护

大家好,我是零点博客的博主。最近有朋友问我,是不是把 EMLOG 换成了 C#?其实不然,很多基于 PHP 的博客系统(包括 EMLOG)在数据量大或需要高并发接口支持时,依然会选择 C# 这种高性能语言来做后端辅助。今天咱们不整虚的,就聊聊 C# 后端接口开发实战,怎么把 MySQL 数据库里的内容“吐”给前端,顺便聊聊正则表达式和SQL注入防护这些痛点了。

一、环境搭建与数据库连接

咱们直接使用 ASP.NET Core 来跑。首先得有个 MySQL 库。在零点博客的后台管理里,很多配置其实是读数据库的。咱们写个简单的 Demo,先查数据。

别一上来就拼字符串,记住,SQL注入防护是第一道防线。很多新手喜欢写这样硬编码的语句:

string sql = "SELECT * FROM Posts WHERE title = '" + userTitle + "'";

这话看着没问题,但只要有人输个 `1' OR '1'='1`,你的数据库就炸了。正确的姿势是用预处理语句。

string sql = "SELECT * FROM Posts WHERE title = @Title";
using (var cmd = new MySqlCommand(sql, conn))
{
    cmd.Parameters.AddWithValue("@Title", userTitle); // 安全!
    // 执行查询...
}

这就是实战中的第一步:安全。接下来,咱们要把查询结果转成 JSON 传给前端。

二、JSON/XML 数据解析与接口返回

C# 在处理 JSON 上非常舒服,但有时候为了兼容旧系统,或者配合 PHP 做一些特定接口,也得处理 XML。不过现在的趋势肯定是 JSON。

在 ASP.NET Core 里,通常我们会定义一个实体类(DTO),然后把数据库实体映射过去:

public class PostDto
{
    public int Id { get; set; }
    public string Title { get; set; }
    public DateTime CreateTime { get; set; }
}

[HttpGet("api/posts/{id}")]
public IActionResult GetPost(int id)
{
    var post = _repository.GetPostById(id);
    if (post == null) return NotFound();

    // 直接转 JSON,因为后端接口开发实战的核心就是高效交换数据
    return Ok(JsonConvert.SerializeObject(post)); 
}

前端拿到 JSON 后,用原生 JS 解析一下就能用。如果是做爬虫开发,我们甚至可以反向利用这些接口,把别人的网站数据“抓”下来存进 MySQL,这时候正则表达式又派上用场了。

三、正则表达式在 HTML 清洗中的妙用

在做内容采集或者解析第三方 API 时,返回的 HTML 往往带有一堆垃圾标签。这时候别用正则写死 HTML 结构了,很容易坏。咱们可以用正则提取纯文本。

string html = "...从数据库或网页获取的 HTML 内容...";
// 提取所有链接
MatchCollection links = Regex.Matches(html, "<a href=\"(?<href>[^&]*)\"[^>]*>(?<text>[^<]*?)</a>");

foreach (Match link in links)
{
    Console.WriteLine($"Url: {link.Groups["href"].Value}, Text: {link.Groups["text"].Value}");
}

这套逻辑下来,一个简易的内容采集工具就完成了。如果你是做 EMLOG 主题开发或者零点博客这类站点的二次开发,这种数据清洗能力非常关键。

四、前端交互与避坑指南

后端写好了,HTML/CSS/JS 这套组合拳也不能落下。前端发请求通常用 fetch。

fetch('/api/posts/1')
  .then(response => response.json())
  .then(data => {
      // 渲染到页面
      document.getElementById('post-title').innerText = data.title;
  });

避坑指南: 很多初学者忽略了 CORS(跨域资源共享)配置,后端接口开发实战中,前端跑在 8080 端口,后端在 5000 端口,不加配置绝对拿不到数据。记得在 Program.cs 里加中间件。

五、总结

从数据库的增删改查,到 JSON 的序列化,再到正则的清洗和接口的安全防护,这就是一个标准的 C# 后端接口开发实战流程。对于使用 EMLOG 的同学来说,用 C# 写辅助接口来做爬虫或者数据分析,绝对是提升网站核心竞争力的好办法。希望这篇博文能帮到大家,代码都在这儿,拿去跑两遍,比看一百篇教程都管用。