最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

如何使用AWS HTTP API創(chuàng)建API代理網(wǎng)關(guān)

2023-06-22 07:49 作者:曉楓Motivation  | 我要投稿

在當(dāng)今快節(jié)奏的世界中,各種服務(wù)和系統(tǒng)之間的無(wú)縫集成變得越來(lái)越重要。

將這些服務(wù)整合在一起時(shí),安全性也同樣重要。因此,有意義地設(shè)計(jì)應(yīng)用程序至關(guān)重要,這樣可以最大程度地減少不同系統(tǒng)之間的摩擦。

本文重點(diǎn)討論客戶端和其他后端服務(wù)之間的通信 - 無(wú)論是無(wú)服務(wù)器功能還是第三方 API。

無(wú)論您是開發(fā)人員、架構(gòu)師還是技術(shù)愛好者,本教程都將為您提供設(shè)置強(qiáng)大且可擴(kuò)展的 API 網(wǎng)關(guān)的知識(shí)和技能,從而簡(jiǎn)化客戶端和后端服務(wù)之間的通信。

(更|多優(yōu)質(zhì)內(nèi)|容:java567 點(diǎn) c0m)


基礎(chǔ)知識(shí)的簡(jiǎn)要回顧

在我們深入研究并了解 AWS HTTP API 簡(jiǎn)化 API 集成流程的潛力之前,讓我們快速回顧一下基本術(shù)語(yǔ)。

你們中的許多人可能了解 API 和代理網(wǎng)關(guān)是什么。也就是說,當(dāng)我們深入研究這些概念并試圖理解本質(zhì)細(xì)節(jié)和差異時(shí),事情可能會(huì)變得有點(diǎn)令人生畏。

API(應(yīng)用程序編程接口)是一種抽象,允許兩個(gè)程序相互通信。API 可以是 API 服務(wù)提供商以包或端點(diǎn)的形式公開的方法,通過該端點(diǎn)可以傳輸信息(REST API)。

代理網(wǎng)關(guān)是將傳入請(qǐng)求轉(zhuǎn)發(fā)到目標(biāo) URI 的網(wǎng)關(guān),而常規(guī)網(wǎng)關(guān)在客戶端和服務(wù)器之間來(lái)回發(fā)送信息。

代理網(wǎng)關(guān)也是屏蔽目標(biāo) URI 和 API 密鑰的好方法,否則如果直接從前端(瀏覽器)進(jìn)行網(wǎng)絡(luò)調(diào)用,這些目標(biāo) URI 和 API 密鑰就會(huì)暴露。

HTTP API 與 REST API – 有什么區(qū)別?

從技術(shù)上講,不存在“HTTP API”——這是 AWS 特有的。

在 AWS 上創(chuàng)建 API 網(wǎng)關(guān)時(shí),您可以創(chuàng)建 HTTP API 或 REST API。兩者之間的區(qū)別在于,后者在設(shè)計(jì) API 時(shí)提供了更大的靈活性,例如每個(gè)客戶端限制、請(qǐng)求驗(yàn)證、專用端點(diǎn)等。

為什么選擇 HTTP API 而不是 REST API?

如上所述,與 HTTP API 相比,REST API 提供了更大的靈活性和更細(xì)粒度的配置來(lái)設(shè)置 API。那么您為什么要使用 HTTP API 呢?

嗯,這并不總是與有多種選項(xiàng)可供選擇的靈活性有關(guān)——除非要求是具體的,否則在選擇正確的選項(xiàng)集時(shí)這通常會(huì)增加噪音。

另一方面,HTTP API 附帶有限的配置選項(xiàng),這可以幫助您以最少的決策構(gòu)建 API。

HTTP API 的另一個(gè)優(yōu)點(diǎn)是,它允許您將 JWT 授權(quán)者添加到網(wǎng)關(guān),這是 REST API 中不存在的。

如果您在應(yīng)用程序中使用第三方身份驗(yàn)證系統(tǒng),則使用 JWT 授權(quán)程序來(lái)保護(hù)您的 API 端點(diǎn)是有意義的。

最后,HTTP API 比 REST API 更便宜。

看看顯著特征,您應(yīng)該選擇兩者中的哪一個(gè)完全取決于您的要求。但模糊地說,HTTP API 對(duì)于小型、非業(yè)務(wù)關(guān)鍵型應(yīng)用程序來(lái)說是一個(gè)不錯(cuò)的選擇。

如何創(chuàng)建 HTTP 代理網(wǎng)關(guān)并與目標(biāo) URI 集成

是時(shí)候讓我們動(dòng)手了。

導(dǎo)航到您的 AWS 控制臺(tái)并搜索“API Gateway”。

在 AWS 控制臺(tái)上找到 API Gateway

單擊“創(chuàng)建 API”將向您顯示各種可用的 API 類型。單擊 HTTP API 上的“構(gòu)建”。

在 HTTP API 上選擇“構(gòu)建”

輸入 API 名稱并單擊“審核并創(chuàng)建”?;蛘?,您可以輸入其他必需的配置信息,但暫時(shí)忽略它,我們將在下面詳細(xì)介紹配置。

創(chuàng)建安全代理網(wǎng)關(guān)分為 3 個(gè)部分:

  1. 定義路線

  2. 添加集成

  3. 附加授權(quán)者

讓我們更詳細(xì)地討論每一項(xiàng)。

如何定義路線

路由是與資源操作或目標(biāo) URI 相對(duì)應(yīng)的路徑端點(diǎn)。

通過在路由中定義路徑變量,可以將動(dòng)態(tài)值發(fā)送到路由。路徑變量是通過在路徑變量周圍添加花括號(hào)來(lái)定義的,如下所示:/getmusic/{track}。

上面的路由中 ?{track}是可以用任何值替換的路徑變量。

一條路由可以有任意數(shù)量的路徑變量。但是,重要的是要知道查詢參數(shù)不能添加到路由定義中。

定義API代理網(wǎng)關(guān)的路由

還要確保為定義的路線選擇適當(dāng)?shù)姆椒?。為了?jiǎn)單起見,您可以考慮使用“GET”。

如何添加集成

這可能是創(chuàng)建代理網(wǎng)關(guān)中最重要的步驟。

這里具有挑戰(zhàn)性的部分是在傳入和傳出請(qǐng)求之間創(chuàng)建動(dòng)態(tài)值的正確映射。令人驚訝的是,沒有任何教程、文檔或指南來(lái)解決這個(gè)問題,所以我希望這會(huì)有所幫助。

單擊新定義的路由的方法后,您可以在右側(cè)窗格中看到路由詳細(xì)信息。

您可能會(huì)注意到該路線沒有附加任何集成。單擊“附加集成”,然后單擊“創(chuàng)建并附加集成”。

創(chuàng)建并附加集成屏幕

在集成類型中,選擇“HTTP URI”,因?yàn)槲覀兊哪繕?biāo)是創(chuàng)建一個(gè)代理網(wǎng)關(guān),將請(qǐng)求轉(zhuǎn)發(fā)到目標(biāo)第三方 API。

從選項(xiàng)中選擇“HTTP URI”

輸入您的目標(biāo) URI 并選擇與傳入請(qǐng)求相同的方法,以便使用適當(dāng)?shù)姆椒ㄞD(zhuǎn)發(fā)請(qǐng)求。

注意:在目標(biāo) URI 中,您應(yīng)該僅添加 API 的域,而不是帶有查詢參數(shù)的整個(gè)路徑,因?yàn)檫@是我們將通過參數(shù)映射構(gòu)建的內(nèi)容。

例如,假設(shè)我們想按曲目名稱獲取曲目列表。

在這種情況下,您的輸入端點(diǎn)可能是:

?/getmusic/{track}

根據(jù)您使用的第三方 API,目標(biāo) URI 可能類似于:

?http://api.musixmatch.com/ws/1.1/track.search?q_track={track}

我們的目標(biāo)是確保為track路徑變量發(fā)送的值正確替換為傳出請(qǐng)求的查詢參數(shù)中的實(shí)際值。

奇怪的是,如果我們將目標(biāo) URI 定義為/ws/1.1/track.search?q_track={track},該{track}變量不會(huì)被實(shí)際值替換。

相反,文本字符串{track}按查詢參數(shù)值的原樣發(fā)送,無(wú)論您請(qǐng)求什么,都會(huì)獲取相同的錯(cuò)誤結(jié)果集。

為了避免這個(gè)陷阱,我們不在目標(biāo) URI 中定義完整路徑。


如您所見,在集成詳細(xì)信息部分下方,有一個(gè)參數(shù)映射規(guī)則,目前為空。單擊“創(chuàng)建”開始添加映射規(guī)則。

接下來(lái),選擇映射類型為“所有傳入請(qǐng)求”,然后選擇“添加新映射”。

為了創(chuàng)建映射規(guī)則,您需要注意以下三件事:

  • 應(yīng)該修改什么

  • 應(yīng)該如何修改

  • 修改后的值應(yīng)該是多少

應(yīng)該修改什么?通常,所有 API 端點(diǎn)都會(huì)有一個(gè)以域部分為后綴的路徑,例如v1/,這在我們的代理網(wǎng)關(guān)端點(diǎn)中是多余的。所以我們想從覆蓋路徑開始。

該值是靜態(tài)類型的值,以符合 URI 路徑。

以上述API為例,該值應(yīng)為:

?/ws/1.1/track.search

URI 的動(dòng)態(tài)部分是軌道值,它是查詢參數(shù)。

接下來(lái),我們需要附加一個(gè)保存動(dòng)態(tài)值的查詢參數(shù)。

為此,請(qǐng)單擊“添加新映射”并選擇querystring.<querystring_name>要修改的參數(shù),然后選擇“附加”。

在值輸入字段中,輸入$request.path.track傳入{track}請(qǐng)求中的路徑變量名稱。有關(guān)語(yǔ)法的更多信息,請(qǐng)參閱 AWS 的此文檔。

總而言之,您的映射規(guī)則現(xiàn)在應(yīng)該如下所示:

參數(shù)映射規(guī)則

單擊“創(chuàng)建”,現(xiàn)在您的 API 代理網(wǎng)關(guān)應(yīng)該可以使用了。耶!

您可以通過將查詢字符串作為新映射附加到路徑來(lái)類似地附加其他查詢參數(shù)。例如,API 密鑰通常作為查詢參數(shù)發(fā)送。

此外,還可以在傳出請(qǐng)求中發(fā)送標(biāo)頭和正文。

如何附加授權(quán)者

盡管在測(cè)試 API 網(wǎng)關(guān)時(shí)附加授權(quán)者不是強(qiáng)制性的,但絕對(duì)建議在生產(chǎn)中保護(hù)它們。

如果您使用的是 Google Authenticator 等第三方身份驗(yàn)證服務(wù)或類似服務(wù),HTTP API 網(wǎng)關(guān)提供了一種基于 JWT 令牌管理路由授權(quán)的簡(jiǎn)單方法。

從左側(cè)菜單導(dǎo)航到“授權(quán)”頁(yè)面,然后單擊“創(chuàng)建并附加授權(quán)人”。默認(rèn)情況下,“授權(quán)者類型”選擇為 JWT。


輸入所需的信息,例如名稱、發(fā)行者 URL 和受眾。值和格式根據(jù)您使用的身份驗(yàn)證服務(wù)而有所不同。

包起來(lái)

本文的關(guān)鍵在于強(qiáng)調(diào)使用參數(shù)映射構(gòu)建路徑,而不是直接在路徑中定義路徑并期望奇跡發(fā)生。

我注意到的一個(gè)缺點(diǎn)是,當(dāng)外出請(qǐng)求中定義了多個(gè)路徑變量時(shí),參數(shù)映射不起作用。因此,確保傳出請(qǐng)求最多具有一個(gè)路徑參數(shù)非常重要。

HTTP API 網(wǎng)關(guān)是一種以最少的配置設(shè)置代理/非代理網(wǎng)關(guān)的快速、簡(jiǎn)單的方法。

就這樣,伙計(jì)們!我希望這可以幫助您獲得一些有關(guān)創(chuàng)建 HTTP API 網(wǎng)關(guān)和使用參數(shù)映射構(gòu)建路徑的知識(shí)。與可能有興趣閱讀本文的朋友和熟人分享。

(更|多優(yōu)質(zhì)內(nèi)|容:java567 點(diǎn) c0m)


如何使用AWS HTTP API創(chuàng)建API代理網(wǎng)關(guān)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
静海县| 宕昌县| 祁连县| 马关县| 朝阳区| 深圳市| 西乌珠穆沁旗| 额敏县| 曲靖市| 九龙县| 新田县| 盐津县| 临武县| 德江县| 光山县| 南丹县| 渝中区| 修文县| 东明县| 巴东县| 南阳市| 梁山县| 鹰潭市| 霸州市| 大新县| 德庆县| 湖口县| 论坛| 泸州市| 义乌市| 甘肃省| 铜鼓县| 深水埗区| 南岸区| 花垣县| 万安县| 龙陵县| 翁牛特旗| 舞阳县| 准格尔旗| 晋州市|