设为首页 加入收藏

TOP

使用 ASP.NET Core MVC 创建 Web API(二)(二)
2019-09-17 18:58:30 】 浏览:61
Tags:使用 ASP.NET Core MVC 创建 Web API
ls;
using Microsoft.AspNetCore.Mvc; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace BookApi.Controllers { [Route("api/[controller]")] [ApiController] public class BookController : Controller { private readonly BookContext _context; public BookController(BookContext context) { _context = context; if (_context.Book.Count() == 0) { context.Book.AddRange( new Book { Name = "Python编程 从入门到实践", ReleaseDate = DateTime.Parse("2018-1-12"), Author = "埃里克·马瑟斯", Price = 75.99M, Publishing = "机械出版社" }, new Book { Name = "Java编程的逻辑", ReleaseDate = DateTime.Parse("2018-1-13"), Author = "马俊昌", Price = 48.50M, Publishing = "机械出版社" }, new Book { Name = "统计思维:大数据时代瞬间洞察因果的关键技能", ReleaseDate = DateTime.Parse("2017-12-23"), Author = "西内启", Price = 39.00M, Publishing = "清华出版社" }, new Book { Name = "微信营销", ReleaseDate = DateTime.Parse("2018-01-05"), Author = "徐林海", Price = 36.90M, Publishing = "清华出版社" }, new Book { Name = "Java 8实战", ReleaseDate = DateTime.Parse("2016-04-05"), Author = "厄马", Price = 65.60M, Publishing = "科技出版社" } ); _context.SaveChanges(); } } } }

    对于上面的代码的说明:

       1) 定义了没有方法的 API 控制器类。

       2) 使用 [ApiController] 属性修饰类。 此属性指示控制器响应 Web API 请求。

       从 ASP.NET Core 2.1 开始,使用 [ApiController] 特性修饰控制器类时,将启用操作参数绑定源推理。复杂类型参数通过请求正文自动绑定。 因此,不会使用 [FromBody] 特性对前面操作中的 Book 参数进行显示批注。在 ASP.NET Core 2.2 或更高版本中,可将 [ApiController] 特性应用于程序集。 以这种方式进行注释,会将 web API 行为应用到程序集中的所有控制器。 请注意,无法针对单个控制器执行选择退出操作。

        [ApiController] 特性通常结合 Controller 来为控制器启用特定于 REST 行为。 通过 Controllere 可使用NotFound 和 File 等方法。

       另一种方法是创建使用 [ApiController] 特性进行批注的自定义基本控制器类:

 [ApiController]
public class MyBaseController
{
}

        3)  使用 DI 将数据库上下文 (BookContext) 注入到控制器中。 数据库上下文将在控制器中的每个 CRUD 方法中使用。

        4) 如果数据库为空,则将几条书籍信息数据添加到数据库。 此代码位于构造函数中,因此在每次出现新 HTTP 请求时运行。 如果删除所有项,则构造函数会在下次调用 API 方法时再次创建。 因此删除可能看上去不起作用,不过实际上确实有效。

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇IdentityServer4 密码模式认证 下一篇接之前的文章,VS2017中使用Sprin..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目