本頁適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
瞭解並管理資源,如以下各節所述。
關於資源
許多政策類型都需要資源。資源是指附加至 API Proxy 時,政策要執行的程式碼或設定所實作的檔案。在某些情況下,與 JavaScript 和 JavaCallout 一樣,政策只會在 API Proxy 中定義附件點,而該點應執行某些程式碼。JavaScript 或 JavaCallout 政策是指向資源的指標。
資源類型
下表為資源類型的摘要說明:
資源類型 | 說明 |
---|---|
GraphQL (graphql) |
GraphQL 政策參照的 GraphQL 結構定義檔案。 |
JAR (java) |
JavaCallout 政策參照的 JAR 檔案中的 Java 類別。 |
JavaScript (js) |
JavaScript 政策參照的 JavaScript。 |
JavaScript (jsc) |
JavaScript 政策參照的編譯 JavaScript。 |
OpenAPI Specification (oas) |
OpenAPI 規格,用於驗證 JSON 或 YAML 類型的要求和回應訊息。 |
Property Set (properties) |
可參照 API 代理程式屬性集的鍵/值組合集合。 |
Python (py) |
PythonScript 政策參照的 Python 指令碼。資源必須以「純 Python」(僅限 Python 語言) 實作。 |
Security policy (securityPolicy) |
JavaCallout 政策參照的自訂安全性政策。 |
WSDL (wsdl) |
SOAPMessageValidation 政策參照的 WSDL 檔案。 |
XSD (xsd) |
SOAPMessageValidation 政策參照的 XML 架構。 |
XSL Transformations (xsl) |
XSLTransform 政策參照的 XSLT 轉換。 |
資源的儲存位置
您可以將資源儲存至下列位置。您無法將資源檔案儲存在機構中。
- API Proxy 修訂版本:資源僅適用於包含資源的 API Proxy 修訂版本。舉例來說,您可以將 JavaScript 資源納入 API 代理程式第 1 版,然後在代理程式第 2 版中變更實作方式,以便使用 Python 指令碼。第 1 版僅能存取 JavaScript 資源,第 2 版則只能存取 Python 資源。
- 環境:儲存在環境 (例如
test
或prod
) 中時,資源可供在相同環境中部署的任何 API 代理使用。
如「列出資源檔案 API」和「使用 API 管理資源」一文所述,環境存放區可透過下列 URI 存取:
/organizations/$ORG/environments/$ENV/resourcefiles
下表列出可用來建立、更新及刪除各個存放區資源的方法:
存放區 | 建立 | 查看 | 更新 | 刪除 | ||||
---|---|---|---|---|---|---|---|---|
API | UI | API | UI | API | UI | API | UI | |
API Proxy 修訂版本 | ||||||||
環境 |
舉例來說,所有可供 test
環境使用的 JavaScript 檔案都會儲存在下列存放區,並可供在 test
環境中執行的任何 API 代理程式使用:
/organizations/$ORG/environments/test/resourcefiles/jsc
資源名稱解析
將資源名稱解析為最具體到最一般化的範圍。資源名稱會從 API Proxy 修訂版本層級解析至環境層級,也就是「上鏈」。
假設您在兩個不同的存放區 (API Proxy 修訂版本和 prod
環境) 中填入相同的資源。
請考慮使用下列政策設定的 API Proxy:
<Javascript name='PathSetterPolicy' timeLimit='200'> <ResourceURL>jsc://pathSetter.js</ResourceURL> </Javascript>
政策參照無法明確解析為存放區。系統會解析最精細範圍中名稱與政策中資源名稱相符的第一個資源。
因此,當 API Proxy 部署在環境 prod
中時,政策會解析為環境範圍的 pathSetter.js
資源。
在 test
環境中部署時,政策會解析為 API 代理程式修訂版本範圍的資源,因為環境範圍資源位於 prod
環境中,而非 test
環境。
Java 資源指南
您可以使用 curl 中的多個選項 (例如 -T
、--data-binary
或 -F
選項,但不是 -d
選項),將編譯的 Java 資源新增為 JAR 檔案。例如:
curl "http://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name={jar_file}&type=java" \ -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/octet-stream" \ --data-binary @{jar_file}
curl "http://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name={jar_file}&type=java" \ -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/octet-stream" \ -T "{jar_file}"
curl "http://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name={jar_file}&type=java" \ -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/octet-stream" \ -F "file=@{jar_file}"
另請參閱:
- Java 最佳做法:API Proxy 設計和開發的最佳做法
- Java 食譜範例:XSL 轉換政策
使用 UI 管理資源
使用 UI 管理範圍限定為 API 代理程式修訂版本的資源,詳情請參閱下列各節。
使用 UI 查看資源
全新 Proxy 編輯器
如要使用新的 Proxy 編輯器查看資源,請按照下列步驟操作:
如果您使用的是 Cloud 控制台中的 Apigee UI:請依序選取「Proxy development」>「API Proxies」。
如果您使用的是傳統 Apigee UI:請依序選取「Develop」>「API Proxies」,然後在「Proxies」窗格中,選取您要查看資源的 Proxy 所屬環境。
選取要查看資源的 API 代理程式。這會顯示 Proxy 編輯器的「總覽」檢視畫面。
- 按一下「開發」分頁標籤。
- 在左側窗格中,向下捲動至「資源」。目前的資源會顯示在下方。
傳統 Proxy 編輯器
如要使用傳統 Proxy 編輯器查看 API Proxy 修訂版本的資源範圍,請按照下列步驟操作:
- 登入 Apigee UI。
- 在左側導覽列中,依序選取「Develop」>「API Proxies」。
- 在清單中選取要建立資源的 API Proxy。
API Proxy 編輯器會隨即開啟,並預設顯示「總覽」分頁。 - 按一下「開發」分頁標籤。
- 視需要在「Revision」下拉式選單中選取修訂版本。
屬於 API 代理程式修訂版本範圍的資源,會列在導覽器檢視畫面的「資源」區段中。
使用 UI 建立資源
全新 Proxy 編輯器
如要使用新的 Proxy 編輯器建立資源,請按照下列步驟操作:
如果您使用的是 Cloud 控制台中的 Apigee UI:請依序選取「Proxy development」>「API Proxies」。
如果您使用的是傳統 Apigee UI:請依序選取「Develop」>「API Proxies」,然後在「Proxies」窗格中,選取您要查看資源的 Proxy 所屬環境。
選取要查看資源的 API 代理程式。這會顯示 Proxy 編輯器的「總覽」檢視畫面。
- 按一下「開發」分頁標籤。
- 在左側窗格中,向下捲動至「資源」,然後按一下右側的「+」按鈕。
- 在「Add resource」對話方塊中輸入以下內容:
- 資源類型:選取資源的檔案類型。
- 在「來源」下方,選取「建立新檔案」或「匯入檔案」。如果您選擇「Import file」(匯入檔案),請一併在「File」(檔案) 欄位中選取要匯入的檔案。
- 資源名稱:輸入資源名稱。
- 按一下「新增」。
傳統版 Apigee
如要使用傳統 Apigee UI 建立 API Proxy 修訂版本的資源,請按照下列步驟操作:
- 查看 API Proxy 修訂版本的資源範圍。
- 在導覽器檢視畫面的「資源」部分,按一下「+」,開啟「新增資源」對話方塊。
- 輸入以下內容:
欄位 說明 來源 選取要建立新檔案或匯入檔案。 檔案類型 從下拉式清單中選取資源類型。 檔案名稱 檔案名稱。檔案名稱副檔名必須適用於所選檔案類型。
使用 UI 更新資源
只有在未部署修訂版本時,才能更新範圍限定為 API Proxy 修訂版本的資源。API Proxy 修訂版本部署後就無法變更。
如要使用 UI 更新 API Proxy 修訂版本的資源範圍,請按照下列步驟操作:
- 查看 API Proxy 修訂版本的資源範圍。
- 在導覽器檢視畫面的「Resources」下方,按一下要更新的資源。
注意:如果是 JAR 檔案,請將游標移至要編輯的資源,然後按一下。
- 視需要更新資源。
注意:上傳新的 JAR 檔案後,請按一下「更新」。
使用 UI 刪除資源
只有在未部署修訂版本時,才能刪除範圍限定為 API Proxy 修訂版本的資源。API Proxy 修訂版本部署後就無法變更。
如要使用 UI 刪除 API Proxy 修訂版本的資源,請按照下列步驟操作:
- 查看 API Proxy 修訂版本的資源範圍。
- 在「資源」下方的導覽器檢視畫面中,將滑鼠游標懸停在要刪除的資源上,即可顯示動作選單。
- 按一下「
」。
- 按一下「刪除」確認動作。
使用 API 管理資源
請按照下列各節所述,使用 API 管理資源。
使用 API 建立資源
請建立範圍限定為 API Proxy 修訂版本或環境的資源,詳情請參閱下列各節。
使用 API 建立範圍限定為 API Proxy 修訂版本的資源
使用 API 建立範圍限定為 API 代理程式修訂版本的資源,詳情請參閱下列各節。如要使用 API 建立範圍限定為 API Proxy 修訂版本的資源,請按照下列步驟操作:
- 建立資源檔案。
- 將資源檔案新增至 API Proxy 設定套件。
- 使用下列任一 API 上傳套件:
使用 API 建立環境範圍的資源
使用 API 建立範圍限定為特定環境的資源,方法是向下列資源發出 POST
要求:/organizations/$ORG/environments/$ENV/resourcefiles
請在要求中提供下列資訊:
- 將
name
查詢參數設為資源名稱 - 將
type
查詢參數設為必要的資源類型 - 將資源檔案的內容以
application/octet-stream
或multipart/form-data
的形式傳遞
以下範例說明如何在要求主體中傳遞 JavaScript 資源內容,藉此建立 JavaScript 資源。
curl -X POST https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
-H "Authorization: Bearer $TOKEN" \
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");'
其中 $TOKEN
會設為您的 OAuth 2.0 存取權憑證,如取得 OAuth 2.0 存取權憑證一節所述。如要瞭解本範例中使用的 curl
選項,請參閱「使用 curl」。如要瞭解所使用的環境變數,請參閱「為 Apigee API 要求設定環境變數」。
以下範例說明如何從本機電腦上傳資源檔案。請務必使用 -F
為 curl 中的二進位檔上傳,以便 JavaScript 政策存取環境或組織範圍的 JavaScript 檔案。
curl -X POST https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
-H "Authorization: Bearer $TOKEN" \
-H "Content-type:multipart/form-data" \
-F file=@pathSetter.js
以下提供回應範例:
{ "name" : "pathSetter.js", "type" : "jsc" }
使用 API 查看資源
以下各節將說明如何使用 API 查看資源。
使用 API 查看所有資源
如以下各節所述,使用 API 查看範圍限定為特定環境的所有資源。
您可以使用 API 查看僅限於特定環境的資源。
如要使用 API 查看環境中的所有資源,請對下列資源發出 GET
要求:
https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles
以下範例會列出 test
環境中的所有資源:
curl -X GET https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles
-H "Authorization: Bearer $TOKEN"
其中 $TOKEN
會設為您的 OAuth 2.0 存取權憑證,如取得 OAuth 2.0 存取權憑證一節所述。如要瞭解本範例中使用的 curl
選項,請參閱「使用 curl」。如要瞭解所使用的環境變數,請參閱「為 Apigee API 要求設定環境變數」。
詳情請參閱「列出環境資源檔案 API」。
以下提供回應範例。
{
"resourceFile": [
{
"name" : "pathSetter.js",
"type" : "jsc"
}
]
}
使用 API 查看資源內容
如要使用 API 查看環境中資源的內容,請對下列資源發出 GET
要求:
/organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME
以下範例列出 test
環境中 pathSetter.js
JavaScript (jsc
) 檔案的內容:
curl -X GET https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
-H "Authorization: Bearer $TOKEN"
其中 $TOKEN
會設為您的 OAuth 2.0 存取權憑證,如取得 OAuth 2.0 存取權憑證一節所述。如要瞭解本範例中使用的 curl
選項,請參閱「使用 curl」。如要瞭解所使用的環境變數,請參閱「為 Apigee API 要求設定環境變數」。
以下提供回應範例:
request.headers["RequestPath"] = context.getVariable("proxy.basepath");
使用 API 更新資源
更新範圍限定為 API Proxy 修訂版本或環境的資源,詳情請參閱下列各節。
使用 API 更新範圍限定為 API Proxy 修訂版本的資源
如要使用 API 更新範圍限定為 API Proxy 修訂版本的資源,請按照下列步驟操作:
- 使用 Get API proxy revision API 下載 API Proxy 設定套件,並使用下列選項:
- 將
format
查詢參數設為bundle
- 將
Accept
頁首設為application/zip
- 將
- 更新 API Proxy 設定套件中的資源檔案。
- 使用 Update API proxy revision API 上傳 API Proxy 設定套件。
使用 API 更新環境範圍內的資源
使用 API 更新範圍限定為環境的資源,方法是向下列資源發出 PUT
要求:/organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME
以 application/octet-stream
或 multipart/form-data
的形式傳遞資源檔案內容。
以下範例說明如何在要求主體中傳遞 JavaScript 資源的內容,以便更新該資源。
curl -X PUT https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
-H "Authorization: Bearer $TOKEN" \
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");'
其中 $TOKEN
會設為您的 OAuth 2.0 存取權憑證,如取得 OAuth 2.0 存取權憑證一節所述。如要瞭解本範例中使用的 curl
選項,請參閱「使用 curl」。如要瞭解所使用的環境變數,請參閱「為 Apigee API 要求設定環境變數」。
以下範例說明如何使用本機電腦的檔案更新資源檔案。請務必使用 -F
為 curl 中的二進位檔上傳,以便 JavaScript 政策存取環境或組織範圍的 JavaScript 檔案。
curl -X PUT https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
-H "Authorization: Bearer $TOKEN" \
-H "Content-type:multipart/form-data" \
-F file=@pathSetter.js
以下提供回應範例:
{ "name" : "pathSetter.js", "type" : "jsc" }
使用 API 刪除資源
刪除範圍限定為 API Proxy 修訂版本或環境的資源,如以下各節所述。
使用 API 刪除 API Proxy 修訂版本的資源
在混合模式中,如要使用 API 刪除範圍限定為 API Proxy 的資源,請按照下列步驟操作:
- 使用 Get API proxy revision API 下載 API Proxy 設定套件,並使用下列選項:
- 將
format
查詢參數設為bundle
- 將
Accept
頁首設為application/zip
- 將
- 從 API Proxy 設定套件中刪除資源檔案。
- 使用 Update API proxy revision API 上傳 API Proxy 設定套件。
使用 API 刪除特定環境的資源
使用 API 刪除特定環境的資源,如以下各節所述。
如要使用 API 刪除環境範圍內的資源,請對下列資源發出 DELETE
要求:
https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME
以下範例會從 test
環境中刪除 pathSetter.js
JavaScript 資源檔案:
curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/jsc/pathSetter.js \ -H "Authorization: Bearer $TOKEN"
其中 $TOKEN
會設為您的 OAuth 2.0 存取權憑證,如取得 OAuth 2.0 存取權憑證一節所述。如要瞭解本範例中使用的 curl
選項,請參閱「使用 curl」。如要瞭解所使用的環境變數,請參閱「為 Apigee API 要求設定環境變數」。
詳情請參閱「Delete resource file API」。
以下提供回應範例。
{
"name" : "pathSetter.js",
"type" : "jsc"
}
存取資源
本節的範例說明如何建立及管理名為 pathSetter.js
的 JavaScript 資源,讓 JavaScript 類型政策能夠參照該資源。
如要將 JavaScript 附加至要求 PostFlow,請建立名為 PathSetterPolicy.xml
的政策,並參照 pathSetter.js
檔案:
<Javascript name='PathSetterPolicy' timeLimit='200'> <ResourceURL>jsc://pathSetter.js</ResourceURL> </Javascript>
接著,請在 Endpoints 設定中參照這項政策:
<PostFlow> <Request> <Step><Name>PathSetterPolicy</Name></Step> </Request> <PostFlow>
詳情請參閱「JavaScript 政策」。