當前位置:
首頁 > 知識 > ASP.NET Core Web API 最小化項目

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 模板,並將「身份驗證」設置為「不進行身份驗證」。

ASP.NET Core Web API 最小化項目

然後確定就創建好了項目,默認項目的csproj 文件內容如下:


netcoreapp1.1












刪除NuGet包

首先刪除掉 Microsoft.AspNetCore.Mvc。

其實 Microsoft.VisualStudio.Web.CodeGeneration.Tools 及也可以刪除 Microsoft.ApplicationInsights.AspNetCore 。

接著添加

  • Microsoft.AspNetCore.Mvc.Core
  • Microsoft.AspNetCore.Mvc.Formatters.Json

最終miniwebapi.csproj文件如下:


netcoreapp1.1









其實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 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 Web API 最小化項目

表示介面能夠成功訪問。

這樣你可以只使用所需的功能,從而減少載入時間。ASP.NET Core 可以讓你靈活的使用想要使用的。

如果你覺得本文對你有幫助,請點擊「推薦」,謝謝。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

通過history解決ajax不支持前進/後退/刷新
Spark如何在一個SparkContext中提交多個任務
Unity應用架構設計(13)——日誌組件的實施
iOS中UIWebView執行JS代碼(UIWebView)

TAG:達人科技 |

您可能感興趣

ASP.NET Core Web API與SSL
ASP.NET Web Pages-HTML 表單
ASP.NET Web Forms XML 文件
ASP.NET Web Forms編程HTML 頁面
ASP.NET Web Forms 數據綁定
ASP.NET Web Forms 編程
ASP.NET Web Forms 編程HTML 表單
ASP.NET Core URL Rewrite中間件
快速搭建CentOS+ASP.NET Core環境支持WebSocket
ASP.NET Web Forms Button 控制項
ASP.NET Core Web API下事件驅動型架構的實現(三):基於RabbitMQ的事件匯流排
為什麼 web 開發人員需要遷移到.NET Core,並使用 ASP.NET Core MVC 構建 web和API
ASP.NET Web Forms ArrayList 對象
ASP.NET Core MVC+EF Core從開發到部署
ASP ASPError 對象
ASP.NET Web Forms 維持 ViewState
基於ng-zorro的ASP.NET ZERO前端實現
繞過CloudFlare WAF和OWASP CRS 3核心規則集
利用Raspberry PI 3打造AWS VPN用戶網關
微軟宣布 ASP.NET Core 3.0 只運行在.NET Core 上