一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP.NET教程 - WebAPI 實(shí)現(xiàn)前后端分離的示例

WebAPI 實(shí)現(xiàn)前后端分離的示例

2020-05-22 12:31禿驢竟敢跟貧道搶師太 ASP.NET教程

下面小編就為大家分享一篇WebAPI 實(shí)現(xiàn)前后端分離的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

隨著Web技術(shù)的發(fā)展,現(xiàn)在各種框架,前端的,后端的,數(shù)不勝數(shù)。全棧工程師的壓力越來(lái)越大。

現(xiàn)在的前端的框架,既可以做各種Web,又可以做各種APP,前端框架更新?lián)Q代越來(lái)越快,越來(lái)越多。

傳統(tǒng)的模式

前端和后端進(jìn)行調(diào)試,修改都非常麻煩。往往前端配合后端很痛苦,后端也嫌前端麻煩。

(無(wú)解,能動(dòng)手解決的事,盡量別動(dòng)嘴。辦公室應(yīng)該常備一些,繃帶,止血條,速效救心丸等藥品。為了阻止事態(tài)升級(jí),辦公室要加強(qiáng)刀具管制條例。)

前后端分離

前端根據(jù)事先約定好的文檔,可以自己摸擬數(shù)據(jù),然后開(kāi)發(fā),測(cè)試,調(diào)試UI,發(fā)布到線上時(shí)把API接口改成線上API接口,即可完事。

前端日后增加新功能,修改UI,自己修改,自己編譯更新自己UI站點(diǎn),發(fā)布線上只要調(diào)上線上API接口即可。并不需要麻煩到后端。兩者工作進(jìn)行分離。

后端需要跟前端商量好接口,寫好接口文檔,在接口功能上相互溝通(其實(shí)相當(dāng)于需求相互溝通),一旦接口文檔訂好之后,只需按事先約定實(shí)現(xiàn)API接口即口。把項(xiàng)目編譯好發(fā)布到線上服務(wù)器。即可完事。

后端實(shí)現(xiàn)WebApi接口,還可以面對(duì)各種調(diào)用,如PC端web,手機(jī)APP,或者其它設(shè)備。一個(gè)接口多種調(diào)用,實(shí)現(xiàn)代碼去重。

工作模式分析

對(duì)前端和后端進(jìn)行分離。各司其職,各自在自己的領(lǐng)域集中精力研究。更能有效的加深技術(shù)深度。

前后端分離的模式,你需要N名前端工程師和N名后端工程師。

首先我們要約定一些返回基本的格式,比如用XML,還是JSON。結(jié)果大多數(shù)前端都是喜歡JSON,因?yàn)镴S天生就支持JSON。

我貼出一些示例代碼:

?
1
2
3
4
5
{
 "ResultCode": 1300,
 "Message":"權(quán)限不足",
 "Data":null,
 }
?
1
2
3
4
5
6
7
8
9
{
 "ResultCode": 1600,
 "Message":"邏輯異常",
 "Data":null,
 "DetailError":{
 "ErrCode":1601001,
 "ErrMsg":"金額必須大于>0"
 }
 }

返回參數(shù)說(shuō)明

 

參數(shù)名

類型

是否必有

說(shuō)明

ResultCode

int

返回碼

Message

string

結(jié)果說(shuō)明

DetailError

josn

具體錯(cuò)誤

Data

josn

數(shù)據(jù)

 

ResultCode

 

ResultCode

說(shuō)明

1000

成功

1100

服務(wù)器異常

1200

身份驗(yàn)證異常

1300

權(quán)限不足

1400

傳遞參數(shù)驗(yàn)證不通過(guò)

1500

版本異常

1600

業(yè)務(wù)邏輯異常

1700

系統(tǒng)成升級(jí)中

1800

該接口己棄用

 

具體異常

這是一個(gè)有點(diǎn)爭(zhēng)議的地方,有很多業(yè)務(wù)邏輯異常,出于對(duì)用戶的友好提示。一些生澀難懂的錯(cuò)誤提示,直接給到用戶,用戶一臉懵逼。但是后端卻不能修改成友好提示,這樣不方便調(diào)試,尋找問(wèn)題原因。

一般來(lái)講,前端可以自動(dòng)修改友好提示給用戶。

如果后端返回字符串,前端寫死在代碼中,萬(wàn)一,某一天后端認(rèn)為這個(gè)描述更符合場(chǎng)景,修改的字符串。敵軍還有30秒到達(dá)戰(zhàn)場(chǎng)。

建議:盡量使用異常代碼,大家可以看到上面貼出例子,就使用的異常代碼。每種異常都有唯一編號(hào),描述可以更改。但是編號(hào)不變。

 

用戶異常(1601000)

說(shuō)明

1601001

賬號(hào)/密碼錯(cuò)誤

1601002

賬號(hào)被冰凍

1601003

原密碼不對(duì)

 

版本控制

每個(gè)API都有一個(gè)版本,其實(shí)也是就針對(duì)APP,如果是WEB端的,都是直接升級(jí)的因?yàn)锽/S結(jié)構(gòu)本身就是存在升級(jí)方便的優(yōu)勢(shì),只需要把服務(wù)端更新就可以了。

版本控制一般用兩種方式

第一種:URL不變,版本寫在HTTP標(biāo)頭內(nèi)面。

第二種:版本寫在URL上面。

本人推薦第二種,比較直接方便了解。示例:

?
1
2
3
http://www.xxx.com/版本號(hào)
當(dāng)前版本號(hào):v1
http://www.baidu.com/v1/UserSecurity/Login

API風(fēng)格

現(xiàn)在流行的api風(fēng)格比較多,最出名的就是restful風(fēng)格。

按本人的經(jīng)驗(yàn),完全走restful風(fēng)格是很困難的,可能也是水平問(wèn)題,在團(tuán)隊(duì)內(nèi)面也要考慮到其它成員的水平問(wèn)題。我們目前API風(fēng)格還是保留以前風(fēng)格。

示例,V*代表版本號(hào)

http://xx.com/V*/UserSecurity/SignOut

HTTP謂詞

使用 Post 方法在服務(wù)器上創(chuàng)建/修改/刪除資源

使用 Get 方法從服務(wù)器檢索某個(gè)資源或者資源集合

基本命名規(guī)則

使用駱駝式命名法-大駝峰法

跨域處理

前端站點(diǎn)和后端API布署到不同的站點(diǎn),就會(huì)產(chǎn)生跨域問(wèn)題。

什么是同源策略?

同源是域名,協(xié)議,端口相同。也就是說(shuō)如果不同,則是非同源。

同源策略是瀏覽器的一基本的安全功能,非同源訪問(wèn),瀏覽器會(huì)進(jìn)行拒絕。

HMTL上面的SRC地址,你可以指定任何URL,表單提交,你可以提交到任何URL。

但是,你如果使用AJAX技術(shù),就會(huì)受到同源策略的影響,拒絕提交。

現(xiàn)代瀏覽器幾乎都支持跨域資源請(qǐng)求的一種方式。這種技術(shù)叫CORS(跨域資源共享)

CORS跨域分兩種

第一種,簡(jiǎn)單跨域。

第二種,復(fù)雜跨域。

解決方案:HTTP輸出標(biāo)頭增加如何節(jié)點(diǎn)

注意有前端框架版本,對(duì)安全要求較高,不能使用通配符*,要指定跨域域名。

?
1
Access-Control-Allow-Origin:*

下面節(jié)點(diǎn)可填,可不填,根據(jù)實(shí)際情況,自行決定。

?
1
2
3
Access-Control-Allow-Methods:GET,POST,OPTIONS
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:根據(jù)請(qǐng)求頭的內(nèi)容,填寫

注意:復(fù)雜跨域比要簡(jiǎn)單跨域麻煩,更花費(fèi)性能。因?yàn)閺?fù)雜跨域在請(qǐng)求之前會(huì)先發(fā)一個(gè)options預(yù)請(qǐng)求,根據(jù)響應(yīng)判斷服務(wù)器是否支持跨域。也就是說(shuō),實(shí)際上請(qǐng)求了兩次。

Cookies作用域

不同的站點(diǎn),如何通用Cookies?

一般情況只需把cookies作用域設(shè)置頂級(jí)域名,瀏覽器會(huì)自動(dòng)把cookies在訪問(wèn)子域名的時(shí)候捎上去。

示例,訪問(wèn)二級(jí)域名時(shí)候,cookies默認(rèn)會(huì)被傳送過(guò)去。

?
1
2
3
4
5
頂級(jí)域名:baidul.com
cookies作用域:.baidu.com
二級(jí)域名:
www.baidu.com
api.baidu.com

示例

下面貼一些示例文檔,其它的就不多講啦

WebAPI 實(shí)現(xiàn)前后端分離的示例

WebAPI 實(shí)現(xiàn)前后端分離的示例

WebAPI 實(shí)現(xiàn)前后端分離的示例

基本上,WebApi前后端分離的細(xì)節(jié)和注意點(diǎn),都記錄下來(lái),還有更多的細(xì)節(jié),需要讀者在開(kāi)發(fā)過(guò)程自己去尋找答案。隨筆完畢!

以上這篇WebAPI 實(shí)現(xiàn)前后端分離的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://www.cnblogs.com/NET-BLOG/p/8286918.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 羞羞色男人的天堂伊人久久 | ak福利午夜在线观看 | 被调教的校花 | 国产高清在线精品一区 | 国产青色 | 丝袜老师好湿好紧我要进去了 | 欧美三级一区二区 | 成人免费视频播放 | 久久精品麻豆国产天美传媒果冻 | 精精国产xxxx视频在线播放器 | 小草观看免费高清视频 | 韩国黄色网址 | 亚洲第一网站免费视频 | 亚洲国产精品自产在线播放 | 亚洲一区 在线播放 | 亚洲精品老司机福利在线播放 | 手机看片自拍自自拍日韩免费 | 亚洲精品丝袜在线一区波多野结衣 | 欧美亚洲国产综合在线 | 色综合久久最新中文字幕 | 四虎影院com| poren18日本老师hd | 女老板用丝袜脚夹我好爽 | 精品欧美日韩一区二区三区 | 日本在线色 | 国产亚洲欧美日韩综合综合二区 | 日韩在线视频二区 | 欧美草逼视频 | 成人国产在线视频 | 日本精品一二三区 | 国产专区日韩精品欧美色 | 荡娃艳妇系列小说 | 亚洲视屏在线观看 | 国产一级片免费视频 | 热久久最新 | 久久精品无码人妻无码AV蜜臀 | 国产高清在线精品一区二区 | 国产品精人成福利视频 | 午夜第一页| 国产综合久久久久久 | 奇米777四色精品综合影院 |