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 文件內容如下:
刪除NuGet包
首先刪除掉 Microsoft.AspNetCore.Mvc。
其實 Microsoft.VisualStudio.Web.CodeGeneration.Tools 及也可以刪除 Microsoft.ApplicationInsights.AspNetCore 。
接著添加
Microsoft.AspNetCore.Mvc.Core
Microsoft.AspNetCore.Mvc.Formatters.Json
最終miniwebapi.csproj文件如下:
其實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
{
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 可以讓你靈活的使用想要使用的。
如果你覺得本文對你有幫助,請點擊「推薦」,謝謝。
※通過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 上