手把手教你AspNetCore WebApi:入门
2024-09-05 21:23:21
需求
前几天,马老板给小明和小红一个“待办事项”网站,小明负责后端,小红负责前端,并要求网站可以同时在 Windows、和 Linux 上运行。
小明整理了一下“待办事项”的功能清单:
- 获取所有待办事项
- 按 ID 获取项
- 添加新项
- 更新现有项
- 删除项
创建 Web 项目
- 从“文件”菜单中选择“新建”>“项目” 。
- 选择“ASP.NET Core Web 应用程序”模板,再单击“下一步” 。
- 将项目命名为 App001,然后单击“创建”。
- 在“创建新的 ASP.NET Core Web 应用程序”对话框中,确认选择“.NET Core”和“ASP.NET Core 3.1” 。 选择“API”模板,然后单击“创建” 。
测试 API
按 Ctrl+F5 运行应用。 Visual Studio 启动浏览器并导航到 https://localhost:/WeatherForecast,其中 是随机选择的端口号。
到目前为止,小明已经成功创建并运行了一个WebApi项目。
项目结构
从这个图中可以看出WebApi项目主要由Program.cs,Startup.cs,appsettings.json,WeatherForecastController.cs文件组成,那么现在我们一个一个介绍一下这几个文件主要由什么作用。
Program类
它是所有.net core程序的入口,定义了2个方法:Main() 和CreateHostBuilder();
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
代码不复杂,创建泛型主机并运行。
Startup类
主要包括 ConfigureServices 方法以配置应用的服务和Configure 方法以创建应用的请求处理管道。
// 运行时将调用此方法。 使用此方法将服务添加到容器。
public void ConfigureServices(IServiceCollection services)
{
}
// 运行时将调用此方法。 使用此方法来配置HTTP请求管道。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
}
appsettings.json
appsettings.json是在core中的配置文件,类似与以前asp.net中的web.config
WeatherForecastController.cs
就是一个控制器,就是处理 Web API 请求,派生自 ControllerBase 的控制器类。
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
发布到IIS
在 Windows Server 上安装.NET Core Hosting Bundle。
https://dotnet.microsoft.com/download/dotnet-core/3.1
创建 IIS 站点
- 在 IIS 服务器上,创建一个文件夹以包含应用已发布的文件夹和文件。 在接下来的步骤中,文件夹路径作为应用程序的物理路径提供给 IIS。
- 在 IIS 管理器中,打开“连接”面板中的服务器节点。 右键单击“站点”文件夹。 选择上下文菜单中的“添加网站”。
- 提供网站名称,并将“物理路径”设置为所创建应用的部署文件夹 。 提供“绑定”配置,并通过选择“确定”创建网站 。
发布和部署应用
- 将应用发布到一个文件夹。
- 文件夹的内容将移动到 IIS 站点的文件夹(IIS 管理器中站点的物理路径)。
小结
目前为止,小明创建并运行WebApi应用,并了解WebApi项目结构及各个文件的用途,然后把WebApi应用发布到IIS并可以在浏览器中访问它。小明摸了摸光滑的脑袋,打算先喝一杯咖啡让脑袋休息一下。
最新文章
- 使用T4模板生成代码的学习
- 远程重装centos6
- Ztree行政地区树状展示
- 工作流Activiti5流程变量 任务变量 setVariables 跟 setVariablesLocal区别
- KesionCMS V6.5后台拿SHELL方法
- silverlight imagesource赋值与转换
- java.lang.NoClassDefFoundError: ognl/PropertyAccessor解决的方法
- Study notes for B-tree and R-tree
- 开发一个成功APP的六个技巧
- Windows反复重启的可能的解决办法
- Python 常用系统模块整理
- Python之操作MySQL数据库
- JS 单体内置对象
- RFC
- CCNA学习与实验指南——第3章 以太网
- for语句查看js对象
- 程序猿职场心理学,教你三进三出“斩”HR拿offer(跳槽必看)
- weixin.com域名易主 传交易价格仅次360.com
- mysql千万级表关联优化(2)
- html5+js+.Net的即时多人聊天