zoukankan      html  css  js  c++  java
  • 使用 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]
    
     

     

  • 相关阅读:
    Twitter如何在数千台服务器上快速部署代码?
    系统架构师学习笔记_第六章(上)_连载
    使用IIS内置压缩功能,增加网站访问速度
    系统架构师学习笔记_第八章_连载
    微软企业库4.1学习笔记(十五)缓存模块3 使用数据库作为后端存储
    快速搞懂 SQL Server 的锁定和阻塞
    微软企业库4.1学习笔记(十四)缓存模块2 使用缓存模块进行开发
    微软企业库4.1学习笔记(十六)缓存模块4 服务器场中的缓存使用
    Agile PLM Engineering Collaboration
    EC Client Customizing EC Client 客户化
  • 原文地址:https://www.cnblogs.com/chillsrc/p/10614598.html
Copyright © 2011-2022 走看看