在ASP.NET Core MVC中构建简单 Web Api
2017-04-01 21:27
495 查看
Getting Started
在 ASP.NET Core MVC 框架中,ASP.NET 团队为我们提供了一整套的用于构建一个 Web 中的各种部分所需的套件,那么有些时候我们只需要做一个简单的 Web Api 程序怎么办呢?在 GitHub 中的 ASP.NET Core MVC 源码里面,我们只要关注
Microsoft.AspNetCore.Mvc这个包,那么除了这个包之外它还包含这些:
Microsoft.AspNetCore.Mvc.ApiExplorer
Microsoft.AspNetCore.Mvc.Cors
Microsoft.AspNetCore.Mvc.DataAnnotations
Microsoft.AspNetCore.Mvc.Formatters.Json
Microsoft.AspNetCore.Mvc.Localization
Microsoft.AspNetCore.Mvc.Razor
Microsoft.AspNetCore.Mvc.TagHelpers
Microsoft.AspNetCore.Mvc.ViewFeatures
Microsoft.Extensions.Caching.Memory
Microsoft.Extensions.DependencyInjection
NETStandard.Library
通常情况下,我们在创建一个 Web MVC 网站的时候,会在 Startup.cs 文件中的
ConfigureServices方法中,这样添加:
services.AddMvc();
以上的代码会将 MVC 中的服务注入到 DI 容器中,我们来看一下
AddMvc()的源码:
public static IMvcBuilder AddMvc(this IServiceCollection services) { var builder = services.AddMvcCore(); builder.AddApiExplorer(); builder.AddAuthorization(); AddDefaultFrameworkParts(builder.PartManager); // Order added affects options setup order // Default framework order builder.AddFormatterMappings(); builder.AddViews(); builder.AddRazorViewEngine(); builder.AddCacheTagHelper(); // +1 order builder.AddDataAnnotations(); // +1 order // +10 order builder.AddJsonFormatters(); builder.AddCors(); return new MvcBuilder(builder.Services, builder.PartManager); }
简单 Web Api
实际上,如果想构建一个简单 Web Api 程序的话,ASP.NET 团队已经为我们想到了这一点,所以我们只需要修改我们注入的服务。首先,不需要引用
Microsoft.AspNetCore.Mvc这个包了,转而引用
Microsoft.AspNetCore.Mvc.Core。
Mvc.Core 这个包只会给你提供基本的 MVC 中间件,比如路由,Controller, HttpResult 等,其他更多的如关于 Razor,Cores,Views 等则没有提供。
在 Web Api 应用中,大多数情况下是以 Json 进行数据序列化传输的,所以需要添加
Microsoft.AspNetCore.Mvc.Formatters.Json这个包。
然后,在
ConfigureServices,将
Mvc Core 中间件和 Json Formatter 添加里面。
public void ConfigureServices(IServiceCollection services) { services.AddMvcCore() .AddJsonFormatters(); }
最后一点就是,你的 XXXController 类中要继承
ControllerBase而不是
Controller。
ControllerBase 里面没有提供任何关于对 Views 的支持。
public class XXXController: ControllerBase { }
下面是最终的 project.json 引用的所有程序包。
"dependencies": { "Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" }, "Microsoft.AspNetCore.Mvc.Core": "1.1.0", "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.1.0", "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", "Microsoft.Extensions.Configuration.Json": "1.1.0", "Microsoft.Extensions.Configuration.CommandLine": "1.1.0", "Microsoft.Extensions.Logging": "1.1.0", "Microsoft.Extensions.Logging.Console": "1.1.0", "Microsoft.Extensions.Logging.Debug": "1.1.0" }
相关文章推荐
- 在ASP.NET Core MVC中构建简单 Web Api
- 在ASP.NET Core MVC中构建简单 Web Api
- ASP.NET Core MVC中构建Web API
- ASP.NET Core MVC中构建Web API
- 通过Knockout.js + ASP.NET Web API构建一个简单的CRUD应用
- ASP.NET MVC4 WEB API入门 第二篇:ASP.NET MVC入门基础(2)—— 简单登录功能的实现
- [译]ABP框架使用AngularJs,ASP.NET MVC,Web API和EntityFramework构建N层架构的SPA应用程序
- ASP.NET Core MVC/WebAPi如何构建路由?
- 在ASP.NET MVC中使用Web API和EntityFramework构建应用程序
- 通过Knockout.js + ASP.NET Web API构建一个简单的CRUD应用
- ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现
- 通过Knockout.js + ASP.NET Web API构建一个简单的CRUD应用
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- 使用mongodb,asp.net mvc 4 web api,win8,metro做的简单相册
- Web API with ASP.NET Core 1.0 MVC
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 在Asp.Net MVC中实现计算页面执行时间及简单流量统计
- 如何应用Asp.Net Mvc内建功能(DefaultModelBinder)实现简单类型、复杂类型、集合类型,以及字典类型的自动绑定
- 在ASP.NET MVC Framework 中执行简单验证(翻的)
- ASP.NET AJAX环境的简单构建