C#后端接口开发实战:从MySQL连接到JSON数据解析的完整指南

在零点博客接手几个基于C#的项目后,我发现很多初学者对后端接口开发实战往往止步于“写一个查询页面”。其实,真正的核心在于如何用MySQL高效存储数据,并通过JSONXML安全地将其传输给前端。今天这篇文章,我们就来拆解一个简单的用户查询接口从0到1的落地过程。

一、 环境准备与数据库连接

开发后端接口,首先得连上数据库。这里我们使用经典的MySQL作为数据源。记得先安装NuGet包 MySql.Data

很多新手在写连接字符串时会遇到各种奇怪的报错,往往是因为字符编码的问题。在实际开发中,我通常会在连接字符串里直接指定字符集:CharSet=utf8mb4

string connString = "Server=localhost;Database=test_db;Uid=root;Pwd=123456;CharSet=utf8mb4;";
using (MySqlConnection conn = new MySqlConnection(connString))
{
    conn.Open();
    // 连接成功日志...
}

二、 核心逻辑:防SQL注入与预处理语句

后端接口开发实战中,安全永远是第一位的。最容易被忽略的痛点就是SQL注入防护

你是否还在像拼接字符串一样写SQL?比如 "SELECT * FROM users WHERE id = " + userId?千万别这么干!一旦前端传来的数据里包含恶意脚本,你的数据库就完了。

正确的做法是使用预处理语句。这不仅能防止注入,还能提高执行效率。

// 使用预处理语句的示例
string sql = "SELECT username, email FROM users WHERE id = @UserId";

using (MySqlCommand cmd = new MySqlCommand(sql, conn))
{
    // 绑定参数,自动处理转义
    cmd.Parameters.AddWithValue("@UserId", userId);

    using (MySqlDataReader reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            // 读取数据逻辑
        }
    }
}

三、 接口封装与JSON序列化

数据查出来了,怎么给前端?这就涉及到JSON/XML数据解析了。在C#中,序列化通常使用 Newtonsoft.JsonSystem.Text.Json

为了规范接口开发,我们要定义一个统一的返回格式。除了数据本身,我们还需要包含状态码和提示信息。

public class ApiResponse
{
    public int Code { get; set; } // 状态码:200成功,404未找到
    public string Message { get; set; } // 提示信息
    public object Data { get; set; } // 实际数据
}

// 控制器中的接口方法
[HttpGet("/api/users/{id}")]
public ApiResponse GetUser(int id)
{
    var user = GetUserFromDb(id); // 这里调用上面的预处理查询
    return new ApiResponse
    {
        Code = 200,
        Message = "查询成功",
        Data = user // 自动转JSON
    };
}

四、 前端调用与正则表达式校验

后端搞定了,前端也不能太简单。前端在发送请求前,通常会用正则表达式校验输入的合法性,比如邮箱格式、手机号格式。

// 简单的邮箱校验正则
string emailPattern = @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$";
if (!Regex.IsMatch(emailInput, emailPattern))
{
    alert("邮箱格式不正确");
    return;
}

// AJAX请求示例
fetch('/api/users/1')
  .then(response => response.json())
  .then(data => {
      if(data.Code === 200) {
          console.log(data.Data);
      }
  });

五、 复盘与避坑指南

在零点博客整理这份实战教程时,我复盘了之前踩过的坑,这里总结给各位:

  1. 异常处理:数据库连接是很容易抛出异常的,记得用 try-catch 包裹,不要直接崩在前端面前。
  2. 编码统一:永远别让前端收到乱码,C#和MySQL的编码最好都统一为UTF-8。
  3. 日志记录:在开发爬虫开发或调试接口时,打印详细的SQL日志(脱敏后)至关重要。

掌握这些点,你就已经具备了独立开发在线工具和后台管理系统接口的能力。希望这篇文章能帮你在后端接口开发实战的路上少走弯路!