You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

接口改造需求:按英文月份名称查询对应月份投诉数据

接口改造:支持英文月份查询当月投诉数据

原接口代码如下,当前仅支持接收yyyy-mm-dd格式的日期参数,返回对应日期的Complains表数据:

[HttpGet]
public HttpResponseMessage Date(String date)
{
    try
    {
        var users = db.Complains.Where(u => u.Date == date).ToList();
        return Request.CreateResponse(HttpStatusCode.OK, users);
    }
    catch (Exception ex)
    {
        return Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
    }
}

改造方案

要实现接收英文月份名称(如January、February)并返回当月所有数据,需完成以下调整:

  1. 兼容解析不同大小写的英文月份名称,转换为对应的月份数字(1-12)
  2. 修改查询逻辑,筛选Date字段月份匹配的记录
  3. 增加参数格式校验,解析失败时返回400错误

修改后的代码:

[HttpGet]
public HttpResponseMessage Date(String date)
{
    try
    {
        // 解析完整英文月份名称(如January),兼容大小写
        if (!DateTime.TryParseExact(date, "MMMM", CultureInfo.GetCultureInfo("en-US"), DateTimeStyles.None, out DateTime monthDate))
        {
            // 可选:兼容短月份缩写(如Jan、Feb)
            if (!DateTime.TryParseExact(date, "MMM", CultureInfo.GetCultureInfo("en-US"), DateTimeStyles.None, out monthDate))
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest, "请输入有效的英文月份名称(如January、Feb)");
            }
        }

        // 查询该月份的所有Complains数据
        var complains = db.Complains.Where(u => u.Date.Month == monthDate.Month).ToList();
        return Request.CreateResponse(HttpStatusCode.OK, complains);
    }
    catch (Exception ex)
    {
        return Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
    }
}

关键说明

  • 用DateTime.TryParseExact配合"MMMM"格式解析完整英文月份,"MMM"可按需保留以支持短缩写
  • 指定en-US文化确保英文月份解析的准确性
  • 新增参数校验逻辑,提前拦截无效输入
  • 查询逻辑改为匹配日期字段的Month属性,返回当月全量数据

内容的提问来源于stack exchange,提问作者Shahzad Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:05:34