ASP.NET Core Web API 最小化项目
2017-07-07 07:46
1021 查看
ASP.NET Core中默认的ASP.NET Core 模板中有Web API 模板可以创建Web API项目。
有时,只需要创建一个API,不需要关心Razor,本地化或XML序列化。通过删除无用的NuGet软件包和代码,可以提高 API 的加载时间并减少部署包大小。
然后确定就创建好了项目,默认项目的csproj 文件内容如下:
其实 Microsoft.VisualStudio.Web.CodeGeneration.Tools 及也可以删除 Microsoft.ApplicationInsights.AspNetCore 。
接着添加
最终miniwebapi.csproj文件如下:
其实Microsoft.Extensions.Logging.Debug 如果不需要也可以删除,这里做了一个保留。
接着打开Startup.cs 文件,在ConfigureServices 方法中去掉 services.AddMvc();
然后改成如下:
services.AddMvcCore().AddJsonFormatters();
接着打开默认的ValuesController.cs 更改成如下:
重点是去掉默认的继承 Controller。
如果你有其他的需求如跨域,数据验证,可以再添加对应的NuGet包。
Microsoft.AspNetCore.Mvc.Cors 跨域 对应的在services.AddMvcCore().AddJsonFormatters().AddCors();
Microsoft.AspNetCore.Mvc.DataAnnotations 数据验证属性。
表示接口能够成功访问。
这样你可以只使用所需的功能,从而减少加载时间。ASP.NET Core 可以让你灵活的使用想要使用的。
原文地址:http://www.cnblogs.com/linezero/p/7121925.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
有时,只需要创建一个API,不需要关心Razor,本地化或XML序列化。通过删除无用的NuGet软件包和代码,可以提高 API 的加载时间并减少部署包大小。
新建项目
打开VS2017 新建一个ASP.NET Core 应用程序 (.NET Core)项目,命名为miniwebapi。确定后选择Web API 模板,并将“身份验证”设置为“不进行身份验证”。然后确定就创建好了项目,默认项目的csproj 文件内容如下:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" /> </ItemGroup></Project>
删除NuGet包
首先删除掉 Microsoft.AspNetCore.Mvc。其实 Microsoft.VisualStudio.Web.CodeGeneration.Tools 及也可以删除 Microsoft.ApplicationInsights.AspNetCore 。
接着添加
Microsoft.AspNetCore.Mvc.Core
Microsoft.AspNetCore.Mvc.Formatters.Json
最终miniwebapi.csproj文件如下:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="1.1.3" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="1.1.3" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" /> </ItemGroup> </Project>
其实Microsoft.Extensions.Logging.Debug 如果不需要也可以删除,这里做了一个保留。
配置服务
对于移除了Microsoft.ApplicationInsights.AspNetCore 的,需要在Program.cs 中去掉.UseApplicationInsights()接着打开Startup.cs 文件,在ConfigureServices 方法中去掉 services.AddMvc();
然后改成如下:
services.AddMvcCore().AddJsonFormatters();
接着打开默认的ValuesController.cs 更改成如下:
[Route("api/[controller]")] public class ValuesController { // GET api/values [HttpGet] public IEnumerable<string> Get() { return new string[] { "linezero", "linezero's blog" }; } // GET api/values/5 [HttpGet("{id}")] public string Get(int id) { return "linezero"+id; } // POST api/values [HttpPost] public void Post([FromBody]string value) { } // PUT api/values/5 [HttpPut("{id}")] public void Put(int id, [FromBody]string value) { } // DELETE api/values/5 [HttpDelete("{id}")] public void Delete(int id) { } }
重点是去掉默认的继承 Controller。
如果你有其他的需求如跨域,数据验证,可以再添加对应的NuGet包。
Microsoft.AspNetCore.Mvc.Cors 跨域 对应的在services.AddMvcCore().AddJsonFormatters().AddCors();
Microsoft.AspNetCore.Mvc.DataAnnotations 数据验证属性。
AddDataAnnotations();
测试
运行程序,使用调试功能,VS2017 会自动打开浏览器并访问对应的api/values,显示如下:表示接口能够成功访问。
这样你可以只使用所需的功能,从而减少加载时间。ASP.NET Core 可以让你灵活的使用想要使用的。
原文地址:http://www.cnblogs.com/linezero/p/7121925.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
相关文章推荐
- ASP.NET Core Web API 最小化项目
- asp.net core webapi项目配置全局路由的方法示例
- asp.net core webapi 似乎未安装在 IIS 中承载 .NET Core 项目所需的 AspNetCoreModule。请尝试修复 Visual Studio 以纠正该问题。
- ASP.NET Core WebAPI 开发-新建WebAPI项目 转
- 在ASP.NET Core Web API 项目里无法访问(wwwroot)下的文件
- ASP.NET Core WebAPI 开发-新建WebAPI项目
- asp.net core webapi项目配置全局路由
- Docker容器环境下ASP.NET Core Web API
- 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(二)-- Web Api Demo
- Docker容器环境下ASP.NET Core Web API
- CentOs7 +Jexus 5.8.2部署Asp.Net Core WebApi 1.0生产环境
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
- 使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)
- 用Middleware给ASP.NET Core Web API添加自己的授权验证
- Asp.net Core WebApi--(1)环境搭建
- Asp.net Core WebApi 使用Swagger做帮助文档,并且自定义Swagger的UI
- Docker容器环境下ASP.NET Core Web API应用程序的调试
- Docker容器环境下ASP.NET Core Web API应用程序的调试
- 用Middleware给ASP.NET Core Web API添加自己的授权验证