Web Api返回值

参考资料:C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

namespace WebApi.Controllers
{
    public class HomeController : ApiController
    {
        [HttpGet]
        public int GetByAge(string name)
        {
            if (name == "admin") return 25;
            if (name == "lily") return 18;
            return 0; //Action 的返回值可以是普通类型,这是最常用的。
        }

        [HttpGet]
        public void ExecuteFun()
        {
            //Action 的返回值可以为void,这样客户端会得到204 的状态码,尽量别这样干
        }

        public IHttpActionResult Add(int i)
        {
            if (i == 1)
            {
                return Ok(); //如果返回Ok(),就表示不向客户端返回任何信息,只告诉客户端请求成功。
            }
            if (i == 2)
            {
                return Json(new { code = 0, data = "abc" }); //返回一个json数据
            }
            if (i == 3)
            {
                List<string> list = new List<string>() { "tom", "lily", "luc" }; //返回一个泛型json数据
                return Json<List<string>>(list);
            }
            if (i == 4)
            {
                return Content(HttpStatusCode.OK, new { data = "abc" }); //向客户端返回http状态码和值(值可以是对象,也可以是其他类型)
            }
            if (i == 5)
            {
                return Content<string>(HttpStatusCode.OK, "abc");//向客户端返回http状态码和指定类型的值
            }
            if (i == 6)
            {
                return StatusCode(HttpStatusCode.NotFound); //返回一个状态码 HttpStatusCode是一个枚举
            }
            if (i == 7)
            {
                return BadRequest("错误"); //向客户端返回400的http错误。
            }

            return NotFound();//NotFound()方法会返回一个404的错误到客户端。
        }

        //向客户端返回一个http响应的消息对象(比较精细化的控制返回消息)
        public HttpResponseMessage Index()
        {
            HttpResponseMessage msg = new HttpResponseMessage();
            msg.StatusCode = System.Net.HttpStatusCode.OK; //设置http状态码
            msg.Content = new StringContent("内容哈哈哈哈");
            msg.Headers.Add("UserName", "Tom");
            msg.Headers.Age = TimeSpan.FromDays(2);
            return msg;
        }

        public HttpResponseMessage Export()//导出的Excel文件输出到客户端浏览器
        {
            //取数据
            var lstRes = OrderBLL.Export();

            //向Excel里面填充数据
            HSSFWorkbook workbook = new HSSFWorkbook();
            CreateAndFillSheet(workbook, lstRes);

            //保存到服务
            var fileName = "Excel" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
            var strPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Data\" + fileName);
            using (FileStream fs = new FileStream(strPath, FileMode.Create))
            {
                workbook.Write(fs);
                using (MemoryStream ms = new MemoryStream())
                {
                    workbook.Write(ms);
                }
            }

            //输出到浏览器
            try
            {
                //将文件流保存在StreamContent对象里面,然后输出到浏览器。在浏览器端即可将Excel输出。
                var stream = new FileStream(strPath, FileMode.Open);
                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
                response.Content = new StreamContent(stream);
                response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = fileName
                };

                return response;
            }
            catch
            {
                return new HttpResponseMessage(HttpStatusCode.NoContent);
            }
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.NET Core Web API 统一返回值是指在开发过程中,通过统一的数据结构来返回API的结果,以便客户端能够方便地处理和解析返回的数据。 .NET Core Web API通常使用HTTP协议进行通信,因此通常返回的是一个HTTP响应。在实际开发中,我们可以定义一个统一的返回值对象,该对象包含了常用的返回信息字段,比如状态码、消息、数据等。 统一返回值的优点包括: 1. 统一的数据结构,提高了API的可维护性和可扩展性,便于开发者理解和处理返回的数据。 2. 提高了代码的重用性,避免了重复编写返回结果的逻辑。 3. 方便前端开发人员解析和处理返回值,减少了前后端的沟通成本。 常见的.NET Core Web API统一返回值格式可以是一个JSON对象,其中包含以下字段: - StatusCode(状态码): 表示API返回的状态,比如200代表成功,400代表请求错误,500代表服务器内部错误等。 - Message(消息): 返回给客户端的消息,用于提示客户端请求的处理情况。 - Data(数据): API返回的具体数据,可以是一个实体对象、列表或自定义的数据结构。 除了这些基本字段外,还可以根据具体的业务需求添加其他自定义字段。在返回时,可以将这些字段序列化为JSON字符串并将其作为HTTP响应的内容返回给客户端。 在.NET Core Web API中,可以通过定义一个统一的返回值模型类,并使用ActionResult或IActionResult作为方法返回类型来实现统一的返回值。在具体的API方法实现中,可以根据业务逻辑将要返回的数据封装到统一的返回值对象中,并根据请求的处理结果返回相应的状态码和消息。 总之,通过.NET Core Web API统一返回值,可以提高接口的统一性、一致性和可读性,减少错误处理代码的编写工作量,同时也提高了前后端开发的协作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值