加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

LINUX教学:ASP.NET Core Web API 最小化项目

发布时间:2020-12-13 17:38:50 所属栏目:Linux 来源:网络整理
导读:《LINUX教学:ASP.NET Core Web API 最小化项目》要点: 本文介绍了LINUX教学:ASP.NET Core Web API 最小化项目,希望对您有用。如果有疑问,可以联系我们。 ASP.NET Core中 默认的ASP.NET Core 模板中有Web API 模板可以创立Web API项目. 有时,只需要创建一

《LINUX教学:ASP.NET Core Web API 最小化项目》要点:
本文介绍了LINUX教学:ASP.NET Core Web API 最小化项目,希望对您有用。如果有疑问,可以联系我们。

ASP.NET Core中默认的ASP.NET Core 模板中有Web API 模板可以创立Web API项目.

有时,只需要创建一个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 可以让你灵活的使用想要使用的.

本文永远更新链接地址

更多LINUX教程,尽在编程之家PHP学院专栏。欢迎交流《LINUX教学:ASP.NET Core Web API 最小化项目》!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读