C# ASP.NET Web Core API (.NET 6.0)

news/2024/5/16 20:16:06/文章来源:https://blog.csdn.net/qq_38693757/article/details/127024492

目录

一、简介

二、创建项目

三、启动项目

四、开放访问权限

五、添加其他的API

结束


一、简介

ASP.NET Core Web API 是 ASP.NET Core MVC 的一个功能。ASP.NET Core MVC 包含了对 Web API 的支持。可以构建多种客户端的 HTTP 服务。ASP.NET Core Web API可用于在 .NET Core 上构建 RESTful 应用程序。

框架包含对 HTTP 内容协商的支持,内置支持以 JSON 或 XML 格式化的数据。编写自定义格式化程序已添加对自有格式的支持。

使用链接生成对超媒体的支持。启用对跨资源共享(CORS)的支持,以便 Web API 可以在多个 Web应用程序之间共享。

我还写过 ASP.NET Web Core API (.NET 5.0) 的帖子,有需要的可以参考参考

C# ASP.NET Web Core API (.NET 5.0)_熊思宇的博客-CSDN博客

二、创建项目

 新建一个 ASP.NET Web Core API 项目

这里输入项目的名称

选择.NET 6.0 ,点击创建

创建完成后会有一个默认的接口

代码如下

using Microsoft.AspNetCore.Mvc;namespace WebAPI_Net6.Controllers
{[ApiController][Route("[controller]")]public class WeatherForecastController : ControllerBase{private static readonly string[] Summaries = new[]{"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"};private readonly ILogger<WeatherForecastController> _logger;public WeatherForecastController(ILogger<WeatherForecastController> logger){_logger = logger;}[HttpGet(Name = "GetWeatherForecast")]public IEnumerable<WeatherForecast> Get(){return Enumerable.Range(1, 5).Select(index => new WeatherForecast{Date = DateTime.Now.AddDays(index),TemperatureC = Random.Shared.Next(-20, 55),Summary = Summaries[Random.Shared.Next(Summaries.Length)]}).ToArray();}}
}

三、启动项目

在这里可以看到对应的配置

点击运行按钮,会自动在浏览器中打开一个页面

点击 页面中的 Get 按钮,就可以看到服务器返回对于的json数据

在上面的图片中我们可以看到,当前打开的端口号是7149

在浏览器中,新建一个选项卡,输入下面地址 

https://localhost:7149/WeatherForecast

就会获取对于接口的返回数据

四、开放访问权限

在执行这步操作之前,先获取自己的局域网IP

然后,将刚刚测试的 localhost 改为你本机的IP地址和端口号

地址:http://192.168.2.107:7149/WeatherForecast

这时候会发现,用自己的局域网IP地址根本无法访问,这就意味这,其他的电脑同样也无法访问

解决方法:

打开 launchSettings.json,内容如下

{"$schema": "https://json.schemastore.org/launchsettings.json","iisSettings": {"windowsAuthentication": false,"anonymousAuthentication": true,"iisExpress": {"applicationUrl": "http://localhost:33248","sslPort": 44349}},"profiles": {"WebAPI_Net6": {"commandName": "Project","dotnetRunMessages": true,"launchBrowser": true,"launchUrl": "swagger","applicationUrl": "https://localhost:7149;http://localhost:5149","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}},"IIS Express": {"commandName": "IISExpress","launchBrowser": true,"launchUrl": "swagger","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}}}
}

将 profiles  中 applicationUrl  改为 "http://0.0.0.0:5000",

将项目重新生成,再次运行,这次可能会出现,不会再自动打开网页了,没关系,不用管它,

现在继续刷新这个网页,就会发现,服务器返回数据了,

图中的链接:http://192.168.2.107:5000/WeatherForecast

这样就完成了项目基本的功能了,不过,这只能在你本机上使用,要想局域网其他的电脑能访问这个接口,必须像和配置公网服务器一样,关闭防火墙才行。

五、添加其他的API

鼠标右键点击 Controllers 文件夹

添加一个控制器,点击API,选择 包含读/写的API控制器

这时候,就用默认的名字好了

添加完成后,项目结构如下

ValuesController 代码如下

using Microsoft.AspNetCore.Mvc;// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860namespace WebAPI_Net6.Controllers
{[Route("api/[controller]")][ApiController]public class ValuesController : ControllerBase{// GET: api/<ValuesController>[HttpGet]public IEnumerable<string> Get(){return new string[] { "value1", "value2" };}// GET api/<ValuesController>/5[HttpGet("{id}")]public string Get(int id){return "value";}// POST api/<ValuesController>[HttpPost]public void Post([FromBody] string value){}// PUT api/<ValuesController>/5[HttpPut("{id}")]public void Put(int id, [FromBody] string value){}// DELETE api/<ValuesController>/5[HttpDelete("{id}")]public void Delete(int id){}}
}

注意这里,在类的特性上,仔细看是有区别的,刚刚创建的 ValuesController 前面多了一个 api 字符串。

WeatherForecastController

ValuesController

这也就意味着,访问的接口也不一样。

在上面的操作中,我们都是用的浏览器去获取这些接口,虽然浏览器可以访问这些接口,但是,不是特别的方便,建议各位使用一个专业的软件去测试,比如: Postman 。

地址:http://192.168.2.107:5000/api/Values

Get 测试

Post 测试

可以看到,这样就返回了对应的结果了,在各种接口中,各位可以自己去实现这些功能,如果出现了问题,就断点调试。

结束

如果这个帖子对你有帮助,欢迎 关注 + 点赞 + 留言,谢谢

end

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 0328. 奇偶链表

【LetMeFly】328.奇偶链表 力扣题目链接&#xff1a;https://leetcode.cn/problems/odd-even-linked-list/ 给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。 第一个节点的索引被认为是 奇…

8-Arm PEG-ACA,8-Arm PEG-Acrylamide,八臂-聚乙二醇-丙烯酰胺可用于自由基引发剂

一&#xff1a;产品描述 1、名称 英文&#xff1a; 8-Arm PEG-ACA 8-Arm PEG-Acrylamide 中文&#xff1a; 八臂-聚乙二醇-ACA 2、CAS编号&#xff1a;N/A 3、所属分类&#xff1a;Acrylate/Acrylamide PEG Multi-arm PEGs 4、分子量&#xff1a;可定制 5、质量控制&a…

C++之模拟实现<unordered_set/map>及位图和布隆过滤器

目录&#x1f308;前言&#x1f681;1、哈希表的改造&#x1f682;2、模拟实现的完整代码&#x1f683;3、哈希表的应用&#x1f684;3.1、位图的概念&#x1f685;3.2、位图的实现&#x1f686;3.3、位图完整代码&#x1f689;3.4、位图的应用&#x1f687;4、位图的变形&…

qt中的qmake.conf文件

qmake.conf文件是qt用于存放系统平台和编译器相关默认值的配置文件。qt为所支持的各种系统平台和对应编译器附加了相关的配置文件。其位置在QtInstallDIr/Qt5.12.0\5.12.0\msvc2015_64\mkspecs中。 windows台式机系统的默认配置​​​​​​这里的每一个文件夹代表一个qt所支…

医美企业如何玩转私域流量?

医美企业普遍面临的难点 广告投放成本高、客户到店率低、投入产出不成正比&#xff0c;是医美行业的“难隐之痛”。不少医美机构开始布局私域的精细化运营。但不是每个医美机构都能做好&#xff0c;有的机构做私域&#xff0c;复购翻几倍&#xff1b;也有的机构对私域理解还停…

比特币和以太坊抹去早些时候的收益,这就是为什么

随着美元指数 (DXY) 跃升至 20 的 112.87 年高点&#xff0c;加密市场出现了突然的自由落体。 最佳 cryptocurrencies 包括比特币&#xff08;BTC&#xff09;和以太坊&#xff08;ETH&#xff09;在内的一个小时内下跌超过2%。 ​比特币交易价格超过 19 万美元&#xff0c;但…

【HTML——奇幻撕布】(效果+代码)

效果展示 有强迫症的朋友可能会挺喜欢这个的 ~ 代码 下面即为全部源代码: 奇幻撕布.html <!doctype html> <html lang="en">

【Spring Boot 集成应用】 OAUTH2统一认证单点登录中的各种模式说明

1. OAUTH2统一认证介绍 OAuth 2.0 是一个行业的标准授权协议。OAuth 2.0 专注于简化客户端开发人员&#xff0c;同时为 Web 应用程序&#xff0c;桌面应用程序&#xff0c;手机等各种设备接入提供特定的授权流程。 2. 传统登陆认证 传统登陆方式是在每个服务进行登陆认证&am…

mqtt报文逐条解析

文章目录1、背景说明2、mqtt报文解析3、剩余长度计算4、构建connect报文5、CONNACK报文示例6、心跳PING报文7、心跳回应PINGRESP报文8、断开连接DISCONNECT报文9、订阅请求SUBSCRIBE10、订阅请求确认SUBACK11、取消订阅UNSUBSCRIBE12、取消订阅确认UNSUBACK13、发布消息PUBLISH…

element-ui源码分析:剖析el-tree源码,看看实现一个树组件有多么复杂(1)

elment-ui中tree木块相关文件如下图&#xff1a; 下图梳理一下各个文件之间的引用关系&#xff08;箭头的方向表示使用&#xff09; 1 uti.js 1.1 markNodeData 标记节点 export const NODE_KEY $treeNodeId;export const markNodeData function(node, data) {if (!data ||…

java集合专题Set接口及HashSet/LinkedHashSet使用方法底层结构及源码分析

Set接口及常用方法 我们主要学习Set接口下的HashSet/TreeSet/LinkedHashSet这3个Set的实现类! 并且通过源码的方式学习其底层结构分析源码和他们的扩容方式! Set特点: 无序,保存顺序和取出顺序不一致不允许重复值, 可以保存null值! Set接口下的常用方法 Set接口实现了Collec…

307. 区域和检索 - 数组可修改

文章目录分析常规做法线段树解法与其结构线段树的构建线段树的区域查询线段树的更新线段树的时间复杂度拓展阅读分析 原题油管讲解线段树做法 常规做法 brute force的做法是&#xff0c;更新时直接在数组原地更新&#xff0c;而求区域和时逐元素相加&#xff0c;时间复杂度为…

多测师肖sir_高级讲师_第2个月第8讲解类

Python中的类与对象 &#xff08;1&#xff09;类(class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对 象所共有的属性和方法。对象是类的实例。 案例&#xff1a;人类xiu&#xff08;对象&#xff09; &#xff08;2&#xff09;实例化&#xff1a;创…

使用docker-compose搭建高可用Apollo配置中心

使用docker-compose搭建高可用Apollo配置中心搭建学习环境编写docker-compose脚本创建script目录&#xff0c;并导入sql脚本执行docker-compose创建容器初始化环境创建测试应用启动demo&#xff0c;测试拉取配置添加依赖添加配置应用配置启动如下搭建高可用生产环境搭建mysql创…

Rosjava SLAM - Android APP 历程

目标 能在有一个Android APP的界面控制机器运行。 如&#xff1a;转&#xff1a; 机器人控制 &#xff1a; SLAM - Android APP_Lan.W的博客-CSDN博客如果选择&#xff0c;按下录制按钮时相机流将按照设置要求打开&#xff0c;相机流预览窗口将实时显示相机画面&#xff0c;得…

虚拟实习项目技术架构mal总结

mogodb闪退 各种插件和启动 mall文档 先要敲定技术架构版本才能编写代码,否则可能全部重来。 1.先技术2.再业务 先给请求加以及生成的token oauth2源码分析 教程

89-JavaIO流(概述、分类、体系)、字节输入和输出流(使用、案例-文件拷贝)

IO流 一、概述 IO流也称为输入、输出流&#xff0c;就是用来读写数据的。 比如我们玩过的消消乐游戏&#xff0c;这个游戏需要将分数展示出来给玩家看&#xff0c;当玩家的下一次分数超过上一次分数的时候&#xff0c;需要将新分数存到内存中&#xff0c;这就是数据的读写操作…

决策树、Hunt算法、泛化定理

决策树——Hunt’s algorithm&#xff08;贪心&#xff09; 红色语句加上后减轻过拟合&#xff0c;下边的GINI系数解决 Hunt’s algorithm 第五行如何寻找最好的划分方法 GINI Index 1减训练集S中yes占比和no占比的平方和&#xff0c;取值范围0-0.5 GINI(S)1−(py2pn2)GINI(S…

实验一:SDN

实验1:SDN拓扑实践 一、实验目的能够使用源码安装Mininet; 能够使用Mininet的可视化工具生成拓扑; 能够使用Mininet的命令行生成特定拓扑; 能够使用Mininet交互界面管理SDN拓扑; 能够使用Python脚本构建SDN拓扑。二、实验环境 Ubuntu 20.04 Desktop amd64 三、实验要求 (…

StarUML工具

StarUML工具 1、提示弹框Unregistered Version StartUML一直提示Unregistered Version解决 2、网格背景\白色背景 切换 快捷键&#xff1a;CTRLG 3、DevTools设置中文 打开DevTools&#xff0c;点击右上角设置图片&#xff0c;preferences中Language设置&#xff08;Ver…