偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Supergraph:API編排和組合的解決方案

開發(fā) 前端
Supergraph 架構(gòu)框架 (SAF),源于我們?cè)诼?lián)邦數(shù)據(jù)訪問和 GraphQL 聯(lián)邦方面的經(jīng)驗(yàn),通過提出構(gòu)建域 API(子圖)和數(shù)據(jù)訪問 API 平臺(tái)( SUPERGRAPH )的策略來解決這些挑戰(zhàn)。

在本系列的上一篇文章中,我們討論了在企業(yè)數(shù)據(jù)環(huán)境中構(gòu)建和使用 API 的復(fù)雜性。這些環(huán)境涉及由不同團(tuán)隊(duì)管理的多個(gè)數(shù)據(jù)域和眾多應(yīng)用程序,由于資源受限和目標(biāo)沖突,導(dǎo)致挑戰(zhàn)。

譯自Supergraph: A Solution for API Orchestration and Composition,作者 Sandip Devarkonda。

Supergraph 架構(gòu)框架 (SAF),源于我們?cè)诼?lián)邦數(shù)據(jù)訪問和 GraphQL 聯(lián)邦方面的經(jīng)驗(yàn),通過提出構(gòu)建域 API(子圖)和數(shù)據(jù)訪問 API 平臺(tái)( SUPERGRAPH )的策略來解決這些挑戰(zhàn)。

該框架提供了一個(gè)團(tuán)隊(duì)協(xié)作的操作模型,充當(dāng)具有 API 生產(chǎn)者和消費(fèi)者的 API 市場(chǎng)。它簡化了 API 生產(chǎn)者的加入,為消費(fèi)者提供高質(zhì)量的 SUPERGRAPH  API,并強(qiáng)調(diào)具有過濾、排序和分頁等功能的高質(zhì)量域 API。

SAF 為聯(lián)邦域所有權(quán)的操作模型和系統(tǒng)設(shè)計(jì)奠定了基礎(chǔ)。在企業(yè)數(shù)據(jù)和 API 環(huán)境中,這有助于解決聯(lián)邦數(shù)據(jù)訪問的挑戰(zhàn),并使 API 編排和 API 組合等用例更容易解決。

API 編排

API 編排涉及管理多個(gè) API 調(diào)用,并對(duì)請(qǐng)求和結(jié)果進(jìn)行排序以執(zhí)行復(fù)雜的任務(wù)或工作流。在我們的參考上下文中,API 編排的示例可能涉及以下順序:

  • 餐廳 API: 檢查菜單和可用性。
  • 支付 API: 處理付款。
  • 配送 API: 安排配送。

編排層按順序處理這些步驟,確保每個(gè)步驟在移至下一步之前成功完成,并將它們的響應(yīng)組合成一個(gè)單一的、連貫的用戶結(jié)果。

圖片圖片

API 編排的挑戰(zhàn)

編排主要由 API 消費(fèi)者根據(jù)最終用戶需求驅(qū)動(dòng)。它具有挑戰(zhàn)性,因?yàn)樗ǔ?缭蕉鄠€(gè)域。使用傳統(tǒng)方法進(jìn)行編排需要與聚合相同的“粘合”代碼/端點(diǎn)——只是在這種情況下,這種粘合更復(fù)雜,正如我們從示例中看到的那樣。編排通常還涉及多個(gè)變異,這進(jìn)一步加劇了挑戰(zhàn)。

我們?cè)俅斡龅搅怂袡?quán)的挑戰(zhàn):消費(fèi)者團(tuán)隊(duì)是否應(yīng)該擁有編排代碼?該團(tuán)隊(duì)是否具備構(gòu)建高性能編排端點(diǎn)所需的技能?這些都是需要解決的操作挑戰(zhàn),以便在域 API/數(shù)據(jù)之上構(gòu)建強(qiáng)大的編排層。

解決 API 編排挑戰(zhàn)

一個(gè)好的 API 平臺(tái)必須提供語義來定義可能與業(yè)務(wù)邏輯函數(shù)交織在一起的復(fù)雜工作流。類似于 SUPERGRAPH 架構(gòu)允許域 CRUD API 和業(yè)務(wù)邏輯之間建立關(guān)系的方式,API 調(diào)用的響應(yīng)可以鏈接到可以獨(dú)立運(yùn)行的函數(shù)(甚至可以從 SUPERGRAPH 調(diào)用其他 CRUD API)或反之亦然。

這種能力的基礎(chǔ)是,來自任何來源(數(shù)據(jù)庫、API 等)的每條數(shù)據(jù)和業(yè)務(wù)邏輯代碼中的類型都在 SUPERGRAPH 的語義層上標(biāo)準(zhǔn)化。這使 SUPERGRAPH 能夠?yàn)殚_發(fā)人員(包括 API 消費(fèi)者)提供語義,以便他們僅使用聲明性配置來表達(dá)工作流。

與 Camunda、Orkus、Temporal 等第三方編排軟件的集成使開發(fā)人員的體驗(yàn)更加無縫。閱讀有關(guān)API 編排的更多信息。

問題

解決方案

新的工作流需要新的編排端點(diǎn)。

SUPERGRAPH 要求 API 消費(fèi)者能夠使用聲明性配置自助服務(wù)對(duì)新工作流的需求。

編寫工作流需要后端系統(tǒng)工程知識(shí)。

SUPERGRAPH 配置是聲明性的,這使構(gòu)建可擴(kuò)展工作流的能力民主化。

API 組合

API 組合可以被認(rèn)為是 API 集成和編排的特殊情況(或演變),它指的是將多個(gè) API 響應(yīng)組合成單個(gè)統(tǒng)一響應(yīng)的技術(shù),該響應(yīng)包含來自不同調(diào)用的分層信息。換句話說,組合以一種連貫的方式從不同的來源獲取相關(guān)數(shù)據(jù)——因此,對(duì)于讀取操作來說,它是聚合和編排。API  組合的一個(gè)例子是以下關(guān)于我們食品配送應(yīng)用程序用戶的示例數(shù)據(jù):

  1. 用戶的過去訂單。
  2. 對(duì)于每個(gè)訂單,獲取有關(guān)放置訂單的餐廳的一些信息。
  3. 對(duì)于每個(gè)訂單,獲取支付信息。

獲取這些信息涉及按順序向三個(gè)不同的域發(fā)出請(qǐng)求,在每一步使用上一步的響應(yīng),最后將整個(gè)結(jié)果集組合成一個(gè)單一的層次化響應(yīng),該響應(yīng)表示三個(gè)實(shí)體(訂單、餐廳和支付)之間的關(guān)系。

API 組合面臨的挑戰(zhàn)以及如何解決

Supergraph(QL) 架構(gòu)主張了解底層來源或域,并在異構(gòu)來源集中進(jìn)行標(biāo)準(zhǔn)化。這使得 supergraph 可以提供 API  組合自助服務(wù)模型,而無需任何自定義開發(fā),方法是提供以下兩種功能:

  1. 連接: 從 A 獲取數(shù)據(jù),并從 B 獲取相關(guān)數(shù)據(jù)。
  2. 嵌套過濾器: 從 A 獲取數(shù)據(jù),并根據(jù)其相關(guān)數(shù)據(jù) B 的屬性值進(jìn)行過濾。

問題

解決方案

每個(gè)數(shù)據(jù)組合排列都需要一個(gè)組合端點(diǎn)。

supergraph 通過跨來源數(shù)據(jù)的聲明式關(guān)系定義來自動(dòng)執(zhí)行組合。如果可以從程序上推斷出來自同一來源的關(guān)系,則 supergraph 可以自動(dòng)執(zhí)行此操作。

創(chuàng)作工作流需要了解后端系統(tǒng)工程。

supergraph 配置是聲明式的,這使得工程師能夠輕松地構(gòu)建可擴(kuò)展的工作流。

閱讀更多關(guān)于API 組合的內(nèi)容。

結(jié)論:實(shí)踐者的 API 平臺(tái)設(shè)計(jì)清單

基于之前關(guān)于 Supergraph 架構(gòu)框架的帖子,我們可以為任何尋求解決 API 集成、聚合、組合和編排挑戰(zhàn)的 API 平臺(tái)(稱為 supergraph)設(shè)計(jì)編制以下綜合清單。

指南

描述

1. 集成

使 API 消費(fèi)者能夠輕松地將 API 集成到其服務(wù)中

1.1 多種 API 格式

supergraph 平臺(tái)是否可以自動(dòng)提供除 GraphQL 之外的輸出格式,例如 REST/OpenAPI?這是為了滿足多個(gè)消費(fèi)者的集成需求。

1.2 文檔

supergraph 平臺(tái)是否可以幫助域或平臺(tái)所有者維護(hù) API 文檔?如果底層域(數(shù)據(jù)庫、代碼或 API)已經(jīng)過文檔化,那么這些文檔是否會(huì)自動(dòng)被 supergraph 平臺(tái)獲取?

1.3 標(biāo)準(zhǔn)化

supergraph 平臺(tái)是否提供或強(qiáng)制執(zhí)行標(biāo)準(zhǔn)化的域 API 設(shè)計(jì)(分頁、過濾、排序等)?

2. 聚合

使 API 消費(fèi)者能夠輕松地將多個(gè) API 調(diào)用聚合/批處理到一個(gè)調(diào)用中

2.1 關(guān)系

supergraph 是否提供了一種在任何兩個(gè)實(shí)體或端點(diǎn)之間創(chuàng)建關(guān)系的方法,而無需域所有者進(jìn)行更改?

2.2 可組合性

鑒于 supergraph 中兩個(gè)實(shí)體之間的關(guān)系,supergraph 提供了多少個(gè)“連接”功能?

3. 編排

使 supergraph 利益相關(guān)者能夠輕松地創(chuàng)作自定義 API 編排

3.1 聯(lián)合變異/解耦編排業(yè)務(wù)邏輯

supergraph 是否提供了一種在底層域內(nèi)或跨底層域創(chuàng)作編排流程的方法?

衡量平臺(tái)設(shè)計(jì)滿足這些標(biāo)準(zhǔn)的有效性以及構(gòu)建這些功能所需的時(shí)間和精力投入,將為任何架構(gòu)師提供一個(gè)明確的指標(biāo),表明其平臺(tái)計(jì)劃的成功可能性。

責(zé)任編輯:武曉燕 來源: 云云眾生s
相關(guān)推薦

2012-04-13 10:20:13

Phalanger創(chuàng)建

2011-04-28 11:43:23

惠普應(yīng)用部署和測(cè)試云計(jì)算解決方案

2018-11-06 09:00:00

2009-12-23 21:06:47

統(tǒng)一通信多媒體聯(lián)絡(luò)中心平臺(tái)華為

2011-02-23 17:13:19

FileZilla

2009-07-17 09:17:41

IT運(yùn)維SiteView游龍科技

2012-05-27 16:21:31

IDC華為

2018-12-03 12:17:27

Semptian解決方案

2018-12-03 11:59:42

Inventec解決方案

2018-12-03 12:26:30

YADRO解決方案

2018-12-03 12:13:21

Mellanox解決方案

2011-11-30 13:08:55

企業(yè)防毒防毒方案拯救三

2012-03-08 10:18:11

戴爾

2016-03-13 17:58:57

2019-01-18 05:22:39

區(qū)塊鏈智能合約網(wǎng)絡(luò)安全

2012-09-04 09:40:01

2012-04-24 09:23:35

Nimsoft富士通云計(jì)算

2020-08-10 14:44:41

騰訊SaaS千帆計(jì)劃

2009-07-15 17:09:32

Swing線程

2010-12-21 17:28:58

點(diǎn)贊
收藏

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