剛開始我只知道兩種(我還以為就這兩種
後來我才知道它還有另外兩種返回值類型
而且經過爬文才知道
最推薦的是後來發現的
我真的是孤陋寡聞阿(沒關係,反正我是菜鳥別人會體諒四大分類一 void
這個想畢大家都很熟悉吧
就是沒有回傳值的方法
就是呼叫後,不需要return
sever端會幫你回傳標準的204(No Content)的Http回應
給Client端(這段我上網找了頗久,之前我還以為是直接斷開範例:public void Delete(int id) { }呼叫結果如圖
這就是大家最常用
同時也最熟悉的寫法吧
你寫什麼回傳型態
就要回傳甚麼型態的資料
我之前大都用這種寫法~~
範例:
public string Get()
{
return “value”;
}
這裡理所當然會回傳一組字串
“value”
呼叫結果如圖
前面畢竟還有接觸過
接下來就….三 HttpResponseMessage
這東西很妙
因為它可以自定義sever端回傳的狀態
也就是說可以不用系統自動產生的
而是由我們決定
當然還是可以用系統產生的啦
而回傳的東西也很有趣範例(我這邊用的是微軟的範例public class ValuesController : ApiController{ public HttpResponseMessage Get() { HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, “value”); response.Content = new StringContent(“hello”, Encoding.Unicode); response.Headers.CacheControl = new CacheControlHeaderValue() { MaxAge = TimeSpan.FromMinutes(20) }; return response; } }回應:HTTP/1.1 200 OK Cache-Control: max-age=1200 Content-Length: 10 Content-Type: text/plain; charset=utf-16 Server: Microsoft-IIS/8.0 Date: Mon, 27 Jan 2014 08:53:35 GMT hello它回傳的狀態是 HttpStatusCode.OK
回傳的文字 hello
文字格式 Encoding.Unicode這寫法的優點
是可以控制的回應訊息很多四 IHttpActionResult
這很重要!!!
這很重要!!!
這很重要!!!因為很重要所以打三次~~就我看上網爬文
大多的推薦回傳型態都是用這個寫IHttpActionResult Web API 2 中引進了介面。 基本上,它會定義HttpResponseMessage factory。
至於甚麼是 factory 相信大家都知道(除了我,我還研究了一陣子IHttpActionResult包含單一方法ExecuteAsync,以非同步方式建立HttpResponseMessage執行個體。public interface IHttpActionResult { Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken); }我就用我的程式碼簡單舉例一下好了public IHttpActionResult delete(int id) { return Ok(id); }Ok的部分就是 HttpResponseMessage 回傳狀態(又分BadRequest,Conflict,Ok,NotFound….等
id就是我上面傳進來的 int(但是也可以回傳諸多類型,例如我們最常用的類別,當然最普通的string也是可以啦哈哈
好啦~今天就先到這裡
整理這些東西對我這個菜鳥來說真的不容易
有甚麼觀念錯誤的地方請諸位大大好心提出喔以下在附上微軟解釋以上四種東西的圖表
转载请注明:XAMPP中文组官网 » DAY 4 API返回值類型分類