一、.Net Core介绍¶
具有跨平台 (Windows、Mac OSX、Linux) 能力的应用程序开发框架 (Application Framework),云端部署
二、Web API介绍¶
Web API:可以对接各种客户端(浏览器,移动设备),构建http服务的框架。Web API最重要的是可以构建面向各种客户端的服务
Web API的主要功能:
- 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作,通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作
- 请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。
- 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。
- 原生支持OData。
- 支持Self-host或者IIS host。
- 支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。
三、.Net Core Web ApI项目示例详解¶
1、使用 VS Code创建Web API项目¶
打开VS Code,输入命令 dotnet new webapi,创建.NET Core Web ApI项目,创建完成的项目如下图所示

2、项目结构介绍¶
- Program.cs:程序入口
- Startup.cs:程序真正的切入点
- Controllers:控制器
主要方法:
- ConfigureServices方法是用来把services(各种服务, 例如identity, ef, mvc等等包括第三方的, 或者自己写的)加入(register)到container(asp.net core的容器)中去, 并配置这些services. 这个container是用来进行dependency injection的(依赖注入). 所有注入的services(此外还包括一些框架已经注册好的services) 在以后写代码的时候, 都可以将它们注入(inject)进去. 例如上面的Configure方法的参数, app, env, loggerFactory都是注入进去的services
- Configure方法是asp.net core程序用来具体指定如何处理每个http请求的, 例如我们可以让这个程序知道我使用mvc来处理http请求, 那就调用app.UseMvc()这个方法就行. 但是目前, 所有的http请求都会导致返回"Hello World!"

这几个方法的调用顺序: Main -> ConfigureServices -> Configure
3、请求管道和中间件¶
请求管道: 那些处理http requests并返回responses的代码就组成了request pipeline(请求管道).
中间件: 我们可以做的就是使用一些程序来配置那些请求管道 request pipeline以便处理requests和responses. 比如处理验证(authentication)的程序, 连MVC本身就是个中间件(middleware)

每层中间件接到请求后都可以直接返回或者调用下一个中间件, 一个比较好的例子就是: 在第一层调用authentication验证中间件, 如果验证失败, 那么直接返回一个表示请求未授权的response app.UseDeveloperExceptionPage(); 就是一个middleware, 当exception发生的时候, 这段程序就会处理它, 而判断env.isDevelopment() 表示, 这个middleware只会在Development环境下被调用
4、项目发布¶
1.项目发布 项目中 输入dotnet publish -c Release 生成发布包,发布包生成成功后,在项目文件路径bin\Release\netcoreapp2.0\publish下可看到发布的文件

2.发布包部署启动 使用cmd命令,打开发布包所在的路径,输入命令 dotnet xxxx.dll(xxxx表示)项目名称,在浏览器中输入 命令框中给出的新项目地址,调用API接口
