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 可以让你灵活的使用想要使用的。

原文地址:http://www.cnblogs.com/linezero/p/7121925.html


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LinkedHashSet VS HashSet

LinkedHashSet的使用 LinkedHashSet作为HashSet的子类&#xff0c;在添加数据的同时&#xff0c;每个数据还维护了两个引用&#xff0c;记录此数据前一个 数据和后一个数据。 优点&#xff1a;对于频繁的遍历操作&#xff0c;LinkedHashSet效率高于HashSet

隐马尔科夫模型-基本模型与三个基本问题

转载自 隐马尔科夫模型-基本模型与三个基本问题 隐马尔科夫模型-基本模型与三个基本问题 这次学习会讲了隐马尔科夫链&#xff0c;这是一个特别常见的模型&#xff0c;在自然语言处理中的应用也非常多。 常见的应用比如分词&#xff0c;词性标注&#xff0c;命名实体识别等…

日常技术分享 : 一定要注意replcaceAll方法,有时候会如你所不愿!

点击上方蓝色关注我们&#xff01;今天&#xff0c;踩过了一个雷&#xff0c;特此整理了一下&#xff0c;以防大家也被中招&#xff01;事情是这样的&#xff0c;在做一个项目时&#xff0c;需要用到String类的replcaceAll方法&#xff0c;可以这么说&#xff0c;该方法就是替换…

在微服务中如何管理数据

来自Stitch Fix团队的工程副总裁Randy Shoup在QCon纽约2017会议上讨论了如何在基于微服务的应用中管理数据和隔离持久化。他还介绍了将事件&#xff08;Event&#xff09;作为微服务的第一类构造。他介绍自己的团队将机器学习技术应用到了业务的各个组成部分&#xff0c;比如购…

jozj3419-最大利润【树形dp】

前言 树形dp是前天学的&#xff0c;题目也是前天做的&#xff0c;可博客却是今天发的。 正题 题目大意 一棵树一样的火车站&#xff0c;每个站点有不同的利润&#xff0c;不能连续选择相连的两个站点的利润&#xff0c;求最大利润。 输入输出&#xff08;建议无视&#xf…

隐马尔科夫模型-前向算法

转载自 隐马尔科夫模型-前向算法 隐马尔科夫模型-前向算法 在该篇文章中讲了隐马尔科夫模型&#xff08;HMM&#xff09;一基本模型与三个基本问题 隐马尔科夫模型-基本模型与三个基本问题&#xff0c;这篇文章总结一下隐马尔科夫链&#xff08;HMM&#xff09;中的前向与后…

线段树初见——区间询问与改变最大值

前言 昨天某B组讲主席树&#xff0c;然后就作死的去听了&#xff0c;也没听懂&#xff08;因为连线段树都不懂&#xff09;&#xff0c;然后好奇心就去问了一下老师线段树是个蛤&#xff0c;然后这篇博客就诞生了。 正题 首先线段树就是一个可以快速区间改变和询问的东东&am…

关系数据库理论

依赖 候选码 三大范式 公理系统 求最小函数的依赖集 例 解 模式分解

19级:班级日常分享 | 一天一瞬间

点击上方蓝色关注我们&#xff01;昨天没有看到他们早读&#xff0c;有点失落。今天再一次去教室&#xff0c;还未走到门口呢&#xff0c;就听见教室里面的早读生透过门缝传出&#xff0c;甚是开心。在陪他们早读的时候&#xff0c;自己顺便读了几篇散文和古诗古文&#xff0c;…

在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序

前言 Visual Studio 2017已经发布了很久了。做为集成了Asp.Net Core 1.1的地表最强IDE工具&#xff0c;越来越受.NET系的开发人员追捧。 随着Google Angular4的发布。我一直在想&#xff0c;怎么能够用这个地表最强IDE工具编写Angular4的Asp.Net Core项目。经过不懈的研究。终…

机器学习中向量化编程总结记录

转载自 机器学习中向量化编程总结记录 向量化编程总结记录 很多时候&#xff0c;我们在实现算法的时候&#xff0c;总会碰到累和的伪代码&#xff1a; 比如下面这个&#xff1a; 为了简单我这里只重复5次&#xff0c;但是原理是一样的。 很显然我们要得到这个结果&#xf…

Spring整合Mybatis-完成用户登录

①导入的jar包: ②在src下创建并配置applicationcontext.xml文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…

【jzoj】2018.2.7NOIP普及组——某【BC】组模拟赛

前言 ……终于改完了&#xff0c;像之前小L一样崩溃。今天C组和B组一起做题&#xff0c;所以…… 正题 题目1&#xff1a;教主的花园&#xff08;jzoj1792&#xff09; 一平面直角坐标系&#xff0c;在x轴的位置建立一堵墙&#xff0c;墙上有n道门&#xff0c;给出门的位置&a…

刘奕佳: 我的职校新生活 | 班级日常分享

点击上方蓝色关注我们&#xff01;时光匆匆&#xff0c;一转眼到了开学季&#xff0c;校园里弥漫着浓重的书香之气踏入校园&#xff0c;映入眼帘的就是雄伟的教学楼&#xff0c;意气风发的朗朗书声&#xff0c;让人情不自禁的陷入深深的学习中。实训楼当熟悉的上下课铃声又在我…

一个非常好的依存句法可视化工具

转载自 一个非常好的依存句法可视化工具 一个非常好的依存句法可视化工具 在依存句法研究中&#xff0c;常见的CONLL格式的句法树库&#xff0c;一眼看上去就不是太明白整棵树的结构。 这里分享推荐一个南京大学nlp实验室制作的一个依存句法可视化工具&#xff0c;效果如图…

DDD理论学习系列(8)-- 应用服务amp;amp;领域服务

1. 引言 单从字面理解&#xff0c;不管是领域服务还是应用服务&#xff0c;都是服务。而什么是服务&#xff1f;从SOA到微服务&#xff0c;它们所描述的服务都是一个宽泛的概念&#xff0c;我们可以理解为服务是行为的抽象。从前缀来看&#xff0c;根据DDD的经典分层架构&…

纪念中学15-5(=10)天感想

来自水lao ten days の 感想 前言 时光飞逝&#xff0c;转眼间&#xff0c;纪念中学的10天生活就那么过去了。回想起刚来&#xff0c;仿佛就在昨天。今天我将要离开这里&#xff0c;总感觉有无限的遗憾&#xff0c;无限的失落。可是花朵总是要谢&#xff0c;时光不停流逝。我…

祝张远远和杨凯博同学生日快乐 | 班级日常分享

点击上方蓝色关注我们&#xff01;首先祝张远远和杨凯博同学生日快乐&#xff01;上午丁老师和我说&#xff0c;今天是张远远同学的生日&#xff0c;于是我们就简单的商量了下&#xff0c;准备弄个活动&#xff0c;祝一下张远远同学生日快乐&#xff01;待下午时&#xff0c;获…

开放对静态资源的访问

前端控制器先进行处理&#xff0c;处理不了的交给default… 缺一不可

通俗理解维特比算法

转载自 通俗理解维特比算法 本文假定读者有一定的隐马模型基础&#xff01;或者大家可以参考这两篇文章。 隐马尔科夫模型-基本模型与三个基本问题和隐马尔科夫模型-前向算法 维特比算法说白了就是动态规划实现最短路径&#xff0c;只要知道“动态规划可以降低复杂度”这一…