ToB企服应用市场:ToB评测及商务社交产业平台
标题:
.Net8 WebAPI项目创建摆设记录
[打印本页]
作者:
天津储鑫盛钢材现货供应商
时间:
2024-11-13 19:54
标题:
.Net8 WebAPI项目创建摆设记录
.Net8 WebAPI项目创建摆设记录
本着学新不学旧的原则,.Net Core会渐渐替代.Net Framework,并且是开源框架,能用在什么地方懂的都懂。本文记录了Net8框架下的Web API项目创建到摆设过程。
1、创建项目
新建项目选择ASP.NET Core Web API,太多了的话可以在上面筛选
假如没有去VS Installer添加“ASP.NET 和 Web开发”模块并安装。
配置项目
配置HTTPS:方便测试不勾选。
不使用顶级语句:勾选后是传统的Program类中定义Main函数入口;不勾选直接就是指令有点抽象不符合C#风俗,够不够选看个人。
使用控制器:不勾选会在Program中写方法,看着乱,发起勾选。
2、项目布局息争释
项目布局
Main函数配置解释:
namespace WebAPI记录
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
//注入swagger
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer(); //生成文档
builder.Services.AddSwaggerGen(); //设置文档内容
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment()) //只有当程序处于debug的情况才开启swagger
{
//分别注入中间件和ui中间间
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseAuthorization();
app.MapControllers();
app.Run();
}
}
}
复制代码
Controller解释:
using Microsoft.AspNetCore.Mvc;
namespace WebAPI记录.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;
}
// http://ip:port/WeatherForecast
[HttpGet(Name = "GetWeatherForecast")] // 创建Get请求
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
}
.ToArray();
}
}
}
复制代码
LaunchSettings.json配置文件:
记录了端口配置信息等。
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:12692",
"sslPort": 0
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "http://localhost:5053",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
复制代码
3、当地运行
可以选择http大概IIS方式运行,端口见上面json内的配置
运行效果
Debug模式下会进入Swagger页面(见上面Main函数注释),以UI情势方便观察测试接口和结果
点击Execute查看哀求URL和返回结果
至此当地测试完成
4、生成项目
选择菜单栏中的 生成 -> 发布。
目的可以选文件夹,简单一点
默认路径是生成文件夹下的publish目次
点击发布编译生成项目
生成成功后可以直接到生成目次下:
5、服务器远程摆设(Windows)
摆设环境:Window Server 2016
(1)安装IIS
这边简单写了,详细自行查询
服务器管理器 -> 添加功能 -> 安装IIS
(2)安装NetCore运行时
进入微软官网下载运行时Download .NET 8.0 (Linux, macOS, and Windows),选择HostBundle包即可。
安装完后,右键找到IIS管理器:
在模块下出现AspNetCoreModuleV2表示安装成功:
(3)配置IIS
添加应用步伐池:
输入名称,选择”无托管代码“:
将发布生成的文件夹传到服务器上去,过程略。
IIS添加网站:
应用步伐池选择刚才创建的
物理路径选择刚才上传的文件夹
绑定的端口选择空端口(不用和项目中json配置的一样)
编辑权限中创建一个完全控制权限的账户
点击”启动“运行,发现什么都没有。别忘记我们做的是API不是网站,地址换成接口URL就有了
Postman远程测试也没有标题:
6、新增自定义接口
Controllers文件夹添加控制器
定名方式留意以Controller结尾
创建好后代码自动继续Controller。
[Route(“[controller]”)]表示URL以类名MyAPI为路由地址,盼望其他地址直接改字符串就行。
列举了4个哀求的例子:
using Microsoft.AspNetCore.Mvc;
namespace WebAPI记录.Controllers
{
[ApiController]
[Route("[controller]")]
public class MyAPIController : Controller
{
// http://ip:port
[HttpGet]
public string GetString()
{
return "Hello";
}
// http://ip:port/myapi/id
[HttpGet("id")]
public string GetStringByID([FromHeader]int id) // FromHeader属性表示从请求头获得参数
{
return "Hello " + id.ToString();
}
// http://ip:port/myapi/result
[HttpGet("result")]
public IActionResult GetStringResult()
{
var data = new { Message = "Hello" };
return Ok(data); // Ok返回包含请求数据的HTTP 200
}
// http://ip:port/postdata
[HttpPost("postdata")]
public IActionResult PostData([FromBody] DataModel data) // FromBody属性表示从请求的Body中读取并转为DataModel类
{
// 在这里处理接收到的数据
return CreatedAtAction(nameof(PostData), null, new { Message = data }); // CreatedAtAction返回包含创建资源的 URL 的 HTTP 201 响应
}
}
}
复制代码
DataModel类:
namespace WebAPI记录
{
public class DataModel
{
public string Name { get; set; }
public int Value { get; set; }
}
}
复制代码
运行后已经可以访问结果了
测试结果:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4