65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET Web API 基础 (MVC 4)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.75/5 (29投票s)

2013 年 5 月 7 日

CPOL

3分钟阅读

viewsIcon

108142

ASP.NET Web API 基础 (MVC 4)

之前的文章 中,我们了解了 Web API 的演变过程以及使其成为构建或使用 HTTP 服务最佳框架的特性。

阅读这篇文章时,请记住 Web API 符合 REST 规范,因此通常包含 Get()Put()Post()Delete() 方法。

方法 URL 结构
Get()      api/Values
GetItem(int i)  api/Values/i
Post (i) api/Values/i 使用 Post 方法
Delete(i)     api/Values/i 使用 Delete 方法。

在编写大量自定义代码之前,让我们看看默认的脚手架模板为 Web API 接口提供了什么。

步骤 1: 创建一个解决方案和一个 MVC 4 项目。我将其命名为 API_SVC,因为我计划构建一个 HTTP 服务,它可以充当前端 Web 应用程序的业务层。

步骤 2: 选择项目类型后,现在需要选择项目的模板。有几个模板可用。“移动”和“Web API”是我们在 MVC 4 中看到的 2 个新模板。目前,让我们坚持使用带有 Razor 引擎的 Web Api。

步骤 3: 创建应用程序并由脚手架添加基本代码。转到 Controllers,您将看到一个名为“ValuesController”的新控制器。打开文件并查看。您可以找到 5 个名为 Get()Get(xxxxx)Post(xxxx)Put(xxxx)Delete(xxxxxx) 的方法。  

public class ValuesController : ApiController
    {
        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/values
        public void Post(string value)
        {
        }

        // PUT api/values/5
        public void Put(int id, string value)
        {
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
        }
    }

观察每个方法顶部提供的注释。这是使用 api 接口访问该特定方法的方式。

步骤 4:我们需要测试 Web API 服务的每个方法,以便更好地理解。与 GET 不同,从浏览器测试 Post、Put 和 Delete 方法并不容易。为此,我们将使用 “Fiddler 工具”

步骤 5:下载 Fiddler 2 并安装它。打开它。它看起来像这样。

步骤 6: 让我们修改这些方法以获得更好的测试数据。修改后,API 服务将如下所示。

public class ValuesController : ApiController
    {
        private List<string> list = new List<string>{"Item1","Item2","Item3","Item4","Item5"};

        // GET api/values
        public IEnumerable GetList()
        {
            return list; 
        }

        // GET api/values/5
        public string GetItem(int id)
        {
            return list.Find(i => i.ToString().Contains(id.ToString()));
        }

        // POST api/values
        public List Post(string value)
        {
            list.Add(value);
            return list;
        }

        // PUT api/values/5
        public void Put(int id, string value)
        {

        }

        // DELETE api/values/5
        public List<string> DeleteItem(int id)
        {
            list.Remove(list.Find((i => i.ToString().Contains(id.ToString()))));
            return list;
        }
    }

简单的修改。

  1. GetList() - 获取列表中的所有项目。
  2. GetItem(i) - 获取列表中包含整数“i”的项目。
  3. Post(str) - 将 str 添加到列表,并显示完整的列表以演示结果。
  4. Delete(i) - 将删除列表中包含整数 i 的项目,并显示完整的列表以演示结果。

步骤 7: 我将我的 API 服务托管在“https://:8080/API_SVC/”。因此,如果我需要访问 #1 方法,请打开 fiddler,转到“Composer”选项卡并输入 url“https://:8080/API_SVC/api/Values”。将方法选择为“GET”。

操作

结果

步骤 8: 现在输入 url“https://:8080/API_SVC/api/Values/1”并选择 GET 以访问顶部的 #2 方法。

操作

结果

步骤 9: 现在输入 url“https://:8080/API_SVC/api/Values”并选择 POST 以访问顶部的 #3 方法。

步骤 10: 输入“https://:8080/API_SVC/api/Values/1”并选择 DELETE 以访问 #4 方法。

操作

结果

通过这些步骤,我们已经涵盖了 ASP.NET Web API 的基础知识以及执行其各种方法的过程。

下一篇文章我们将看到实现/使用自定义 Web API 服务。

对您有帮助吗?请告知您的评论/问题。

© . All rights reserved.