AspNetCore WebApi
需求
前几天,马老板给小明和小红一个“待办事项”网站,小明负责后端,小红负责前端,并要求网站可以同时在 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并可以在浏览器中访问它。小明摸了摸光滑的脑袋,打算先喝一杯咖啡让脑袋休息一下。
AspNetCore WebApi的更多相关文章
- AspnetCore WebApi使用Swagger简单入门
微软官网入门:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/web-api-help-pages-using-swagger?view= ...
- 手把手教你AspNetCore WebApi:增删改查
前言 小明已经创建与运行了WebApi项目,了解项目结构有哪些组成,并学会了怎么发布到IIS.基础已经建好,从现在开始要真正实现待办事项的功能了. 新建表 CREATE TABLE [dbo].[To ...
- 通过docker把本地AspNetCore WebAPI镜像打包到阿里云镜像仓库并在centos部署
在centos上安装docker # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data l ...
- Swagger UI in AspNetCore WebAPI
Swagger其实包含了三个部分,分别是Swagger Editor文档接口编辑器,根据接口文档生成code的Swagger Codegen,以及生成在线文档的Swagger UI.在AspNetCo ...
- 手把手教你AspNetCore WebApi:入门
需求 前几天,马老板给小明和小红一个"待办事项"网站,小明负责后端,小红负责前端,并要求网站可以同时在 Windows.和 Linux 上运行. 小明整理了一下"待办事项 ...
- 手把手教你AspNetCore WebApi:Serilog(日志)
前言 小明目前已经把"待办事项"功能实现了,API文档也搞定了,但是马老板说过,绝对不能让没有任何监控的项目上线的. Serilog是什么? 在.NET使用日志框架第一时间会想到N ...
- 手把手教你AspNetCore WebApi:认证与授权
前言 这几天小明又有烦恼了,之前给小红的接口没有做认证授权,直接裸奔在线上,被马老板发现后狠狠的骂了一顿,赶紧让小明把授权加上.赶紧Baidu一下,发现大家都在用JWT认证授权,这个倒是挺适合自己的. ...
- aspnetcore webapi 解决发布以后每隔一段时间请求变缓慢
项目:netcore webapi 3.1 平台:windows server 2008 r2 服务器:IIS 7.5 项目发布到IIS以后第一次请求特别慢大概7.8秒,然后每隔5分钟请求一次大概2. ...
- 手把手教你AspNetCore WebApi:Swagger(Api文档)
前言 小明已经实现"待办事项"的增删改查,并美滋滋向负责前端的小红介绍Api接口,小红很忙,暂时没有时间听小明介绍,希望小明能给个Api文档.对于码农小明来说能不写文档就尽量不要写 ...
随机推荐
- P5816 [CQOI2010]内部白点 题解
[题目链接] [解析] 好题. 拿到题目首先先看一下它的无解情况是怎么判断的. 然后很明显这个是不存在无解情况的. 因为它的黑点开始都是给定了的,可以理解为一个边界. 而新的变化的黑点不会往外扩张,那 ...
- Grafana、Prometheus、mtail-日志监控
一:日志如何监控 在上一篇博客Grafana.Prometheus-监控平台中,简单了解了Grafana与Prometheus对项目做特定的监控打点,可视化的配置操作. 但是对于没有设置监控或者不容易 ...
- [刘阳Java]_eayui-searchbox搜索组件_第6讲
EasyUI中搜索框也是常用的基本组件,可以用到条件搜索中 <!DOCTYPE html> <html> <head> <meta charset=" ...
- 【系统学习ES6】新专题发布
我要发免费专题了,向下看 公众号和博客都有一阵没更新了,丢了一些粉儿,但是也很庆幸,时时还会有人关注.我并不是什么专业讲师,文章都是利用业余时间手工原创.在这里非常感谢各位的支持和厚爱. 这个月开始, ...
- 网络损伤仪WANsim的队列深度功能
什么是队列深度 在网络损伤仪WANsim中,队列是指一个用于缓存报文的缓冲池.深度是指缓冲池可以存储的最大数据量.当WANsim接受的报文超出了带宽限制的量时,溢出的报文会进入队列中. 我们可以在WA ...
- POJ3048
素数筛,数据范围不大,直接暴力筛. 坑:有个数据是 1 1,答案是1.差点没把我卡去世. 我的三观哪去了. #include<iostream> #include<cstdio> ...
- java中的集合类学习(三)
JAVA中有许多的集合,常用的有List,Set,Queue,Map. 1.其中List,Set,Queue都是Collection(集合),其每个元素都是单独的一个对象,如List<Strin ...
- 第三篇--如何修改exe文件版本号和文件信息
控制台程序添加版本信息方法: 项目右键 Add-->Resource-->选择Version-->new,然后就可以修改里面的信息了,重新编译一下就OK.
- 旧VC项目dpiAware支持
起因 工作原因,需要维护一款VS2008 SP1开发的MFC项目, 发现WIN10高分辨率下显示模糊,不考虑升级VC版本情况下尝试解决 尝试 新版本VC中Manifest Tool>Input ...
- layui 页面加载完成后ajax重新为 html 赋值 遇到的坑
页面加载完毕后,通过 ajax 按照返回值,为部分 html 赋值: $(function(){ ..... }) 直接这样写,报错,$ 没有定义什么的,错位原因为 jquery 引入错误. layu ...