ASP.NET Core WebApi构建API接口服务实战演练

一、ASP.NET Core WebApi课程介绍

人生苦短,我用.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接口服务实战演练》课程感兴趣的话,那么请跟着阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

二、与ASP.NET Core WebAPI的第一次亲密接触

1、本次分享课程环境说明

1)、Visual Studio 2019企业版。

2)、.Net Core 3.0。

三、ASP.NET Core WebAPI集成Swagger在线API接口文档

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跨平台技术从入门到实战演练

四、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

五、ASP.NET Core WebApi标准格式化统一输出响应报文数据

1)、public ResponseResult<IEnumerable<WeatherForecast>> Get()

2)、[ApiResponseTyppeAttribute(typeof(ResponseResult<WeatherForecast>))]

           public IActionResult Get()

ASP.NET Core WebApi跨平台技术从入门到实战演练

六、ASP.NET Core WebApi标准格式化统一输出异常报文数据 

 

ASP.NET Core WebApi跨平台技术从入门到实战演练

七、开箱即用的BaseApiController工具基类,WebApi你值得拥有

八、ASP.NET Core WebApi开启服务端跨域CORS

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 WebApi复杂参数传递使用技巧小结

十、客户端(C/S,B/S)如何调用ASP.NET Core WebApi服务接口

十一、如何在Docker容器中运行ASP.NET Core应用

一、如何在不同操作系统中部署托管我们的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 跟着阿笨一起玩NET 574187616跟着阿笨一起玩NET(二) 967920586跟着阿笨一起玩ASP.NET 

      【网易云课堂主页】:https://study.163.com/provider/2544628/index.htm?share=2&shareId=2544628

      【腾讯课堂主页】:https://abennet.ke.qq.com/

      【微信公众号】:http://dwz.cn/ABenNET

发布了81 篇原创文章 · 获赞 11 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章