NET Core 6.0 webapi 简单使用+连接数据库
如何快速上手webApi。
   ·  
 环境

- ASP.NET core
- NET core 6.0
创建WebApi并防止Api冲突




using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace WebApi1.Controllers
{
    //[Route("api/[controller]")]默认路径,网络请求路径为api/controller文件名,如果有多个方法则会冲突
    [Route("api/[controller]/[action]")]//网络请求改为api/controller文件名/函数方法名。避免重名
    [ApiController]
    public class ValuesController : ControllerBase
    {
        /// <summary>
        /// 简单的网络请求测试
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public string WebApiTest()
        {
            return "Hello World!";
        }
        /// <summary>
        /// 多方法名测试
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public string WebApiTest2()
        {
            return "Hello World!";
        }
    }
}

  如何使用

Swagger添加注释
在 Program.cs里面

.......其他代码
builder.Services.AddSwaggerGen(option =>
    {
        var file = Path.Combine(AppContext.BaseDirectory, "你的项目名称.xml");//修改为你对应的项目名称才行
        //true:显示控制器层注释
        option.IncludeXmlComments(file, true);
        //对action的名称进行排序,如果有多个,就可以看见效果了
        option.OrderActionsBy(o => o.RelativePath);
    }
); 
var app = builder.Build();
.......其他代码

  添加对应注释
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace WebApi1.Controllers
{
    //[Route("api/[controller]")]默认路径,网络请求路径为api/controller文件名,如果有多个方法则会冲突
    [Route("api/[controller]/[action]")]//网络请求改为api/controller文件名/函数方法名。避免重名
    [ApiController]
    public class ValuesController : ControllerBase
    {
        /// <summary>
        /// 简单的网络请求测试
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public string WebApiTest()
        {
            return "Hello World!";
        }
        /// <summary>
        /// 多方法名测试
        /// </summary>
        /// <param name="str1">字符串1</param>
        /// <param name="str2">字符串2</param>
        /// <returns></returns>
        [HttpGet]
        public string WebApiTest2(string str1,string str2)
        {
            return "Hello World!";
        }
    }
}
效果:
连接sqlite数据库
Nuget包

- Microsoft.EntityFrameworkCore.Sqlite
- Microsoft.EntityFrameworkCore.Sqlite.Core
- Newtonsoft.Json:用于Json格式转换
代码

using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
namespace WebApi1.DB
{
    public class ORMContext:DbContext
    {
        public DbSet<Student> Students { get; set; }
        public ORMContext()
        {
            this.Database.EnsureCreated();//如果没有数据库,则自动创建数据库和对应数据表
        }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //数据库连接字符串
            optionsBuilder.UseSqlite("Data Source=ORM_Sqlite.db");//你的数据库名称
        }
    }
    public class Student
    {
        [Key]//主键
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]//自动递增
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string Sex { get; set; }
    }
}
添加测试Api
Tips:这里用到ORM查询语法
  /// <summary>
        /// <summary>
        /// Sqlite测试
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public List<Student> SqlTest()
        {
            for(var i = 0; i < 5; i++)
            {
                _context.Students.Add(new Student()//插入数据库,但是只在缓存中,并没有真正更新
                {
                    Age = i,
                    Name = "Lily" + i,
                    Sex = "女"
                });
               
            }
           _context.SaveChanges();//和缓存同步,更新数据库
            var res = _context.Students.ToList();//返回所有数据
            return res;
        }
运行结果

更多推荐
 
 



所有评论(0)