ASP.NET Core微服务(一)——【完整API搭建及访问过程】

2022-11-28 16:01:40 浏览数 (1)

ASP.NET Core微服务(一)——【完整API搭建及访问过程】:

环境:win10专业版 vs2019 sqlserver2014/2019

对应练习demo下载路径(1积分):【https://download.csdn.net/download/feng8403000/15134527】

对应练习sql下载路径(0积分):【https://download.csdn.net/download/feng8403000/15134699】

1、创建API项目

2、项目层级以及作用

3、引入数据库·这里采用的是sqlserver2014版本,如果是2019以上版本,数据库连接的地址请勿使用【127.0.0.1】,或者用【.】通用即可

3.1、添加NuGe程序包

3.2、添加4个需要的包

安装步骤:

四个包如上安装即可,查看是否安装成功

3.3、通过【工具】->【NuGet包管理器】->【程序包管理器控制台】

自动连接写法·sqlserver2019【Data Source=.】

Scaffold-Dbcontext 'Data Source=127.0.0.1;Initial Catalog=数据库name;Integrated Security=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context 自定义nameContext

密码链接写法·sqlserver2019【Data Source=.】

Scaffold-Dbcontext 'Data Source=127.0.0.1;Initial Catalog=数据库name;User Id=用户名;Password=密码;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context 自定义nameContext

这样,我们就有了可以操作的EF对象了。

4、添加【Startup.cs】服务配置

命名空间需求:

代码语言:javascript复制
using Microsoft.EntityFrameworkCore;

using WebApiDemo.Models;

所需代码:

代码语言:javascript复制
services.AddDbContext<Girl1804Context>(options =>
            {
                options.UseSqlServer(Configuration.GetConnectionString("Girl1804DB"));
            });

添加位置:

【appsetting.json】配置文件配置:

配置字符串: 

代码语言:javascript复制
"ConnectionStrings": {
    "Girl1804DB": "Data Source=127.0.0.1;Initial Catalog=girl1804;Integrated Security=True;"
  },

配置位置:

账号密码的方式:【Data Source=服务器地址;Initial Catalog=数据库name;User Id=用户名;Password=密码;】

5、EF,通过构造方法注入测试

5.1、添加【api控制器】

5.2添加构造方法注入EF生成的类【Girl1804Context】

5.3、配置路由【[Route("api/[controller]/[action]")]】以及创建查询测试EF

代码语言:javascript复制
public object GetInfo() {
            return db.GirlSixes.ToList();
        }

5.4、启动项目,并访问【api接口】,路径为:【http://localhost:5000/api/Test/GetInfo】

【Ctrl F5】启动

查看浏览器:默认打开路径应为【http://localhost:5000/weatherforecast】

输入:【http://localhost:5000/api/Test/GetInfo】进行数据访问测试。

6、增加函数【Add】·在【TestController】内完成

代码语言:javascript复制
        /// <summary>
        /// 添加方法
        /// </summary>
        /// <param name="nickName"></param>
        /// <param name="introduce"></param>
        /// <returns></returns>
        public bool Add(string nickName,string introduce) {
            GirlSix g = new GirlSix();
            g.Id = System.Guid.NewGuid().ToString("N");
            g.CreateDate = DateTime.Now;
            g.NickName = nickName;
            g.Introduce = introduce;
            db.GirlSixes.Add(g);
            int rows = db.SaveChanges();
            return rows > 0 ?true:false;
        }

7、修改【SelectById】&【Update】函数·在【TestController】内完成

代码语言:javascript复制
        /// <summary>
        /// 单个查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public object SelectById(string id) {
            return db.GirlSixes.Where(o => o.Id == id).SingleOrDefault();
        }
        /// <summary>
        /// 修改方法
        /// </summary>
        /// <param name="id"></param>
        /// <param name="nickName"></param>
        /// <param name="introduce"></param>
        /// <returns></returns>
        public bool Update(string id,string nickName, string introduce) {
            GirlSix girlSix = db.GirlSixes.Where(o => o.Id == id).SingleOrDefault();
            if (girlSix == null) {
                return false;
            }
            girlSix.NickName = nickName;
            girlSix.Introduce = introduce;
            int rows = db.SaveChanges();
            return rows > 0 ? true : false;
        }

8、删除函数【Del】·在【TestController】内完成

代码语言:javascript复制
        /// <summary>
        /// 删除方法
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool Del(string id) {
            GirlSix girlSix = db.GirlSixes.Where(o => o.Id == id).SingleOrDefault();
            if (girlSix == null)
            {
                return false;
            }
            db.GirlSixes.Remove(girlSix);
            int rows = db.SaveChanges();
            return rows > 0 ? true : false;
        }

9、postman测试·【Ctrl F5】启动后,根据对应的接口路径进行测试。

9.1查询所有测试:

9.2、增加测试

9.3、修改测试

9.4、删除测试

10、总结

a)、EF包4个,别错喽

b)、根据对应的数据库使用对应的引入方式,本地用直接连,远程用账号密码连。

c)、在ASP.NET Core中引入的EF如果要使用多表联合查询建议使用Linq进行操作。

d)、在修改操作时直接SaveChanges操作即可。

希望此文对大家有所帮助,后续会编写

ASP.NET Core微服务(二)——【ASP.NET Core Swagger配置】、

ASP.NET Core微服务(三)——【跨域配置】、

ASP.NET Core微服务(四)——【静态vue使用axios解析接口】、

ASP.NET Core微服务(五)——【vue脚手架解析接口】、

ASP.NET Core微服务(六)——【redis操作】、

ASP.NETCore微服务(七)——【docker部署linux上线】

等文章。

此文标题为ASP.NET Core微服务(一)——【完整API搭建及访问过程】

请关注,后续内容很快更新。

0 人点赞