zoukankan      html  css  js  c++  java
  • 创建WebApi

    一.创建 Web 项目

    • 使用vs创建项目,选择“ASP.NET Core Web 应用程序”模板,将项目命名为 TodoApi,然后单击“确定”。
    • 在“新建 ASP.NET Core Web 应用程序 - TodoApi”对话框中,选择 ASP.NET Core 版本。 选择“API”模板,然后单击“确定”。请不要选择“启用 Docker 支持”。

    添加模型类

    • 新建文件夹Models,右键单击“Models”文件夹,然后选择“添加” > “类”。 将类命名为 TodoItem,然后选择“添加”。添加以下代码
    namespace TodoApi.Models
    {
        public class TodoItem
        {
            public long Id { get; set; }
            public string Name { get; set; }
            public bool IsComplete { get; set; }
        }
    }
    • 模型类可位于项目的任意位置,但按照惯例会使用 Models 文件夹。

    添加数据库上下文

    • 数据库上下文是为数据模型协调 Entity Framework 功能的主类。 此类由 Microsoft.EntityFrameworkCore.DbContext 类派生而来。
    • 右键单击“Models”文件夹,然后选择“添加” > “类”。 将类命名为 TodoContext,然后单击“添加”。添加如下代码
    using Microsoft.EntityFrameworkCore;
    
    namespace TodoApi.Models
    {
        public class TodoContext : DbContext
        {
            public TodoContext(DbContextOptions<TodoContext> options)
                : base(options)
            {
            }
    
            public DbSet<TodoItem> TodoItems { get; set; }
        }
    }

    注册数据库上下文

    • 在 ASP.NET Core 中,服务(如数据库上下文)必须向依赖关系注入 (DI) 容器进行注册。 该容器向控制器提供服务。
    • 在Startup中的ConfigureServices中添加如下代码
    public void ConfigureServices(IServiceCollection services)
            {
                services.AddDbContext<TodoContext>(opt =>
                    opt.UseInMemoryDatabase("TodoList"));
                services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            }

    添加控制器

    • 右键单击 Controllers 文件夹,在“添加新项”对话框中,选择“API 控制器类”模板

    • 将模板代码替换为以下代码:
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.EntityFrameworkCore;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using TodoApi.Models;
    
    namespace TodoApi.Controllers
    {
        [Route("api/[controller]")]
        [ApiController]
        public class TodoController : ControllerBase
        {
            private readonly TodoContext _context;
    
            public TodoController(TodoContext context)
            {
                _context = context;
    
                if (_context.TodoItems.Count() == 0)
                {
                    // Create a new TodoItem if collection is empty,
                    // which means you can't delete all TodoItems.
                    _context.TodoItems.Add(new TodoItem { Name = "Item1" });
                    _context.SaveChanges();
                }
            }
        }
    }
    • 如果数据库为空,则将名为 Item1 的项添加到数据库。 此代码位于构造函数中,因此在每次出现新 HTTP 请求时运行。 如果删除所有项,则构造函数会在下次调用 API 方法时再次创建 Item1

    参考文献:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-web-api?view=aspnetcore-2.2&tabs=visual-studio

  • 相关阅读:
    什么是IO多路复用
    Coursera, Machine Learning, Unsupervised Learning, K-means, Dimentionality Reduction
    Coursera, Machine Learning, SVM
    ShareSDK
    iOS JS和OC交互
    iOS KVO 常见错误
    第三方框架之SDWebImage
    单例存储账号
    UIRefreshControl
    二维码扫描
  • 原文地址:https://www.cnblogs.com/liguix/p/11059105.html
Copyright © 2011-2022 走看看