Web API 2 支持一种新型的路由,称为属性路由属性路由的一般概述,请参阅属性路由 Web API 2 中在本教程中,您将使用属性路由创建一个 REST API 集合的书。API 将支持以下操作 ︰

行动 URI 的示例
得到的所有书的列表。 / api/书
得到一本书的 id。 /api/books/1
获得一本书的详细信息。 /api/books/1/details
按流派获得书籍的列表。 /api/books/fantasy
按出版日期获取书籍的列表。 /api/books/date/2013-02-16
/api/books/date/2013/02/16 (备用窗体)
获取一个特定作者的书籍列表。 /api/authors/1/books

所有方法都是只读的 (HTTP GET 请求)。

对于数据层,我们将使用实体框架。本书记录将有以下字段 ︰

  • ID
  • 标题
  • 体裁
  • 出版日期
  • 价格
  • 描述
  • 作者 Id (Authors 表的外键)

然而,对于大多数请求,API 将返回此数据 (标题、 作者和流派) 的一个子集。要获得完整的记录,客户端请求/api/books/{id}/details.

系统必备组件

视觉工作室 2013年视觉工作室表示 2013

创建 Visual Studio 项目

首先运行 Visual Studio。文件菜单中,选择新建,然后选择项目.

模板窗格中,选择已安装的模板和展开Visual C#节点。Visual C#,选择Web在项目模板的列表中,选择ASP.NET MVC 4 Web 应用程序"BooksAPI"为项目命名。

2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

新的 ASP.NET 项目对话框中,选择的模板。在"添加文件夹和核心的参考文件"下选择Web API复选框。单击创建项目.

2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

这将创建一个为 Web API 功能配置的骨架项目。

域模型

接下来,添加域模型的类。在解决方案资源管理器中,右键单击模型文件夹。选择添加,然后选择类别名称类Author.

2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

Author.cs 中的代码替换为以下内容 ︰

using System.ComponentModel.DataAnnotations;

namespace BooksAPI.Models
{
    public class Author
    {
        public int AuthorId { get; set; }
        [Required]
        public string Name { get; set; }
    }
}

现在,添加名为Book的另一个类.

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace BooksAPI.Models
{
    public class Book
    {
        public int BookId { get; set; }
        [Required]
        public string Title { get; set; }
        public decimal Price { get; set; }
        public string Genre { get; set; }
        public DateTime PublishDate { get; set; }
        public string Description { get; set; }
        public int AuthorId { get; set; }
        [ForeignKey("AuthorId")]
        public Author Author { get; set; }
    }
}

添加 Web API 控制器

在此步骤中,我们将添加一个 Web API 控制器,使用实体框架和数据层。

按 CTRL + SHIFT + B 来生成项目。实体框架使用反射来发现性能的模型,所以它需要在编译的程序集来创建数据库模式。

在解决方案资源管理器中,右键单击控制器文件夹。选择添加,然后选择控制器.

2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

添加脚手架对话框中,选择"Web API 2 控制器读取/写入操作,使用实体框架。"

2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

添加控制器对话框中,为控制器的名称,输入"例子"。选中"使用异步控制器操作"复选框。对于模型类,请选择"书"。(如果你看不到下拉列表中列出的Book类,请确保生成项目时。然后单击"< 新数据上下文...>"按钮。

2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

新的数据上下文的对话框中,单击添加

2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

添加控制器对话框中,单击添加脚手架将添加一个名为BooksController定义 API 控制器类。它还添加了一个名为BooksAPIContext模型文件夹,为实体框架定义的数据上下文类。

2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

种子的数据库

从工具菜单中,选择库软件包管理器,然后选择程序包管理器控制台.

在程序包管理器控制台窗口中,输入以下命令 ︰

enable-migrations

此命令创建迁移文件夹并添加一个名为 Configuration.cs 的新代码文件。打开此文件并将下面的代码添加到Configuration.Seed方法。

protected override void Seed(BooksAPI.Models.BooksAPIContext context)
{
    context.Authors.AddOrUpdate(new Author[] {
        new Author() { AuthorId = 1, Name = "Ralls, Kim" },
        new Author() { AuthorId = 2, Name = "Corets, Eva" },
        new Author() { AuthorId = 3, Name = "Randall, Cynthia" },
        new Author() { AuthorId = 4, Name = "Thurman, Paula" }
        });

    context.Books.AddOrUpdate(new Book[] {
        new Book() { BookId = 1,  Title= "Midnight Rain", Genre = "Fantasy", 
        PublishDate = new DateTime(2000, 12, 16), AuthorId = 1, Description =
        "A former architect battles an evil sorceress.", Price = 14.95M }, 

        new Book() { BookId = 2, Title = "Maeve Ascendant", Genre = "Fantasy", 
            PublishDate = new DateTime(2000, 11, 

相关文章:

  • 2021-10-05
  • 2022-12-23
  • 2022-12-23
  • 2022-02-26
  • 2021-11-29
  • 2021-10-23
  • 2021-12-18
  • 2022-03-02
猜你喜欢
  • 2022-03-03
  • 2022-02-07
  • 2021-09-24
  • 2021-10-08
  • 2022-01-15
  • 2022-12-23
  • 2021-09-01
相关资源
相似解决方案