使用 ASP.NET Core 创建 Web API

这是一篇图文基础教程:适合新手练习。

开发环境VS2019+.net core 3.0

需要安装core 3.0

检验是否安装core 3.0  ----cmd   命令dotnet --info

运行vs2019

创建新项目---选择ASP.NET Core Web应用程序

配置项目

选择项目类型--API

点击创建---等一会就会有模版了

运行这个项目,会在浏览器上显示一个json数据。这个默认生成的数据。

然后下一步:

创建Models文件夹:

然后右键Models文件夹,添加一个类文件:TodoItem

namespace WebTest.Models
{
    public class TodoItem
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool IsBlack { get; set; }
    }
}

下一步需要引用nuget扩展包

连续步骤 添加:Microsoft.EntityFrameworkCore.SqlServer

和        Microsoft.EntityFrameworkCore.InMemory

安装完之后,右键Models文件夹添加TodoContext 数据库上下文类

using Microsoft.EntityFrameworkCore;

namespace WebTest.Models
{
    public class TodoContext : DbContext
    {
        public TodoContext(DbContextOptions<TodoContext> options) : base(options)
        { }
        public DbSet<TodoItem> TodoItems { get; set; }
    }
}

上下文添加完之后需要Startup.cs修改一下:向依赖关系注入 (DI) 容器进行注册

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.EntityFrameworkCore;
using WebTest.Models;

namespace WebTest
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<TodoContext>(opt => opt.UseInMemoryDatabase("TodoList"));
            services.AddControllers();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }
}

下一步,添加控制器:右键Controllers文件夹,

继续:

继续:选择对应的项:

控制器代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using WebTest.Models;

namespace WebTest.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class TodoItemsController : ControllerBase
    {
        private readonly TodoContext _context;

        public TodoItemsController(TodoContext context)
        {
            _context = context;
        }

        // GET: api/TodoItems
        [HttpGet]
        public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems()
        {
            return await _context.TodoItems.ToListAsync();
        }

        // GET: api/TodoItems/5
        [HttpGet("{id}")]
        public async Task<ActionResult<TodoItem>> GetTodoItem(int id)
        {
            var todoItem = await _context.TodoItems.FindAsync(id);

            if (todoItem == null)
            {
                return NotFound();
            }

            return todoItem;
        }

        // PUT: api/TodoItems/5
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see https://aka.ms/RazorPagesCRUD.
        [HttpPut("{id}")]
        public async Task<IActionResult> PutTodoItem(int id, TodoItem todoItem)
        {
            if (id != todoItem.Id)
            {
                return BadRequest();
            }

            _context.Entry(todoItem).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TodoItemExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return NoContent();
        }

        // POST: api/TodoItems
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see https://aka.ms/RazorPagesCRUD.
        [HttpPost]
        public async Task<ActionResult<TodoItem>> PostTodoItem(TodoItem todoItem)
        {
            _context.TodoItems.Add(todoItem);
            await _context.SaveChangesAsync();

            //return CreatedAtAction("GetTodoItem", new { id = todoItem.Id }, todoItem);
            //nameof是为了调用方法时不采用硬编码
            return CreatedAtAction(nameof(GetTodoItem), new { id = todoItem.Id }, todoItem);
        }

        // DELETE: api/TodoItems/5
        [HttpDelete("{id}")]
        public async Task<ActionResult<TodoItem>> DeleteTodoItem(int id)
        {
            var todoItem = await _context.TodoItems.FindAsync(id);
            if (todoItem == null)
            {
                return NotFound();
            }

            _context.TodoItems.Remove(todoItem);
            await _context.SaveChangesAsync();

            return todoItem;
        }

        private bool TodoItemExists(int id)
        {
            return _context.TodoItems.Any(e => e.Id == id);
        }
    }
}

这样之后,就可以使用Postman来测试:

浏览器运行可以看到结果。使用postman的时候,程序需要运行着。

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ASP.NET Core 是一个用于构建 Web 应用程序和服务的跨平台开发框架。以下是使用 ASP.NET Core 创建 Web API 的步骤: 1. 安装 ASP.NET Core:首先,你需要在你的计算机上安装 ASP.NET Core。你可以从官方网站(https://dotnet.microsoft.com/download)下载和安装 .NET Core SDK,它包含了 ASP.NET Core。 2. 创建新的 ASP.NET Core 项目:在命令行界面(CLI)或使用 Visual Studio 创建一个新的 ASP.NET Core 项目。你可以使用 `dotnet new webapi` 命令来生成一个空的 Web API 项目。这个命令会创建一个基本的项目结构,包括一个 `Startup.cs` 文件和一个 `Controllers` 文件夹。 3. 定义数据模型:根据你的业务需求,定义你的数据模型。这些模型将用来定义 Web API 的输入和输出。 4. 创建控制器:在 `Controllers` 文件夹中创建一个控制器类,用于处理来自客户端的请求和返回结果。在控制器中,你可以定义各种动作方法,比如获取数据、添加数据、更新数据和删除数据等。 5. 配置路由:在 `Startup.cs` 文件的 `ConfigureServices` 方法中配置路由规则,指定访问控制器方法的 URL 地址。 6. 实现控制器方法:在控制器类中实现各个动作方法,处理来自客户端的请求。你可以在这些方法中调用业务逻辑或数据访问层来获取、操作和返回数据。 7. 测试 Web API使用 Postman 或类似的工具测试你的 Web API。发送 HTTP 请求,并验证返回的结果是否符合预期。 8. 发布和部署:将你的 Web API 发布到服务器上,供其他应用程序或客户端使用。 9. 管理和维护:根据需要,维护和更新你的 Web API,以确保它能够持续可用和高效运行。 通过以上步骤,你可以使用 ASP.NET Core 创建一个功能完备的 Web API,用于提供数据和服务。ASP.NET Core 提供了许多强大的功能和工具,使得创建和管理 Web API 变得更加简单和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你懂的11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值