NET Core 6.0 webapi 简单使用+连接数据库

news2024/10/7 14:28:35

文章目录

  • 环境
  • 创建WebApi并防止Api冲突
  • Swagger添加注释
  • 连接sqlite数据库
    • Nuget包
    • 代码

环境

在这里插入图片描述

  • 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查询语法

EntityFramework EF 常用增删改查语句

  /// <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;

        }

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/668221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三、Docker基本使用及命令

学习参考&#xff1a;尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 目录 前言一、帮助启动类命令1.1 启动docker1.2 停止docker1.3 重启docker1.4 查看docker状态1.5 开机启动1.6 查看docker概要信息1.7 查看docker总体帮助文档1.8 查看docker命令…

Qt QPainter

QPainter需要在QPaintEvent中绘画 绘画需要笔 绘画需要的基础头文件 QPainter QPaintEvent QPen QPainter 建立painter之后就可以绘画&#xff0c;pen这些都有默认实现 可画设备 圆用椭圆画 重新绘画 重新绘画只需要重新加入画笔就可以 painter.setPen(pen); // 重新…

Shell脚本中的数值计算:使用数学运算实现数值操作

前言 沐风晓月带你学云原生开发&#xff0c;从零开始&#xff0c;我们出发&#xff0c;让知识学习不再难。 &#x1f3e0;个人主页&#xff1a;我是沐风晓月 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是沐风晓月&#xff0c;阿里云社区博客专家 &#x1f609;&…

高数基础6

目录 导数与微分 导数的定义式&#xff1a; 导数的第二个定义式&#xff1a; 左右导数 区间内可导 例题&#xff1a; 例题2&#xff1a; 微分 微分的概念 例题&#xff1a; 导数的几何意义&#xff1a; 切线方程与法线方程 例题&#xff1a; 连续可导可微之间的关系…

短视频矩阵系统源码开发部署分享

短视频矩阵系统源码开发需要用到以下技术&#xff1a; 1.前端技术&#xff1a;HTML、CSS、JavaScript、Vue.js等前端框架。 2.后端技术&#xff1a;Java、Python、PHP等后端语言及相关框架&#xff0c;如Spring Boot、Django、Laravel等。 3.移动开发技术&#xff1a;Androi…

文本匹配模型实验报告-text2vec

文本匹配模型实验报告-text2vec 尽管基于BERT的模型在NLP诸多下游任务中取得了成功&#xff0c;直接从BERT导出的句向量表示往往被约束在一个很小的区域内&#xff0c;表现出很高的相似度&#xff0c;因而难以直接用于文本语义匹配。为解决BERT原生句子表示这种“坍缩”现象&a…

软件开发流程的演变:敏捷开发(XP、SCRUM)、DevOps(CI/CD)的概念

一、软件开发流程的演变 二、传统瀑布模型 1.瀑布模型特点 软件开发的各项活动严格按照线性方式进行 当前活动接受上一项活动的工作结果 当前活动的工作结果需要进行验证 2.瀑布模型优缺点 优点 开发的各个阶段比较清晰 强调早期计划及需求调查 适合需求稳定的产品开发 缺点…

权限获得第一步

根据题目提示flag就是某个密码&#xff0c;并且flag不是常规形式 打开文件后看起来是一个linux的用户密码段 反正最后两个最可疑了&#xff0c;linux中密码的存储形式是MD5加密 第一个数据解码失败 第二个密文解密成功 果然不是常规形式&#xff0c;常规的flag一本都是是英文加…

在Linux系统下使用Ventoy制作Windows安装U盘

文章目录 介绍Ventoy 简介PE 简介 制作 Ventoy U 盘安装 Ventoy将 Ventoy 安装到 U 盘 制作 PE 辅助系统下载优启通下载操作系统 ISO 镜像 安装操作系统准备工作安装系统 介绍 Ventoy 简介 Ventoy 是一个制作可启动 U 盘的开源工具。有了 Ventoy &#xff0c;就无需反复地格式…

IDE/记录VS2015WinSDK安装过程中增删的系统组件和环境变量

文章目录 概述看看"干净OS环境"安装VS软件后系统目录变化环境变量变化新增的组件程序 Qt及其VS插件安装后安装WinSDK后安装Win10SDK前安装WinSDK后 卸载VS2015其他软件的影响 概述 本文旨在&#xff0c;通过记录干净OS环境下 VS2015、Qt、WinSDK 软件安装前后&#…

使用mount临时挂载出现mount error(13): Permission denied

问题报错 mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) //报错信息&#xff0c;提示账号密码错误&#xff0c;其实并不是 添加secntlmssp参数即可&#xff1b;中途可能需要等一些时间 mount -t cifs -o usernamelisi,p…

在低配Windows上部署原版llama.cpp

现在大语言模型的部署&#xff0c;通常都需要大的GPU才能实现&#xff0c;如果是仅仅想研究一下&#xff0c;大语言模型的算法&#xff0c;我们是很想能够直接在我们的工作电脑上就能直接运行的&#xff0c;llama.cpp就是很好的实现。 LLaMa.cpp使用int4这种数值格式&#xff…

【js步骤引导】基于jquery实现步骤引导进度条效果(附源码)

【写在前面】 步骤引导条这个功能其实在我们很多业务系统中是最常见的&#xff0c;尤其是快递订单、审批流程、上传资源等涉及步骤操作的业务中广泛应用&#xff0c;因此今天我也详细的和大家讲讲如何基于jquery去实现步骤引导效果&#xff0c;支持上一步下一步的切换。 【涉…

【云计算】HBase表操作

文章目录 前言一、shell创建二、操作 前言 HBase是一个分布式、可扩展的、非关系型的NoSQL数据库。它是建立在Hadoop HDFS上的一个开源的数据库管理系统。HBase的设计目标是提供高可靠性、高可扩展性、高性能、高延迟、高容错性和高可用性。 HBase是一种面向列的数据库&#…

【多智能体合作】Self-Organized Group for Cooperative Multi-agent Reinforcement Learning

【多智能体合作】Self-Organized Group for Cooperative Multi-agent Reinforcement Learning 本文提出了一个自主分组机制&#xff0c;这种机制具有 选举指挥官&#xff08;CE&#xff09; 和 消息总结&#xff08;MS&#xff09; 的功能。 在 CE 中&#xff0c;每隔 T个时间步…

【无标题】机器学习——朴素贝叶斯

朴素贝叶斯&#xff08;Naive Bayesian algorithm&#xff09;是有监督学习的一种分类算法&#xff0c;它基于“贝叶斯定理”实现&#xff0c;该原理的提出人是英国著名数学家托马斯贝叶斯。 一、贝叶斯定理 P(A) 这是概率中最基本的符号&#xff0c;表示 A 出现的概率。比如在…

Spark 4/5

4. 启动Spark Shell编程 4.1 什么是Spark Shell spark shell是spark中的交互式命令行客户端&#xff0c;可以在spark shell中使用scala编写spark程序&#xff0c;启动后默认已经创建了SparkContext&#xff0c;别名为sc 4.2 启动Spark Shell Shell /opt/apps/spark-3.2.3-bi…

实战深入了解redis+消息队列如何实现秒杀

SpringBoot Redis RabbitMQ 实现高并发限时秒杀 所谓秒杀&#xff0c;从业务角度看&#xff0c;是短时间内多个用户“争抢”资源&#xff0c;这里的资源在大部分秒杀场景里是商品&#xff1b;将业务抽象&#xff0c;技术角度看&#xff0c;秒杀就是多个线程对资源进行操作&…

配置NIS服务器及客户端

在服务端安装所需软件包 设置主机名和NIS域名 编辑 NIS服务器主配置文件 最下面编辑访问控制 建立测试用户 配置NFS&#xff0c;否则客户端切换用户时&#xff0c;用户没有家目录 安装NFS所需软件包 Nfs-utils 给两个共享目录权限&#xff0c;编辑NFS配制文件 共享两个目录 重…

12.JavaWeb-Spring Boot + 物业管理项目

1.Spring Boot 概念 自动处理应用程序幕后的各种杂事&#xff08;Spring框架的应用程序的配置和部署过程&#xff09;&#xff0c;让你专注于做那些使应用程序独特的工作 1.1 Spring Boot的核心功能 1.1.1 自动配置 Spring Boot根据应用程序的依赖和配置信息&#xff0…