人生苦短,我用.NET Core!提到Api接口,一般会想到以前用到的WebService和WCF服务,这三个技术都是用来创建服务接口,只不过WebAPI用起来更简单,更轻量级,更流行。构建一个优秀的API依赖于伟大的框架,今天我们的主角当然是微软的跨平台轻量级HTTP服务框架——Asp.net Core WebApi。今天阿笨将给大家带来的分享课程是如何利用ASP.NET Core WebApi跨平台开发技术构建我们的API服务应用程序并在部署运行不同的OS系统平台上,真真的体现.NET Core的跨平台强大之处: 实现一次编译,多平台部署运行!
1.1、本次分享课程包含知识点如下:
★与ASP.NET Core WebAPI的第一次亲密接触
★ ASP.NET Core WebAPI集成Swagger在线API接口文档
★ ASP.NET Core WebAPI如何实现多接口版本控制
★ ASP.NET Core WebApi标准格式化统一输出响应报文数据
★ ASP.NET Core WebApi标准格式化统一输出异常报文数据
★ 开箱即用的BaseApiController工具基类,WebApi你值得拥有★ ASP.NET Core WebApi开启服务端跨域CORS
★ ASP.NET Core WebApi复杂参数传递使用技巧小结
★ 客户端(C/S,B/S)如何调用ASP.NET Core WebApi服务接口
★ 如何在Docker容器中运行ASP.NET Core应用1.2、正确的学习课程方式须知
1)、视频+实例源代码配套学习,一千个读者就有一千个哈姆雷特,仁者见仁智者见智!
2)、基础理论和实战演练相结合,切记眼高手低。(备注:本课程不是完完全全的零基础教学,课程侧重是实战演练,因此需要大家结合自身的实际情况进行选择学习)
3)、在学习的过程中,我们少一点抱怨,将多一份收获。
如果您在学习过程中遇到任何的课程问题,请先私下直接找阿笨老师进行在线的沟通和交流。谢谢大家的理解和支持,预祝大家学习快乐!
1.3、本课程适合人群如下:
1)、有一定的ASP.NET Core开发基础。
2)、学习和了解ASP.Net Core跨平台开发技术。
3)、喜欢阿笨分享的干货课程童鞋们。
1.4、一句话总结今天我们学习达到的目标:
如何使用基于ASP.NET Core WebApi跨平台技术快速的来构建API接口服务。
如果您同样对本次分享《ASP.NET Core WebApi构建API接口服务实战演练》课程感兴趣的话,那么请跟着阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
1、本次分享课程环境说明
1)、Visual Studio 2019企业版。
2)、.Net Core 3.0。
Swashbuckle.AspNetCore 是一个开源项目,用于生成 ASP.NET Core Web API 的 Swagger 文档。
1、什么是Swagger?
Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful API,它是为了解决Web API生成有用文档和帮助页的问题。
2、为啥选用swagger?
1)它具有交互式文档、客户端SDK生成和API可发现性等优点。
2)书写api说明文档的工具有很多,但是能称之框架只有swagger
使用程序包管理器控制台窗口:
Install-Package Swashbuckle.AspNetCore
3、为什么说漂亮的在线API接口文档漂亮?
1)、支持接口自定义分组显示。
2)、接口多版本与swagger的完美集成。
Install-Package Swashbuckle.AspNetCore.Swagger
Install-Package Swashbuckle.AspNetCore.SwaggerUi
Install-Package Swashbuckle.AspNetCore.SwaggerGen
ASP.NET Core WebApi跨平台技术从入门到实战演练
a)使用不同的 API 名称
https://yuiter.com/api/Secret/Login ——1.0
https://yuiter.com/api/Secret/NewLogin ——2.0
b)在 Url 中标明版本号
https://yuiter.com/api/v1/Secret/Login ——1.0
https://yuiter.com/api/v2/Secret/Login ——2.0
c)请求参数中添加版本信息
https://yuiter.com/api/Secret/Login?version=1 —— 1.0
https://yuiter.com/api/Secret/Login?version=2 —— 2.0
d)在 header 中标明版本号
POST https://yuiter.com/api/Secret/Login
Host: yuiter.com
api-version: v1 —— 1.0
POST https://yuiter.com/api/Secret/Login
Host: yuiter.com
api-version: v2 —— 2.0
Install-Package Microsoft.AspNetCore.Mvc.Versioning
Install-Package Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer
1)、public ResponseResult
> Get() 2)、[ApiResponseTyppeAttribute(typeof(ResponseResult
))] public IActionResult Get()
ASP.NET Core WebApi跨平台技术从入门到实战演练
ASP.NET Core WebApi跨平台技术从入门到实战演练
CORSCORS (Cross-Origin Resource Sharing, 跨源资源共享) 是W3C出的一个标准,其思想是使用自定义的 HTTP 头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。CORS 与 JSONP 都可以做到跨源资源共享,但与 JSONP 不同,CORS 可以支持除 GET 方式以外所有类型的 HTTP 请求。
在ASP.NET Core的应用程序开发中,特别是开发ASP.NET Core Web API的接口程序会遇到跨域问题。这时我们需要开启ASP.NET Core服务端的跨域(CORS)功能,那么应该如何开启呢?
如果两个 Url 具有相同的方案、主机和端口,则它们具有相同的源。这两个 Url 具有相同的源:
https://example.com/foo.html
https://example.com/bar.html
这些 Url 的起源不同于前两个 Url:
https://example.net–不同域
https://www.example.com/foo.html–不同子域
http://example.com/foo.html–不同方案
https://example.com:9000/foo.html–不同端口
使用 jQuery:
$.ajax({
type: 'post',
url: 'http://localhost:5000/home/fromBodyTest',
contentType: 'application/json',
data: JSON.stringify({
name: 'beck'
}),
xhrFields: {
withCredentials: true//配置http跨域请求中携带cookie
},
success: function (result) {
$('#result').html(result.data);
}
});
通过以上代码简单的修改,就实现了 CORS 。在实际的内网或生产环境,可能会从运维层面通过 Nginx 或者其他的设置做到不修改代码也能完美支持
一、如何在不同操作系统中部署托管我们的ASP.NET Core应用程序
ASP.NET Core部署在IIS和Linux系统中,在前面的基础课程中已经给大家详细的分享过了,这里就没必要浪费时间再次讲解这块了知识了,不清楚的童鞋有兴趣的话可以去学习一下。《ASP.NET Core托管和部署Linux实操演练手册》、《Linux+Nginx+Supervisor部署ASP.NET Core实操手册》
二、如何将ASP.NET Core部署托管在Docker容器
在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker ,就不用担心环境问题。 简单一句话:Docker它很火,作为开发人员有必要去学习和了解。
实现方法:如何采用Dockerfile将构建制作ASP.NET Core应用程序镜像
1)、把源码复制到宿主机中进行编译、打包,最后并制作容器镜像。
2)、将打包、编译好的文件直接复制到宿主机中,制作容器镜像。
由于本次分享课程并不是零基础教学,课程的侧重点是实战运用,如何使用ASP.NET Core WebApi来构构建我们的跨平台API服务应用程序,所以课程中可能有些扩展的知识点并没有深度的讲解,阿笨也只是起到抛砖引玉的作用,所以需要大家在实际工作中不断的总结和完善。
关于我们的WebApi如何实现接口身份授权验证,如果大家感兴趣的话,也可以学习一下阿笨的《ASP.NET Core WebApi基于JWT实现接口授权验证》课程。
现在.NET Core的春天已经到来了,我们学习一门新技术一定要做到学以致用、学而时习之, 孔子说的好:学而不思则罔,思而不学则殆 ;一定要将我们所学的东西运用到实际项目当中去,实践是检验真理的唯一标准!一定要让我们的.NET Core跨平台开发技术落地到Linux生产环境当中去。
希望本次分享课程能够让大家有所收获!最后送大家一句话:希望大家在.NET Core的学习道路上一直跟着阿笨坚持下去。
作者:阿笨
官方QQ群:422315558 574187616 967920586
【网易云课堂主页】:https://study.163.com/provider/2544628/index.htm?share=2&shareId=2544628
【腾讯课堂主页】:https://abennet.ke.qq.com/
【微信公众号】:http://dwz.cn/ABenNET