欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-02 16:38:02
从今天开始来学习如何在 ASP.NET Core 中构建 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

    下图显示了这次我们所要创建的应用的设计。

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

二、创建 web api项目

     1) 我们打开visual studio 2017,在菜单中选择“文件”菜单,然后选择“新建” > “项目”。

     2) 选择“asp.net core web 应用程序”模板。 将项目命名为 bookapi,然后单击“确定”。如下图。

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

      3) 在“新建 asp.net core web 应用程序 - bookapi”对话框中,选择 asp.net core 版本。 选择“api”模板,然后单击“确定”。 请不要选择“启用 docker 支持”与“为https配置”。如下图。

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

三、测试 api

     现在我们已经创建了bookapi应用项目。asp.net core mvc 项目模板会在我们新创建的bookapi项目中默认创建一个webapi—— values api。

     在visual studio 2017中按 f5 运行应用程序。然后启动浏览器,并在浏览器地址栏中输入 http://localhost:5000/api/values,浏览器会调用get方法进行测试,返回如下图的 json,则证明我们的应用创建成功。

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

四、添加实体类

      实体是一组表示应用管理的数据的类。 我们这次使用单个 book 类,接下来我们来创建这个book类。

     1) 在visual studio 2017的“解决方案资源管理器”中,右键单击项目。 选择“添加” > “新建文件夹”。如下图。

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

     2) 将文件夹命名为“models”。

     3) 右键单击“models”文件夹,然后选择“添加” > “类”。 将类命名为 book,然后选择“添加”。如下图。

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

    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]