自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

構(gòu)建和運(yùn)行前端 API 的七個(gè)關(guān)鍵注意事項(xiàng)

開發(fā) 前端
前端開發(fā)人員希望構(gòu)建出色的體驗(yàn),然而,他們需要來自后端的數(shù)據(jù)并對(duì)后端執(zhí)行操作。他們的問題的答案是 API。誰構(gòu)建了這些 API? 它們是快速構(gòu)建還是前端開發(fā)人員等待? 誰運(yùn)行和管理 API? 畢竟,后端的行為方式并不統(tǒng)一——它們說不同的語言,發(fā)出不同形狀的數(shù)據(jù),有不同的身份驗(yàn)證要求等等。因此,運(yùn)行和管理前端 API 并非易事。

以下是你通過作為前端和后端之間的齒輪箱的 API 思考時(shí)的一些注意事項(xiàng)。

1. API 的形狀很重要

是否有一種 API 語言比 REST API 的“你從 JSON 響應(yīng)中得到什么”更靈活,并且比“隨心所欲”更適合作為 SQL 構(gòu)造?原來有GraphQL。對(duì)于前端開發(fā)人員來說,這太棒了。對(duì)于構(gòu)建 API 的人來說,這同樣很棒。為什么?因?yàn)樗试S連接點(diǎn)、自動(dòng)文檔和“需要時(shí)抽象;不需要時(shí)詳細(xì)?!蔽覐?qiáng)烈建議將 GraphQL 實(shí)現(xiàn)為這些變速箱 API 的形狀。

2. 抽象后端很重要

從根本上說,前端應(yīng)用程序并不關(guān)心數(shù)據(jù)來自哪里,他們只想要數(shù)據(jù)。這意味著無論數(shù)據(jù)來自 REST 端點(diǎn)、SQL 數(shù)據(jù)庫(kù)、NoSQL 數(shù)據(jù)庫(kù)、GraphQL 后端,甚至是 WSDL/XML 后端,前端都不應(yīng)該關(guān)心。如果有兩個(gè)不同的后端將數(shù)據(jù)輸入一個(gè)通用類型,那就這樣吧,前端不應(yīng)該關(guān)心。

3. 性能和可靠性問題

有兩種方法可以做 API。要么每個(gè) API 都承擔(dān)著處理性能(“讓我引入緩存”)或錯(cuò)誤(“這個(gè)后端有時(shí)會(huì)發(fā)出錯(cuò)誤數(shù)據(jù),讓我編寫邏輯來繞過它”)的負(fù)擔(dān),或者每個(gè) API 都聲明它的內(nèi)容這樣做,系統(tǒng)就會(huì)觀察并做正確的事情。第二種模式更可取——想想 SQL,你不編碼錯(cuò)誤條件或性能。相反,數(shù)據(jù)庫(kù)試圖并且?guī)缀蹩偸亲稣_的事情。

4. 如何構(gòu)建 API 很重要

前端團(tuán)隊(duì)的需求隨著客戶和市場(chǎng)的需求而不斷發(fā)展。并且同時(shí)存在多個(gè)前端需求。跟上這一切并不容易。當(dāng)然,你可以啟動(dòng)一個(gè)程序,對(duì)其進(jìn)行編碼,并隨著需求的發(fā)展來管理其生命周期。該程序承擔(dān)了性能、可靠性等方面的負(fù)擔(dān)。或者,你可以使用聲明性構(gòu)造構(gòu)建 API — 使用來自后端 Y 的調(diào)用實(shí)現(xiàn)類型 X。類型 Z 使用此字段連接到類型 X。聲明式構(gòu)造允許快速構(gòu)建 API。聲明式結(jié)構(gòu)還有另外兩個(gè)真正有用的目的:(i)它們使業(yè)務(wù)邏輯遠(yuǎn)離前端 API 和(ii)它們導(dǎo)致更好的部署和運(yùn)行時(shí)特性,因?yàn)樗菀淄评砗筒扇⌒袆?dòng),一個(gè)使用聲明性構(gòu)造構(gòu)建的 API。

5. 部署和運(yùn)行時(shí)特性很重要

啟動(dòng)并運(yùn)行 API 很重要,但是到達(dá)那個(gè)點(diǎn)的路比前面的路要短得多。后端永遠(yuǎn)不穩(wěn)定,密鑰被撤銷,不良數(shù)據(jù)被發(fā)出,程序需要擴(kuò)展,需要監(jiān)控性能,誰在這樣做? API 團(tuán)隊(duì)越來越多地采用 API 即服務(wù)作為這些日常運(yùn)營(yíng)問題的解決方案。

6. API 安全問題

API 為前端團(tuán)隊(duì)提供了很大的靈活性和對(duì)數(shù)據(jù)的訪問,他們?cè)试S他們建立很棒的體驗(yàn),但是現(xiàn)在,需要做些什么來確保不發(fā)生壞事呢?你有后端密鑰要管理,你可以管理前端訪問控制,如果你決定使用 GraphQL,你會(huì)更加頭疼“我的突變端點(diǎn)不應(yīng)該可訪問”或“瀏覽器是否更改了查詢參數(shù)并且現(xiàn)在正在詢問不應(yīng)該訪問的數(shù)據(jù)?” API 管理可以解決一些問題,但一般來說,GraphQL 和后端密鑰相關(guān)的問題無法通過圍繞你的 API 進(jìn)行分層 API 管理來解決。

7. 這是API管理嗎?

API 管理不應(yīng)與 API 混淆。雖然許多 API 管理產(chǎn)品允許你在其工具中構(gòu)建 API,但你越來越希望在適合該 API 的工具中構(gòu)建 API。例如,如果你的 API 是 GraphQL,你需要一個(gè)工具來幫助你構(gòu)建和運(yùn)行設(shè)計(jì)良好且性能良好的 GraphQL API。然后,你可能希望在開發(fā)門戶、分析和一些使用 API 管理的前端密鑰管理中分層。

結(jié)論

好的 GraphQL 端點(diǎn)必須平衡很多東西。我相信 GraphQL 真的很強(qiáng)大,對(duì)于前端和后端開發(fā)人員來說都是一個(gè)不錯(cuò)的選擇,但是 GraphQL 是新的,構(gòu)建 GraphQL API 的開發(fā)人員必須認(rèn)識(shí)到最佳實(shí)踐和權(quán)衡,他們必須做出有意識(shí)的決定來做正確的事。最終,推動(dòng)平衡的系統(tǒng)和工具將成為構(gòu)建開發(fā)人員和使用 GraphQL API 的開發(fā)人員的最佳工具。


責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2019-07-10 11:35:46

防火墻技術(shù)云計(jì)算

2021-11-16 10:35:59

云計(jì)算云計(jì)算環(huán)境云應(yīng)用

2020-01-17 19:33:11

人工智能AI深度學(xué)習(xí)

2018-05-17 13:59:28

IT顧問

2022-03-03 14:06:14

數(shù)據(jù)中心IT技術(shù)

2023-11-22 11:18:04

數(shù)據(jù)中心數(shù)字化

2022-02-24 14:50:00

數(shù)據(jù)中心IT升級(jí)

2020-08-26 19:06:43

物聯(lián)網(wǎng)IoT大規(guī)模部署

2012-04-16 10:16:07

云計(jì)算私有云IaaS

2010-11-15 09:17:25

MySQL轉(zhuǎn)換Orac

2012-03-12 16:46:22

NoSQL數(shù)據(jù)庫(kù)

2023-01-30 17:37:18

Kubernete多租戶vcluster

2010-09-01 09:39:07

CSS

2011-05-26 11:22:04

SEO

2025-01-07 13:30:33

2023-12-04 11:57:59

數(shù)據(jù)中心

2024-11-15 10:00:00

Python爬蟲開發(fā)

2010-10-26 17:28:15

創(chuàng)建Oracle索引

2009-12-30 14:14:39

PPPoA體系

2020-08-10 15:16:27

數(shù)據(jù)中心電源監(jiān)控自動(dòng)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)