使用ASP.Net WebAPI构建REST服务(一)——简单的示例
由于給予REST的Web服務非常簡單易用,它越來越成為企業(yè)后端服務集成的首選方法。本文這里介紹一下如何通過微軟的Asp.Net WebAPI快速構建REST-ful 服務。
首先創(chuàng)建一個Asp.Net Web應用程序(我這里用的是Visual Studio 2013,它已經內置了Web API2)。
????
在出來的模板中選擇Empty(空項目),并勾選WebAPI。點擊確定后,就創(chuàng)建了一個空的WebAPI服務。
????
此時只有一個空項目,還沒有任何功能,在進行下一步之前,首先我們來看一下REST的基本操作模型,大致可以分為如下四種:
- POST — 創(chuàng)建資源
- GET — 檢索資源
- PUT — 更新資源
- DELETE — 刪除資源
非常經典的CRUD模型。在Web API中實現(xiàn)這樣一個的模型是非常簡單的,直接使用向導建一個Controller即可
????
????
如果用傳統(tǒng)的向導,記得把向導后面的那個1給去掉:
?
默認的模板內容如下:
????public?class?ValuesController?:?ApiController
????{
????????// GET api/<controller>
????????public?IEnumerable<string> Get()
????????{
????????????return?new?string[] {?"value1",?"value2"?};
????????}
????????// GET api/<controller>/5
????????public?string?Get(int?id)
????????{
????????????return?"value";
????????}
????????// POST api/<controller>
????????public?void?Post([FromBody]string?value)
????????{
????????}
????????// PUT api/<controller>/5
????????public?void?Put(int?id, [FromBody]string?value)
????????{
????????}
????????// DELETE api/<controller>/5
????????public?void?Delete(int?id)
????????{
????????}
????}
這其實已經幫我們實現(xiàn)了一個最基本的服務了,不過這個服務中只實現(xiàn)了Get,它支持如下兩種中方式的URL訪問(其它的方式也能訪問,但沒有具體的效果):
- api/values????????訪問所有的Value列表????
- api/values/{id}????????根據ID訪問Value
按Ctrl + F5中執(zhí)行,在瀏覽器中輸入相應的地址即可看到結果
????
下面我們要做的就是完善它,實現(xiàn)一個簡單的查詢功能,這里我引用了微軟官方的一個例子:
public?class?ProductsController?:?ApiController
{
????????Product[] products =?new?Product[]
????????{
????????????new?Product?{ Id = 1, Name =?"Tomato Soup", Category =?"Groceries", Price = 1 },
????????????new?Product?{ Id = 2, Name =?"Yo-yo", Category =?"Toys", Price = 3.75M },
????????????new?Product?{ Id = 3, Name =?"Hammer", Category =?"Hardware", Price = 16.99M }
????????};
????????public?IEnumerable<Product> Get()
????????{
????????????return?products;
????????}
????????public?IHttpActionResult?Get(int?id)
????????{
????????????var?product = products.FirstOrDefault((p) => p.Id == id);
????????????if?(product ==?null)
????????????{
????????????????return?NotFound();
????????????}
????????????return?Ok(product);
????????}
????}
????public?class?Product
????{
????????public?int?Id {?get;?set; }
????????public?string?Name {?get;?set; }
????????public?string?Category {?get;?set; }
????????public?decimal?Price {?get;?set; }
????}
此時,我們就可以在瀏覽器中看到結果了(由于Controller改名字了,此時的地址就變成了api/products)
????
到此為止,一個基于Asp.net Web API的 簡單的REST Web服務就構建完成了,由于篇幅所限,這里就不做更多的介紹了,跟多信息可以參看微軟官方文檔:Getting Started with ASP.NET Web API 2。另外,如果想對REST有更深入的了解的話,可以看看infoq的這篇文章:深入淺出REST。關于Asp.net Web API其它內容,我后續(xù)大概還會陸續(xù)寫幾篇文章來介紹它。
轉載于:https://www.cnblogs.com/Jeely/p/10955954.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的使用ASP.Net WebAPI构建REST服务(一)——简单的示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DES加密/解密
- 下一篇: WPF在预览视图下可以看到图片,运行时却