一蒿赢、ASP.NET Core WebApi課程介紹
人生苦短奢方,我用.NET Core搔扁!提到Api接口,一般會(huì)想到以前用到的WebService和WCF服務(wù)蟋字,這三個(gè)技術(shù)都是用來(lái)創(chuàng)建服務(wù)接口稿蹲,只不過(guò)WebAPI用起來(lái)更簡(jiǎn)單,更輕量級(jí)鹊奖,更流行苛聘。構(gòu)建一個(gè)優(yōu)秀的API依賴于偉大的框架,今天我們的主角當(dāng)然是微軟的跨平臺(tái)輕量級(jí)HTTP服務(wù)框架——Asp.net Core WebApi嫉入。今天阿笨將給大家?guī)?lái)的分享課程是如何利用ASP.NET Core WebApi跨平臺(tái)開發(fā)技術(shù)構(gòu)建我們的API服務(wù)應(yīng)用程序并在部署運(yùn)行不同的OS系統(tǒng)平臺(tái)上焰盗,真真的體現(xiàn).NET Core的跨平臺(tái)強(qiáng)大之處:?實(shí)現(xiàn)一次編譯,多平臺(tái)部署運(yùn)行咒林!
1.1、本次分享課程包含知識(shí)點(diǎn)如下:
★與ASP.NET Core WebAPI的第一次親密接觸
★?ASP.NET Core WebAPI集成Swagger在線API接口文檔
★?ASP.NET Core WebAPI如何實(shí)現(xiàn)多接口版本控制
★?ASP.NET Core WebApi標(biāo)準(zhǔn)格式化統(tǒng)一輸出響應(yīng)報(bào)文數(shù)據(jù)?
★?ASP.NET Core WebApi標(biāo)準(zhǔn)格式化統(tǒng)一輸出異常報(bào)文數(shù)據(jù)?
★?開箱即用的BaseApiController工具基類爷光,WebApi你值得擁有★?ASP.NET Core WebApi開啟服務(wù)端跨域CORS
★?ASP.NET Core WebApi復(fù)雜參數(shù)傳遞使用技巧小結(jié)
★?客戶端(C/S,B/S)如何調(diào)用ASP.NET Core WebApi服務(wù)接口
★?如何在Docker容器中運(yùn)行ASP.NET Core應(yīng)用?1.2垫竞、正確的學(xué)習(xí)課程方式須知
1)、視頻+實(shí)例源代碼配套學(xué)習(xí),一千個(gè)讀者就有一千個(gè)哈姆雷特欢瞪,仁者見(jiàn)仁智者見(jiàn)智活烙!
2)、基礎(chǔ)理論和實(shí)戰(zhàn)演練相結(jié)合遣鼓,切記眼高手低啸盏。(備注:本課程不是完完全全的零基礎(chǔ)教學(xué),課程側(cè)重是實(shí)戰(zhàn)演練骑祟,因此需要大家結(jié)合自身的實(shí)際情況進(jìn)行選擇學(xué)習(xí))
3)回懦、在學(xué)習(xí)的過(guò)程中,我們少一點(diǎn)抱怨次企,將多一份收獲怯晕。
如果您在學(xué)習(xí)過(guò)程中遇到任何的課程問(wèn)題,請(qǐng)先私下直接找阿笨老師進(jìn)行在線的溝通和交流缸棵。謝謝大家的理解和支持舟茶,預(yù)祝大家學(xué)習(xí)快樂(lè)!
1.3堵第、本課程適合人群如下:
1)吧凉、有一定的ASP.NET Core開發(fā)基礎(chǔ)。
2)踏志、學(xué)習(xí)和了解ASP.Net Core跨平臺(tái)開發(fā)技術(shù)阀捅。
3)、喜歡阿笨分享的干貨課程童鞋們狰贯。
1.4也搓、一句話總結(jié)今天我們學(xué)習(xí)達(dá)到的目標(biāo):
如何使用基于ASP.NET Core WebApi跨平臺(tái)技術(shù)快速的來(lái)構(gòu)建API接口服務(wù)。
如果您同樣對(duì)本次分享《ASP.NET Core WebApi構(gòu)建API接口服務(wù)實(shí)戰(zhàn)演練》課程感興趣的話涵紊,那么請(qǐng)跟著阿笨一起學(xué)習(xí)吧傍妒。廢話不多說(shuō),直接上干貨摸柄,我們不生產(chǎn)干貨颤练,我們只是干貨的搬運(yùn)工。
二驱负、與ASP.NET Core WebAPI的第一次親密接觸
1嗦玖、本次分享課程環(huán)境說(shuō)明
1)、Visual Studio 2019企業(yè)版跃脊。
2)宇挫、.Net Core 3.0。
三酪术、ASP.NET Core WebAPI集成Swagger在線API接口文檔
Swashbuckle.AspNetCore 是一個(gè)開源項(xiàng)目器瘪,用于生成 ASP.NET Core Web API 的 Swagger 文檔翠储。
1、什么是Swagger橡疼?
Swagger是一個(gè)規(guī)范且完整的框架援所,提供描述、生產(chǎn)欣除、消費(fèi)和可視化RESTful API住拭,它是為了解決Web API生成有用文檔和幫助頁(yè)的問(wèn)題。
2历帚、為啥選用swagger?
1)它具有交互式文檔滔岳、客戶端SDK生成和API可發(fā)現(xiàn)性等優(yōu)點(diǎn)。
2)書寫api說(shuō)明文檔的工具有很多抹缕,但是能稱之框架只有swagger
使用程序包管理器控制臺(tái)窗口:
Install-Package Swashbuckle.AspNetCore
3澈蟆、為什么說(shuō)漂亮的在線API接口文檔漂亮?
1)卓研、支持接口自定義分組顯示趴俘。
2)、接口多版本與swagger的完美集成奏赘。
Install-Package Swashbuckle.AspNetCore.Swagger
Install-Package Swashbuckle.AspNetCore.SwaggerUi
Install-Package Swashbuckle.AspNetCore.SwaggerGen
四寥闪、ASP.NET Core WebAPI如何實(shí)現(xiàn)多接口版本控制
a)使用不同的 API 名稱
https://yuiter.com/api/Secret/Login? ?——1.0
https://yuiter.com/api/Secret/NewLogin ——2.0
b)在 Url 中標(biāo)明版本號(hào)
https://yuiter.com/api/v1/Secret/Login ——1.0
https://yuiter.com/api/v2/Secret/Login ——2.0
c)請(qǐng)求參數(shù)中添加版本信息
https://yuiter.com/api/Secret/Login?version=1 —— 1.0
https://yuiter.com/api/Secret/Login?version=2 —— 2.0
d)在 header 中標(biāo)明版本號(hào)
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標(biāo)準(zhǔn)格式化統(tǒng)一輸出響應(yīng)報(bào)文數(shù)據(jù)
1)磨淌、public ResponseResult<IEnumerable<WeatherForecast>> Get()
2)疲憋、[ApiResponseTyppeAttribute(typeof(ResponseResult<WeatherForecast>))]
? ? ? ? ? ?public IActionResult Get()
六、ASP.NET Core WebApi標(biāo)準(zhǔn)格式化統(tǒng)一輸出異常報(bào)文數(shù)據(jù)?
七梁只、開箱即用的BaseApiController工具基類缚柳,WebApi你值得擁有
八、ASP.NET Core WebApi開啟服務(wù)端跨域CORS
CORSCORS (Cross-Origin Resource Sharing搪锣, 跨源資源共享) 是W3C出的一個(gè)標(biāo)準(zhǔn)秋忙,其思想是使用自定義的 HTTP 頭部讓瀏覽器與服務(wù)器進(jìn)行溝通,從而決定請(qǐng)求或響應(yīng)是應(yīng)該成功构舟,還是應(yīng)該失敗灰追。CORS 與 JSONP 都可以做到跨源資源共享,但與 JSONP 不同狗超,CORS 可以支持除 GET 方式以外所有類型的 HTTP 請(qǐng)求弹澎。
? 在ASP.NET Core的應(yīng)用程序開發(fā)中,特別是開發(fā)ASP.NET Core Web API的接口程序會(huì)遇到跨域問(wèn)題努咐。這時(shí)我們需要開啟ASP.NET Core服務(wù)端的跨域(CORS)功能苦蒿,那么應(yīng)該如何開啟呢?
如果兩個(gè) Url 具有相同的方案渗稍、主機(jī)和端口刽肠,則它們具有相同的源溃肪。這兩個(gè) Url 具有相同的源:
https://example.com/foo.html
https://example.com/bar.html
這些 Url 的起源不同于前兩個(gè) 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跨域請(qǐng)求中攜帶cookie?
? },
? success: function (result) {
? ? $('#result').html(result.data);
? }
});
通過(guò)以上代碼簡(jiǎn)單的修改免胃,就實(shí)現(xiàn)了 CORS 音五。在實(shí)際的內(nèi)網(wǎng)或生產(chǎn)環(huán)境,可能會(huì)從運(yùn)維層面通過(guò) Nginx 或者其他的設(shè)置做到不修改代碼也能完美支持?
九羔沙、ASP.NET Core WebApi復(fù)雜參數(shù)傳遞使用技巧小結(jié)
十躺涝、客戶端(C/S,B/S)如何調(diào)用ASP.NET Core WebApi服務(wù)接口
十一、如何在Docker容器中運(yùn)行ASP.NET Core應(yīng)用
一扼雏、如何在不同操作系統(tǒng)中部署托管我們的ASP.NET Core應(yīng)用程序
ASP.NET Core部署在IIS和Linux系統(tǒng)中坚嗜,在前面的基礎(chǔ)課程中已經(jīng)給大家詳細(xì)的分享過(guò)了,這里就沒(méi)必要浪費(fèi)時(shí)間再次講解這塊了知識(shí)了诗充,不清楚的童鞋有興趣的話可以去學(xué)習(xí)一下苍蔬。《ASP.NET Core托管和部署Linux實(shí)操演練手冊(cè)》蝴蜓、《Linux+Nginx+Supervisor部署ASP.NET Core實(shí)操手冊(cè)》
二碟绑、如何將ASP.NET Core部署托管在Docker容器
在計(jì)算機(jī)技術(shù)日新月異的今天,?Docker?在國(guó)內(nèi)發(fā)展的如火如荼茎匠,特別是在一線互聯(lián)網(wǎng)公司格仲,?Docker?的使用是十分普遍的,甚至成為了一些企業(yè)面試的加分項(xiàng)诵冒。Docker?將應(yīng)用程序與該程序的依賴凯肋,打包在一個(gè)文件里面。運(yùn)行這個(gè)文件汽馋,就會(huì)生成一個(gè)虛擬容器侮东。程序在這個(gè)虛擬容器里運(yùn)行,就好像在真實(shí)的物理機(jī)上運(yùn)行一樣豹芯。有了?Docker?悄雅,就不用擔(dān)心環(huán)境問(wèn)題。 簡(jiǎn)單一句話:Docker它很火告组,作為開發(fā)人員有必要去學(xué)習(xí)和了解煤伟。
實(shí)現(xiàn)方法:如何采用Dockerfile將構(gòu)建制作ASP.NET Core應(yīng)用程序鏡像
1)、把源碼復(fù)制到宿主機(jī)中進(jìn)行編譯木缝、打包便锨,最后并制作容器鏡像。
2)我碟、將打包放案、編譯好的文件直接復(fù)制到宿主機(jī)中,制作容器鏡像矫俺。
十二吱殉、總結(jié)
由于本次分享課程并不是零基礎(chǔ)教學(xué)掸冤,課程的側(cè)重點(diǎn)是實(shí)戰(zhàn)運(yùn)用,如何使用ASP.NET Core WebApi來(lái)構(gòu)構(gòu)建我們的跨平臺(tái)API服務(wù)應(yīng)用程序友雳,所以課程中可能有些擴(kuò)展的知識(shí)點(diǎn)并沒(méi)有深度的講解稿湿,阿笨也只是起到拋磚引玉的作用,所以需要大家在實(shí)際工作中不斷的總結(jié)和完善押赊。
關(guān)于我們的WebApi如何實(shí)現(xiàn)接口身份授權(quán)驗(yàn)證饺藤,如果大家感興趣的話,也可以學(xué)習(xí)一下阿笨的《ASP.NET Core WebApi基于JWT實(shí)現(xiàn)接口授權(quán)驗(yàn)證》課程流礁。
現(xiàn)在.NET Core的春天已經(jīng)到來(lái)了涕俗,我們學(xué)習(xí)一門新技術(shù)一定要做到學(xué)以致用、學(xué)而時(shí)習(xí)之神帅,?孔子說(shuō)的好:學(xué)而不思則罔再姑,思而不學(xué)則殆 ;一定要將我們所學(xué)的東西運(yùn)用到實(shí)際項(xiàng)目當(dāng)中去找御,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)元镀!一定要讓我們的.NET Core跨平臺(tái)開發(fā)技術(shù)落地到Linux生產(chǎn)環(huán)境當(dāng)中去。
希望本次分享課程能夠讓大家有所收獲萎坷!最后送大家一句話:希望大家在.NET Core的學(xué)習(xí)道路上一直跟著阿笨堅(jiān)持下去凹联。