ASP.NET core webapi返回資料型別 _平臺:windows (4)
阿新 • • 發佈:2018-12-20
ASP.NET core webapi 返回資料型別 _平臺:windows (4)
我們經常會發現前端大部分時候請求介面後,返回的資料都是json。那麼我們看看後面的api是如何寫的。
首先我們以預設建立的那個控制器(ValuesController)為參考物:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace mynetcorewebapi.Controllers { [RouteAttribute("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { // GET api/values [HttpGet] public ActionResult<IEnumerable<string>> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 [HttpGet("{id}")] public ActionResult<string> Get(int id) { return "value"; } // POST api/values [HttpPost] public void Post([FromBody] string value) { } // PUT api/values/5 [HttpPut("{id}")] public void Put(int id, [FromBody] string value) { } // DELETE api/values/5 [HttpDelete("{id}")] public void Delete(int id) { } } }
我們發現上面程式碼中的 ActionResult<IEnumerable> 這個返回值是一個 字串泛型集合
如果我們不想每次都限定型別可以寫成 ActionResult
如果想繼續少些點程式碼,直接寫 object 也是可以的,那麼簡化後就是這樣的
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace mynetcorewebapi.Controllers { [ApiController] public class ValuesController : ControllerBase { [RouteAttribute("api/values/get")] [HttpGet] public ActionResult<object> Get() { return new string[] { "value1", "value2" }; } } }
還有這樣:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace mynetcorewebapi.Controllers { [ApiController] public class ValuesController : ControllerBase { [RouteAttribute("api/values/get")] [HttpGet] public object Get() { return new string[] { "value1", "value2" }; } } }
訪問後的結果(都是):