从今天开始来学习如何在 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(, MinimumLength = )]
public string Name { get; set; } [Display(Name = "出版日期")]
[DataType(DataType.Date)] public DateTime ReleaseDate { get; set; }
[Range(, )] [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 Core MVC 创建 Web API(一)的更多相关文章

  1. 使用 ASP.NET Core MVC 创建 Web API(五)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  2. 使用 ASP.NET Core MVC 创建 Web API(二)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 六.添加数据库上下文 数据库上下文是使用Entity Framewor ...

  3. 使用 ASP.NET Core MVC 创建 Web API(三)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 十 ...

  4. 使用 ASP.NET Core MVC 创建 Web API(四)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  5. 使用 ASP.NET Core MVC 创建 Web API——响应数据的内容协商(七)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  6. 使用 ASP.NET Core MVC 创建 Web API(六)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  7. 使用.Net Core MVC创建Web API

    创建.Net Core MVC 打开appsettings.json文件,添加数据库连接 { "Logging": { "LogLevel": { " ...

  8. 002.Create a web API with ASP.NET Core MVC and Visual Studio for Windows -- 【在windows上用vs与asp.net core mvc 创建一个 web api 程序】

    Create a web API with ASP.NET Core MVC and Visual Studio for Windows 在windows上用vs与asp.net core mvc 创 ...

  9. 为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 webservice/API

    2018 .NET开发者调查报告: .NET Core 是怎么样的状态,这里我们看到了还有非常多的.net开发人员还在观望,本文给大家一个建议.这仅代表我的个人意见, 我有充分的理由推荐.net 程序 ...

随机推荐

  1. BZOJ_1058_[ZJOI2007]报表统计_STL

    BZOJ_1058_[ZJOI2007]报表统计_STL Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工 作,作为她的生日礼 ...

  2. ERP不规范,同事两行泪

    最近的很多次对外交流,都聊到了ERP建设的话题,并且无一例外的不那么让人省心,回想我这么多年走过的ERP坑坑路,在这里也写下经验和总结,希望能给正在或者即将走上ERP建设路的企业一些思考和帮助. 导读 ...

  3. The following untracked working tree files would be overwritten by merge

    git pull的时候遇到这样的问题: The following untracked working tree files would be overwritten by merge balabal ...

  4. 开源)嗨,Java,你可以生成金山词霸的二维码分享海报吗?

    As long as you can still grab a breath, you fight.只要一息尚存,就不得不战. 有那么一段时间,我特别迷恋金山词霸的每日一句分享海报.因为不仅海报上的图 ...

  5. JS 图片放大镜

    今天练习一个小demo, 从本地读取图片, 然后实现类似淘宝放大镜的效果, 再加两个需求 1 .可以调节缩放比例,默认放大两倍 2 . 图片宽高自适应, 不固定宽高 话不多说先看效果: 原理:1, 右 ...

  6. 阿里微服务架构下分布式事务解决方案-GTS

    虽然微服务现在如火如荼,但对其实践其实仍处于初级阶段.即使互联网巨头的实践也大多是试验层面,鲜有核心业务系统微服务化的案例.GTS是目前业界第一款,也是唯一的一款通用的解决微服务分布式事务问题的中间件 ...

  7. 【view绘制流程】理解

    一.概述 View的绘制是从上往下一层层迭代下来的.DecorView-->ViewGroup(--->ViewGroup)-->View ,按照这个流程从上往下,依次measure ...

  8. Itest(爱测试),最懂测试人的开源测试管理软件隆重发布

    测试人自己开发,汇聚10年沉淀,独创流程驱动测试.度量展现测试人价值的测试协同软件,开源免费   官网刚上线,近期发布源码:http://www.itest.work 在线体验 http://www. ...

  9. 视频当道的时代,这些珍藏的优质 Python 播客值得推荐

    我国互联网的发展道路与欧美不同,在内容的形式上,我们似乎实现了跨越式的发展——早早进入了移动互联网时代,直播和短视频等形式的内容成为了潮流,而文字形式的博客(blog)与声音形式的播客(podcast ...

  10. Java进阶篇设计模式之十 ---- 访问者模式和中介者模式

    前言 在上一篇中我们学习了行为型模式的解释器模式(Interpreter Pattern)和迭代器模式(Iterator Pattern).本篇则来学习下行为型模式的两个模式,访问者模式(Visito ...