Open Connectors 是簡(jiǎn)化和加速 SAP 和第三方解決方案之間集成的絕佳選擇,可用的預(yù)構(gòu)建連接器列表很廣泛: Slack,LinkedIn,Twitter,Google Drive,F(xiàn)acebook,Paypal 等。

如果要查看可用連接器的完整列表,請(qǐng)?jiān)L問(wèn)以下鏈接:https://help.openconnectors.ext.hana.ondemand.com/home/full-list

在閱讀了所提供的功能和優(yōu)點(diǎn)之后,我有一個(gè)簡(jiǎn)單的問(wèn)題困擾著我,如果我的 API 在預(yù)構(gòu)建的連接器列表中不可用怎么辦?是否還有辦法可以使用 Open Connectors 提供的功能?

為了找到答案,我訪問(wèn)了我的試用帳戶,并開(kāi)始使用可用的選項(xiàng)。

現(xiàn)有的150+連接器并沒(méi)有我的需要,為了實(shí)現(xiàn)一個(gè)有趣的場(chǎng)景,將 Spotify 與 UI5 應(yīng)用程序集成,我采用了 Web API 的方法

注意:Spotify API 將在本文中用作示例,但真正的目的是解釋如何使用 Open Connectors,即使您的 API 在預(yù)構(gòu)建連接器列表中不可用。

構(gòu)建一個(gè)新的連接器

如果我們?cè)凇高B接器」列表中搜索 Spotify,我們找不到任何可用的連接器,只有「構(gòu)建新連接器」選項(xiàng)。

選擇此選項(xiàng),然后在下一個(gè)屏幕中點(diǎn)擊「Import」。


目前,有四種可供選擇的選項(xiàng):

△ Connector

△ Swagger

△ SOAP

△?OData V4

Connector 是 Open Connectors 本身提供的模式,您可以導(dǎo)出自定義連接器并在不同的租戶中重新導(dǎo)入,Swagger 是一個(gè)開(kāi)源軟件框架,可幫助開(kāi)發(fā)人員設(shè)計(jì)、構(gòu)建、記錄和使用 RESTful Web 服務(wù),SOAP 就是消息?Web 服務(wù),用于交換 XML 數(shù)據(jù)的協(xié)議,OData V4 是開(kāi)放式數(shù)據(jù)協(xié)議,現(xiàn)在主要由 SAP 采用,它提供了一組構(gòu)建和使用 RESTful API 的最佳實(shí)踐,其中包含嵌入在內(nèi)的元數(shù)據(jù)和查詢選項(xiàng)等額外功能。

現(xiàn)在我們已經(jīng)了解了可用的選項(xiàng),讓我們探索 [Spotify for Developers](https://developer.spotify.com/)?頁(yè)面,以了解訪問(wèn)數(shù)據(jù)的最佳方式。檢查文檔,我們可以找到以下可選項(xiàng):

我們來(lái)看一下 Web API 文檔。

Spotify Web API 基于簡(jiǎn)單的 REST 規(guī)則,Spotify Web API 可直接從Spotify 數(shù)據(jù)目錄返回有關(guān)音樂(lè)、藝術(shù)家、專輯和曲目的 JSON 元數(shù)據(jù),這是 UI5 應(yīng)用程序的完美集成方案!

在 Developer Portal 中可以在 Spotify 的 GitHub 帳戶中,找到 Web API 的定義,您可以通過(guò)鏈接訪問(wèn) [GitHub Spotify Web API](https://github.com/spotify/web-api/) 。

目前只有一個(gè)問(wèn)題,目前的定義是基于 RAML(RESTful API 建模語(yǔ)言),我們需要找到一種方法,在構(gòu)建連接器之前將此規(guī)范轉(zhuǎn)換為 Swagger。

有不同的方法可以解決這個(gè)問(wèn)題,但我找到了 [APIMATIC](https://www.apimatic.io/) 。此服務(wù)提供了一個(gè) API Transformer,可以快速解決此問(wèn)題。注冊(cè)該服務(wù),然后按「Convert Now」按鈕。

插入 GitHub 項(xiàng)目中可用的 api.raml 文件的 URL,然后按 Convert Now。系統(tǒng)執(zhí)行腳本,幾秒鐘后您就會(huì)收到新的 Swagger Web API 定義的下載。

* Spotify Web API RAML: 

https://github.com/spotify/web-api/blob/master/specifications/raml/api.raml

讓我們回到 Open Connectors 并繼續(xù)前面的步驟。

導(dǎo)入 Swagger 文件并按 CONTINUE IMPORT。

選擇所有資源,輸入 Element Key,接著單擊 Import 以關(guān)閉引導(dǎo)。

連接器是根據(jù) Swagger 文件中的規(guī)范生成的,您可以通過(guò)新連接器的配置查看以下界面。

注意:RAML 規(guī)范將 API 的版本存儲(chǔ)在參數(shù)中,但在轉(zhuǎn)換和上傳Swagger 期間,需要在連接器屬性中修復(fù)一個(gè)小錯(cuò)誤,修改 Base URL,刪除 DefaultParameterValue 并替換為 v1。

* 預(yù)期的基本 URL:https://api.spotify.com/v1

點(diǎn)擊「Information」選項(xiàng)卡并更新連接器的文檔和徽標(biāo)。您可以從 [品牌指南](https://developer.spotify.com/branding-guidelines/)?頁(yè)面下載其徽標(biāo)。

現(xiàn)在我們的規(guī)范已成功加載,我們只需要調(diào)整 Authentication 的設(shè)置,并執(zhí)行連接測(cè)試。

要了解可用的身份驗(yàn)證方法,讓我們?cè)僖淮翁剿?Spotify 開(kāi)發(fā)人員文檔,我們可以在[授權(quán)指南]中(https://developer.spotify.com/documentation/general/guides/authorization-guide/)?找到我們需要的所有相關(guān)信息。

正如官方指南中所述,Spotify API 有兩種方法可以進(jìn)行身份 驗(yàn)證:

△ 應(yīng)用授權(quán)

△ 用戶授權(quán)

在選擇選項(xiàng)之前,我們首先需要在 [開(kāi)發(fā)人員儀表板中](https://developer.spotify.com/dashboard/applications)??[注冊(cè)應(yīng)用程序](https://developer.spotify.com/documentation/general/guides/app-settings/#register-your-app) 。打開(kāi)儀表板,然后選擇「創(chuàng)建應(yīng)用程序」選項(xiàng)。

定義名稱,描述和應(yīng)用類型。

在第二個(gè)屏幕中選擇一個(gè)非商業(yè)應(yīng)用程序,移至第三個(gè)屏幕,確認(rèn)協(xié)議并提交?,F(xiàn)在已創(chuàng)建應(yīng)用程序,您可以準(zhǔn)備好使用客戶端 ID 和客戶端密鑰。

點(diǎn)擊「編輯設(shè)置」按鈕…

填寫選項(xiàng)「重定向 URL」,并在白名單使用 SAP 云平臺(tái)認(rèn)證:https://auth.cloudelements.io/oauth。

配置應(yīng)用程序后,就可以評(píng)估文檔,并了解我們?nèi)绾螌?duì) API 進(jìn)行身份驗(yàn)證。在官方文檔中,我們可以看到三種不同的授權(quán)流程。

為了本文測(cè)試,我們將使用 Authorization Code 流程 ,在最復(fù)雜的場(chǎng)景中驗(yàn)證應(yīng)用程序。使用此選項(xiàng),我們可以訪問(wèn)「用戶資源」并在到期時(shí)間(通常為1小時(shí))后自動(dòng)「刷新令牌」。

讓我們檢查一下 Authorization Code 流程中涉及的所有步驟:

注意:應(yīng)用程序(openconnectors)會(huì)觸發(fā)初始身份驗(yàn)證請(qǐng)求,將用戶重定向到 Spotify Accounts Service,他需要確認(rèn)訪問(wèn)權(quán)限,確認(rèn)后應(yīng)用程序?qū)⒅囟ㄏ蚧鼐哂行隆冈L問(wèn)令牌」的「OAuth 重定向 URL」。使用此「令牌」,應(yīng)用程序可以代表用戶執(zhí)行所有 Web API 操作,如果令牌過(guò)期,則通過(guò) Spotify Accounts Service 請(qǐng)求新令牌而無(wú)需用戶的交互。

現(xiàn)在是時(shí)候回到 Open Connectors,并結(jié)束這個(gè)新連接器的 Authentication 配置了。選擇 OAuth2 身份驗(yàn)證方法,您將看到開(kāi)箱即用的幾個(gè)參數(shù)。

注意:如果您從未聽(tīng)說(shuō)過(guò) OAuth2 ,我建議您查看 [官方文檔](https://oauth.net/2/) 以了解此授權(quán)協(xié)議的工作原理。

上圖中的參數(shù)由 Open Connectors 自動(dòng)提供,它們基于 OAuth2 規(guī)范。讓我們使用 [授權(quán)代碼流程中](https://developer.spotify.com/documentation/general/guides/authorization-guide/#authorization-code-flow) 提供的數(shù)據(jù)更新它們:

△ OAuth授權(quán)URL:https://accounts.spotify.com/authorize

△ OAuth API密鑰:<YOUR_CLIENT_ID>

△ OAuth API秘密:<YOUR_CLIENT_SECRET>

△ OAuth回調(diào)網(wǎng)址:https://auth.cloudelements.io/oauth

△ OAuth令牌網(wǎng)址:https://accounts.spotify.com/api/token

△ OAuth范圍:用戶讀取私有用戶讀取電子郵件

△ OAuth令牌刷新網(wǎng)址:https://accounts.spotify.com/api/token

△ OAuth刷新間隔:3600

△ OAuth令牌撤銷網(wǎng)址:https://accounts.spotify.com/api/token

△ OAuth基本標(biāo)題:true

完成此配置后,按「保存」,再次打開(kāi)「連接器」頁(yè)面,這次搜索 Spotify 時(shí),您將看到可供使用的新連接器。

當(dāng)您將鼠標(biāo)移到卡片上時(shí),可以看到一些額外的選項(xiàng),單擊 Authenticate 以啟動(dòng)該過(guò)程并創(chuàng)建一個(gè)新實(shí)例。

選擇實(shí)例的名稱(在我的示例中為 feliperodrigues),打開(kāi)可選字段并確認(rèn)「客戶端ID」和「客戶端密鑰」。最后按「創(chuàng)建實(shí)例」按鈕。

打開(kāi)連接器會(huì)自動(dòng)重定向到 Spotify 授權(quán)頁(yè)面并請(qǐng)求訪問(wèn)確認(rèn)。

按下按鈕同意和 Spotify 帳戶服務(wù)將重定向到 SAP Cloud Platform,在收到令牌后,SCP 會(huì)再次重定向回打開(kāi)連接器,并顯示以下成功消息:

在用戶的帳戶的 Spotify,打開(kāi)鏈接 [應(yīng)用程序](https://www.spotify.com/au/account/apps/)?,并檢查 openconnectors 在授權(quán)的應(yīng)用程序列表中的應(yīng)用程序,通過(guò)該頁(yè)面,也可以撤銷訪問(wèn)。

讓我們回到 Open Connectors 并訪問(wèn)標(biāo)題 Test in the API docs。

在此頁(yè)面中,您可以看到名為 feliperodrigues 的經(jīng)過(guò)身份驗(yàn)證的實(shí)例以及可用于測(cè)試的 API 操作。

向下滾動(dòng)并打開(kāi)方法 GET / browse / categories,按下試用按鈕。

現(xiàn)在這些字段可用于已經(jīng)填充了授權(quán)令牌的版本,可以隨意更新過(guò)濾器,或者只是按下 Execute 按鈕以首次測(cè)試 Web API。

如果一切都按預(yù)期運(yùn)行,您應(yīng)該收到200作為響應(yīng)代碼和響應(yīng)正文中可用的 JSON 中的類別列表。檢查以下結(jié)果:

?到這里,已經(jīng)完成了這個(gè)成功的測(cè)試。

如果你想繼續(xù)這一步,我建議你閱讀 Divya 的文章(第3、4部分)

希望你喜歡這些內(nèi)容,下次再見(jiàn)。

文章轉(zhuǎn)自微信公眾號(hào)@SAP天天事

上一篇:

iOS 持續(xù)集成:更完備的 App Store Connect API

下一篇:

簡(jiǎn)單實(shí)現(xiàn)AI音樂(lè)suno-api
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)