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

创建第一个 Web API 服务

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (9投票s)

2014 年 2 月 28 日

CPOL

3分钟阅读

viewsIcon

45596

downloadIcon

932

本文将介绍如何创建一个简单的 Web API 服务,以便稍后将其用于 AngularJS 或 ASP.NET MVC 应用程序等。

引言

假设我们想要管理一组项目和任务,并从不同的设备或不同的平台使用它。 我们将通过 Web API 使用 Json 文件公开我们的数据服务。

背景

为了能够理解这里描述的内容,需要具备 Entity Framework Code First 和 MVC 模式的知识。

Using the Code

在 Visual Studio 2013 中,我们将创建一个 WebApi 项目。 转到“新建项目”并选择 ASP.NET Web 应用程序,如下面的屏幕截图所示

New Project

自 Visual Studio 2013 以来,只有一个 Web 应用程序模板。 助手可以帮助您选择要创建的应用程序类型。 因此,为您的项目命名,例如 MonService,然后单击“确定”。 在助手界面中,选择“空”模板,然后在创建项目之前添加对 Web API 的引用。

这是您的新项目外观

好的,现在项目已创建,我们将创建我们的模型。 在Models目录中,添加一个新类Project并在其中添加以下代码

public class Project
{
	public int Id { get; set; }
    public string Name { get; set; }
}

然后,添加一个 Person

public class Person
    {
        public int Id { get; set; }
        public string LastName { get; set; }
        public string FirstName { get; set; }
        public string FullName
        {
            get
            {
                return string.Format("{0} {1}", FirstName, LastName);
            }
        }
    }

最后,添加一个 Task

public class Task
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public DateTime CreatedOn { get; set; }
        public Person CreatedBy { get; set; }
    }

在继续之前,让我们编译我们的项目以确保一切顺利。
好的,到目前为止构建应该是成功的,因为我们还没有做任何棘手的事情。 我们的模型已准备就绪,我们现在需要实现一种方法来管理我们的对象,例如创建、选择或删除它。

为此,我们将添加第一个控制器 ProjectController 来管理我们的项目。 在 Controller 文件夹中添加一个新控制器,选择 Web API 2 Controller with actions, using Entity Framework 模板。

如下配置控制器

新的控制器已创建。 Controller 文件夹中出现一个名为 ProjectController 的文件,Models 文件夹中添加了一个名为 MonServiceContext 的类。 Entity Framework Code First 使用此类创建与数据库交互的上下文。 如果您打开该类,您可以看到项目将使用的连接字符串的名称。 可以修改此名称,但如果您这样做,请记住也修改 Web.config 文件中的名称。

<connectionStrings>
<add name="MonService" connectionString=.../>
</connectionStrings>

您还可以注意到,已创建了一个 DbSet 来管理项目。 您可以像下面这样添加 TasksPersons

构建项目,一切都应该没问题。

我们已经添加了管理项目所需的一切。 我们现在将对其进行测试。 运行应用程序。 应该启动 Internet Explorer,并调用这样的 URL https://:3333。 URL 取决于 Visual Studio 的内部 Web 服务器。 加载页面后,您会收到 403.14 错误。

Detailed Error - 403.14 - Forbidden

这是因为没有对应于此 URL 的网页。 那么,我们如何测试我们的服务呢? Web API 允许您在查询中添加参数以与服务交互。 如果我们要列出所有项目,我们可以将 /api/project 添加到 URL (https://:58167/api/project) 并刷新页面。 这次,Internet Explorer 会询问您是否要下载或打开名为 project.json 的文件。 打开它。 它包含带有我们项目列表的 json 字符串。 在这种情况下,它是空的,因为我们还没有创建任何项目。

DownloadJsonProject

现在修改 URL,如下所示:https://:58167/api/project/1。 我们告诉服务我们要检索 Id=1 的项目。 我们收到 404 错误,未找到。 如果我们查看控制器中的代码,我们可以看到在 GetProject 方法中,如果没有找到以参数形式传递的 Id 的项目,则该服务应返回“未找到”错误。

// GET api/Project/5
[ResponseType(typeof(Project))]
public IHttpActionResult GetProject(int id)
{
     Project project = db.Projects.Find(id);
     if (project == null)
     {
        return NotFound();
     }
     return Ok(project);
}

因此,应用程序按预期运行。

MethodeGetId

我们到了。 我们已经创建了您的第一个 Web API 服务,并了解了如何在没有任何进一步的代码或应用程序的情况下简单地对其进行测试。 如果您愿意,现在可以为 TaskPerson 添加控制器。

希望这个简单的教程能够帮助您开始使用 Web API 服务。 未来的一篇文章将解释如何从其他应用程序(如 ASP.NET MVC 应用程序或 AngularJS)中使用它。

© . All rights reserved.