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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章