001.Web Api_服务器,新建api

一.首先先建立一个HelloWorld的专案

1.控制器文件夹Controllers

所有的控制器都应统一放在Controllers资料夹下,命名规则会使用名称Controller,就像范例的WeatherForecastController.cs,会以Controller做结尾,.net会自动判断结尾为Controller一个控制器,Controller只是标签,他会自动去掉标签,是这支API的网址就会是/WeatherForecast。

那其实创好的专案就可以马上执行,执行的就是预设就有的WeatherForecastController这支API

怎么执行呢?我们按一下上方的PLAY图案的按钮

运行程序后,会有一个服务器控制台程序一直在监控端口,如下图,它告诉我们通过https或者http访问服务器时用什么端口去请求它

二.访问服务器

根据控制台提示,我们https访问这个服务器时,用控制台提示的

路由+控制器名

可访问到服务器这个api,路由如下,这是一个本机虚拟路由,实际配置到云服务器时,路由在后面章节讲解

localhost:7253/WeatherForecasthttps://localhost:7253/WeatherForecast用浏览器服务上面的服务器api,得到服务器回应如下:

我们再试试http访问服务器

重新用http运行程序,用服务器提示的http路由,前缀请求http,端口号改为5264

localhost:5264/WeatherForecasthttp://localhost:5264/WeatherForecast用浏览器访问后如下

两种方法都成功get到虚拟服务器了

三.新建自己的控制器

上面就是程序自带的示例控制器,程序自带示例的控制器一般都没什么用,一般会删掉要,新建自定义我们自己的控制器

1.新建控制器ESP32

在控制器文件-右键-新建项-选择包含读写功能的api控制器

新建后的控制器如下ESP32.cs

ESP32.cs

cs 复制代码
using Microsoft.AspNetCore.Mvc;

namespace Esp32_Server.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class ESP32 : ControllerBase
    {
        // GET: api/<ESP32>
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/<ESP32>/5
        [HttpGet("{id}")]
        public string Get(int id)
        {
            return "value";
        }

        // POST api/<ESP32>
        [HttpPost]
        public void Post([FromBody] string value)
        {
        }

        // PUT api/<ESP32>/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE api/<ESP32>/5
        [HttpDelete("{id}")]
        public void Delete(int id)
        {
        }
    }
}

1.控制器的路由配置

这是标准的路由配置,Route标签c#会自动识别这是要配置一个路由,括号内是规定的路由访问方法,

标准的方法是用api/标记+控制器名 来访问中国控制器

cs 复制代码
[Route("api/[controller]")]

这样配置的意思是,服务器默认的路由加上这个api/+控制器名可以访问到这个控制器

完整路由如下

localhost:7253/api/esp32https://localhost:7253/api/esp32

api+控制器名不分大小写,都能识别

用浏览器访问这个esp32控制器时,结果如下

我们拿到两个数据他是这个控制器get方法写好的

cs 复制代码
[HttpGet]
public IEnumerable<string> Get()
{
    return new string[] { "value1", "value2" };
}

我们把返回结果改一下,测试一下

cs 复制代码
   [HttpGet]
   public IEnumerable<string> Get()
   {
       return new string[] { "hello", "world" };
   }

再次访问api

相关推荐
科技研学社16 分钟前
中小服装工装厂自动化改造:产线节拍平衡与工位减负实施方案
运维·自动化
极光通讯19 分钟前
服务器内存替代料选型方法论:主料号缺货时如何找到Pin-to-Pin兼容型号
运维·服务器
草根大哥20 分钟前
08-横向扩容与突发高并发:加机器到底买到了什么
运维·webrtc·srt·横向扩容·whip·自建cdn
oicola39 分钟前
【运维】CI/CD是什么,合格的规范应该怎么设置
运维·ci/cd
Dachui_112241 分钟前
内网穿透如何限制访问地区?ZeroNews Geo Location 区域访问控制实践
运维·网络安全·内网穿透·访问控制·远程办公·api安全·ip白名单
SKH.1 小时前
Linux驱动-系统移植
linux·服务器
根目录下的猫1 小时前
虚拟机复制过来运行时:“虚拟机使用的此版本,VMware Workstation 不支持的硬件版本。”错误解决办法,亲测可用
linux·运维·服务器·后端
梦帮科技1 小时前
【3.0】上线与运维:节点监控、水龙头、区块浏览器与安全清单
运维·安全·web安全·金融·区块链·密码学·安全架构
涉密IT资质笔记1 小时前
2026 涉密资质三类硬性条件对照:军工 / 集成 / 印制参数矩阵与易错点
服务器·线性代数·矩阵·创业创新
帷幕落秋1 小时前
内存、虚拟内存与 OOM
linux·运维