使用 ASP.NET Core MVC 创建 Web API(一)
从今天开始来学习如何在 asp.net core 中构建 web api 以及每项功能的最佳适用场景。关于此次示例的数据库创建请参考《学习asp.net core razor 编程系列一》 至 《学习asp.net core razor 编程系列十九——分页》
一、概述
本教程将创建以下 web api:
api |
说明 |
请求正文 |
响应正文 |
get /api/book |
获取所有的书籍信息 |
none |
书籍的数组 |
get /api/book/{id} |
通过 id 获取书籍信息 |
none |
书籍信息 |
post /api/book |
添加书籍信息 |
书籍信息 |
书籍信息 |
put /api/book/{id} |
根据id更新现有书籍信息 |
书籍信息 |
none |
delete /api/book/{id} |
根据id删除书籍 |
none |
none |
下图显示了这次我们所要创建的应用的设计。
二、创建 web api项目
1) 我们打开visual studio 2017,在菜单中选择“文件”菜单,然后选择“新建” > “项目”。
2) 选择“asp.net core web 应用程序”模板。 将项目命名为 bookapi,然后单击“确定”。如下图。
3) 在“新建 asp.net core web 应用程序 - bookapi”对话框中,选择 asp.net core 版本。 选择“api”模板,然后单击“确定”。 请不要选择“启用 docker 支持”与“为https配置”。如下图。
三、测试 api
现在我们已经创建了bookapi应用项目。asp.net core mvc 项目模板会在我们新创建的bookapi项目中默认创建一个webapi—— values
api。
在visual studio 2017中按 f5 运行应用程序。然后启动浏览器,并在浏览器地址栏中输入 http://localhost:5000/api/values
,浏览器会调用get方法进行测试,返回如下图的 json,则证明我们的应用创建成功。
四、添加实体类
实体是一组表示应用管理的数据的类。 我们这次使用单个 book
类,接下来我们来创建这个book类。
1) 在visual studio 2017的“解决方案资源管理器”中,右键单击项目。 选择“添加” > “新建文件夹”。如下图。
2) 将文件夹命名为“models”。
3) 右键单击“models”文件夹,然后选择“添加” > “类”。 将类命名为 book,然后选择“添加”。如下图。
4)在visual studio 2017的“解决方案资源管理器”中打开我们刚才创建的book.cs文件,并输入以下代码:
using system; using system.collections.generic; using system.componentmodel.dataannotations; using system.linq; using system.threading.tasks; namespace bookapi.models { public class book { public int id { get; set; } [required] [stringlength(50, minimumlength = 2)] public string name { get; set; } [display(name = "出版日期")] [datatype(datatype.date)] public datetime releasedate { get; set; } [range(1, 200)] [datatype(datatype.currency)] public decimal price { get; set; } public string author { get; set; } [required] public string publishing { get; set; } [timestamp] public byte[] rowversion { get; set; } } }
id
属性用作关系数据库中的唯一键。
实体类可位于项目的任意位置,但按照惯例会使用 models 文件夹。
五、数据表创建脚本
我在这里直接给出book表的创建脚本,代码如下。
create table [dbo].[book]( [id] [int] identity(1,1) not null, [author] [nvarchar](max) null, [name] [nvarchar](50) not null, [price] [decimal](18, 2) not null, [releasedate] [datetime2](7) not null, [publishing] [nvarchar](max) not null, [rowversion] [timestamp] null, constraint [pk_book] primary key clustered ( [id] asc )with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off, allow_row_locks = on, allow_page_locks = on) on [primary] ) on [primary] textimage_on [primary]
上一篇: 老婆买了洗发用品
下一篇: 谈谈做网络推广工作的一些感触
推荐阅读
-
ASP.NET第一次访问慢的解决方法(MVC,Web Api)
-
创建基于ASP.NET core 3.1 的RazorPagesMovie项目(一)-创建和使用默认的模板
-
带你使用Visual Studio 2019创建一个MVC Web应用
-
或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧
-
ASP.NET Web API 应用教程(一) ——数据流使用
-
使用Asp.Net Core MVC 开发项目实践[第一篇:项目结构说明]
-
使用HTTP-REPL工具测试ASP.NET Core 2.2中的WEB API项目
-
ASP.NET Core Web API中使用Swagger
-
ASP.NET第一次访问慢的完美解决方案(MVC,Web Api)
-
ASP.NET Web API 过滤器创建、执行过程(一)