【问题标题】:any way to provide a success message in addition to response data in web api rest?除了 web api rest 中的响应数据之外,还有什么方法可以提供成功消息?
【发布时间】:2026-01-30 05:10:02
【问题描述】:

除了 web api rest 中的响应数据之外,有没有办法提供成功消息?基本上,200 会与数据集合一起返回,但有没有办法在数据集合中包含额外的文本消息?

【问题讨论】:

  • 你能展示你提到的WebAPI控制器/动作和数据收集的一些实现吗?
  • 可以更改原因短语(OK),可以有一些短信,每个状态码都有原因短语urivalet.com/reason-phrases

标签: .net web-services rest asp.net-web-api asp.net-web-api2


【解决方案1】:

您可以添加自己的自定义标题。

例如HttpContext.Current.Response.AppendHeader("MyStatus", "这很成功");

【讨论】:

  • 这使得客户端应用程序必须解析标头:)
【解决方案2】:

是的,你可以尝试如下方式:

public IHttpActionResult Post([FromBody]string value)
{
        // do something...

        var response = new
        {
            Success = true,
            Message = "Hello from Web API Controller",
            // other data...
        };
        return Ok(response);
}

希望这会有所帮助!

【讨论】:

    【解决方案3】:

    更多更好的选择是创建过滤器并注册它

      public class addSuccResponse : ActionFilterAttribute
    {
        public override void OnActionExecuted(HttpActionExecutedContext context)
        {
    
            switch (context.Request.Method.Method.ToLower()) {
    
                case "post":
                    context.Response.Headers.Add("serverMessage", "post message);
                    break;
    
                case "put":
                    context.Response.Headers.Add("serverMessage", "put message");
                    break;
    
                case "delete":
                    context.Response.Headers.Add("serverMessage", "delete message");
                    break;
    
            }
    
        }
    }
    

    然后将它注册到 webapiconfig 如果你想应用到所有 api 的 else 用作属性

      config.Filters.Add(new addSuccResponse());
    

    【讨论】:

      最近更新 更多