200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > ASP.NET Core Web API 最小化项目

ASP.NET Core Web API 最小化项目

时间:2020-06-13 13:33:33

相关推荐

ASP.NET Core Web API 最小化项目

Core中默认的 Core 模板中有Web API 模板可以创建Web API项目。

有时,只需要创建一个API,不需要关心Razor,本地化或XML序列化。通过删除无用的NuGet软件包和代码,可以提高 API的加载时间并减少部署包大小。

新建项目

打开VS 新建一个 Core 应用程序 (.NET Core)项目,命名为miniwebapi。确定后选择Web API 模板,并将“身份验证”设置为“不进行身份验证”。

然后确定就创建好了项目,默认项目的csproj 文件内容如下:

<Project Sdk=".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=".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();

测试

运行程序,使用调试功能,VS 会自动打开浏览器并访问对应的api/values,显示如下:

表示接口能够成功访问。

这样你可以只使用所需的功能,从而减少加载时间。 Core 可以让你灵活的使用想要使用的。

原文地址:/linezero/p/7121925.html

.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。