Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Узнайте, как управлять ресурсами, в следующих разделах.
О ресурсах
Многие типы правил зависят от ресурсов. Ресурсы – это файлы, в которых реализован код или конфигурация, которые должны выполняться правилом при подключении к прокси API. В некоторых случаях, например с JavaScript и JavaCallout, правило просто определяет точку прикрепления в прокси-сервере API, в которой должен выполняться код. Правило JavaScript или JavaCallout – это указатель на ресурс.
В приведенном ниже примере кода JavaScript путь HTTP-запроса устанавливается равным значению переменной proxy.basepath.
request.headers["RequestPath"] = context.getVariable("proxy.basepath");Типы ресурсов
В таблице ниже приведены типы ресурсов.
| Тип ресурса | Описание |
|---|---|
JAR (java) |
Классы Java в файле JAR, на который ссылаются правила JavaCallout. |
JavaScript (js) |
JavaScript, на который ссылаются правила JavaScript. |
JavaScript (jsc) |
Скомпилированный код JavaScript, на который ссылаются правила JavaScript. |
Hosted target (hosted) |
Файлы Node.js для развертывания в размещенных целевых объектах. Вы можете развернуть Node.js в качестве целевых приложений для внутреннего сервера Edge. |
Node (node) |
Файлы Node.js, в том числе основной файл Node.js, связанные исходные файлы и зависимости модулей. |
Python (py) |
Скрипты Python, на которые ссылаются правила PythonScript. Ресурсы должны быть реализованы на чистом Python (только на языке Python). |
WSDL (wsdl) |
Файлы WSDL, на которые ссылаются правила SOAPMessageValidation. |
XSD (xsd) |
Схемы XML, на которые ссылаются правила проверки сообщений SOAP. |
XSL Transformations (xsl) |
Преобразования XSLT, на которые ссылаются правила XSLTransform. |
Где хранятся ресурсы
Ресурсы могут храниться в одном из трех мест:
- Ревизия прокси-сервера API. Ресурсы доступны только в тех ревизиях прокси-сервера API, в которые они включены. Например, вы можете включить ресурс JavaScript в версию 1 прокси-сервера API, а затем изменить реализацию, чтобы использовать скрипт Python в версии 2 прокси-сервера. Ревизия 1 имеет доступ только к ресурсу JavaScript, а ревизия 2 – только к ресурсу Python.
- Среда. Если ресурсы хранятся в среде (например,
testилиprod), они доступны любому прокси-серверу API, развернутому в той же среде. - Организация. Если ресурсы хранятся в организации, они доступны любому прокси-серверу API, развернутому в любой среде.
Репозитории доступны по следующим URI, как описано в Resource files API и далее в разделе Управление ресурсами с помощью API:
- Организация:
/organizations/{org}/resourcefiles - Среда:
/organizations/{org}/environments/{env}/resourcefiles - Прокси API:
/organizations/{org}/apis/{api}/revisions/{rev}/resources
В таблице ниже перечислены методы, которые можно использовать для создания, обновления и удаления ресурсов в каждом репозитории.
| Хранилище | Создать | Открыть | Обновить | Удалить | ||||
|---|---|---|---|---|---|---|---|---|
| API | Интерфейс | API | Интерфейс | API | Интерфейс | API | Интерфейс | |
| Ревизия прокси-сервера API | ||||||||
| Среда | ||||||||
| Организация | ||||||||
Например, все файлы JavaScript, доступные в среде test, хранятся в следующем репозитории и доступны любому прокси-серверу API, работающему в среде test:
/organizations/{org}/environments/test/resourcefiles/jscРазрешение имен ресурсов
Edge преобразует названия ресурсов от наиболее конкретной области к наиболее общей. Имена ресурсов разрешаются "по цепочке" от уровня ревизии прокси-сервера API до уровня среды и уровня организации (только в Edge).
Предположим, что один и тот же ресурс заполнен в двух разных репозиториях: в ревизии прокси-сервера API и в среде prod.
Рассмотрим прокси-сервер API, настроенный со следующим правилом:
<Javascript name='PathSetterPolicy' timeLimit='200'>
<ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>Ссылка на правила не может явно указывать на репозиторий. Разрешается первый ресурс с наиболее детализированной областью действия, название которого совпадает с названием ресурса в правиле.
Таким образом, когда прокси-сервер API развертывается в среде prod, правило будет разрешаться в ресурс pathSetter.js, ограниченный средой.
При развертывании в среде test правило будет разрешено для ресурса, ограниченного версией прокси-сервера API, поскольку ресурс, ограниченный средой, находится в среде prod, а не в среде test.
Правила в отношении ресурсов Java
Вы можете добавить скомпилированные ресурсы Java в виде JAR-файлов, используя различные варианты команды curl, например -T, --data-binary или -F (не -d). Пример:
curl "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java" \
-X POST \
--data-binary @{jar_file} \
-H "Content-Type: application/octet-stream" \
-u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
-X POST \
-H "Content-Type: application/octet-stream" \
-T "{jar_file}" \
-u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
-X POST \
-H "Content-Type: application/multipart/form-data" \
-F "file=@{jar_file}" \
-u email:password
Статьи по теме
- Рекомендации по работе с Java: рекомендации по проектированию и разработке прокси-серверов API
- Пример из книги рецептов Java: правило преобразования XSL
Правила использования ресурсов Node.js
При использовании скрипта Node.js в прокси-сервере API вы ссылаетесь на него с помощью элемента <ResourceURL> в конфигурации TargetEndpoint прокси-сервера API, как описано в разделе Как добавить Node.js в существующий прокси-сервер API. Пример:
<ScriptTarget>
<ResourceURL>node://hello-world.js</ResourceURL>
</ScriptTarget>Скрипт Node.js и все вспомогательные модули должны находиться в области действия версии прокси-сервера API (в каталоге /resources/node набора прокси). В редакторе прокси-сервера API это можно сделать, добавив ресурс Node.js в раздел Scripts (Скрипты). То же самое происходит при использовании API (import и update) для сохранения ресурса в области действия версии прокси-сервера API.
Как управлять ресурсами с помощью интерфейса
Управлять ресурсами, относящимися к ревизии прокси-сервера API, можно с помощью интерфейса, как описано в следующих разделах.
Как посмотреть ресурсы с помощью интерфейса
Чтобы посмотреть ресурсы, относящиеся к определенной версии прокси-сервера API, выполните следующие действия:
-
Войдите в аккаунт на сайте apigee.com/edge.
- На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
- Выберите в списке прокси-сервер API, для которого хотите создать ресурс.
Откроется редактор прокси-сервера API, и по умолчанию будет показана вкладка "Обзор". - Нажмите на вкладку Разработка.
- При необходимости выберите версию в раскрывающемся списке Версия.
Ресурсы, относящиеся к определенной версии прокси-сервера API, перечислены в разделе Ресурсы в представлении навигатора.

Как создать ресурс с помощью интерфейса
Чтобы создать ресурсы, относящиеся к определенной версии прокси-сервера API, с помощью интерфейса:
- Посмотреть ресурсы, относящиеся к определенной версии прокси-сервера API.
- Нажмите + в разделе "Ресурсы" в представлении навигатора, чтобы открыть диалоговое окно "Новый ресурс".
- Введите нужные данные:
Поле Описание Источник Выберите, хотите ли вы создать новый файл или импортировать существующий. Тип файла Выберите тип ресурса в раскрывающемся списке. Имя файла Название файла. Расширение файла должно быть допустимым для выбранного типа файла.
Как изменить ресурс с помощью интерфейса
Чтобы обновить ресурс, относящийся к определенной версии прокси-сервера API, с помощью интерфейса:
- Посмотреть ресурсы, относящиеся к определенной версии прокси-сервера API.
- В представлении навигатора в разделе "Ресурсы" нажмите на ресурс, который хотите изменить.
Примечание. Для JAR-файлов наведите указатель на ресурс, который вы хотите изменить, и нажмите
. - При необходимости обновите ресурс.
Примечание. После загрузки нового JAR-файла нажмите Обновить.
Как удалить ресурс с помощью интерфейса
Чтобы удалить ресурс, относящийся к определенной версии прокси-сервера API, с помощью интерфейса:
- Посмотреть ресурсы, относящиеся к определенной версии прокси-сервера API.
- В представлении навигатора в разделе "Ресурсы" наведите указатель на ресурс, который хотите удалить, чтобы открыть меню действий.
- Нажмите
. - Нажмите Удалить, чтобы подтвердить действие.
Как управлять ресурсами с помощью API
Управлять ресурсами с помощью API можно так, как описано в следующих разделах.
Как создавать ресурсы с помощью API
Создайте ресурсы, относящиеся к ревизии прокси-сервера API, среде или организации (только в Edge), как описано в следующих разделах.
Как создать ресурсы, относящиеся к определенной версии прокси-сервера API, с помощью API
Создайте ресурс, ограниченный версией прокси-сервера API, с помощью API, отправив запрос POST к следующему ресурсу:
https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles
В запросе укажите следующую информацию:
- Задайте для параметра запроса
nameназвание ресурса. - Установите для параметра запроса
typeнужный тип ресурса. - Передайте содержимое файла ресурса как
application/octet-streamилиmultipart/form-data.
В следующем примере создается файл JavaScript с именем pathSetter.js для версии 1 прокси-сервера API helloworld:
curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
-u email:password
В следующем примере показано, как загрузить ресурс в виде файла с локального компьютера. Важно использовать -F для загрузки двоичных файлов в curl, чтобы файлы JavaScript, относящиеся к среде или организации, были доступны для правил JavaScript.
curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc -H "Content-type:multipart/form-data" \ -F file=@pathSetter.js \ -u email:password
Ниже приведен пример ответа на любой из этих вызовов API.
{
"name": "pathSetter.js",
"type": "jsc"
}Подробнее о том, как импортировать файл ресурса для версии прокси-сервера API…
Также можно использовать API для обновления ревизии прокси-сервера API, как показано ниже.
- Создайте файл ресурсов.
- Добавьте файл ресурса в пакет конфигурации прокси-сервера API.
- Загрузите набор, используя один из следующих API:
Как создавать ресурсы, ограниченные средой, с помощью API
Создайте ресурс JavaScript, область действия которого ограничена средой, с помощью API, отправив запрос POST к следующему ресурсу:
/organizations/{org}/environments/{env}/resourcefiles
В запросе укажите следующую информацию:
- Задайте для параметра запроса
nameназвание ресурса. - Установите для параметра запроса
typeнужный тип ресурса. - Передайте содержимое файла ресурса как
application/octet-streamилиmultipart/form-data.
В следующем примере показано, как создать ресурс JavaScript, передав его содержимое в теле запроса.
curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
-u email:password
В следующем примере показано, как загрузить ресурс в виде файла с локального компьютера. Важно использовать -F для загрузки двоичных файлов в curl, чтобы файлы JavaScript, относящиеся к среде или организации, были доступны для правил JavaScript.
curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc -H "Content-type:multipart/form-data" \ -F file=@pathSetter.js \ -u email:password
Ниже приведен пример ответа.
{ "name" : "pathSetter.js", "type" : "jsc" }
Как создавать ресурсы, ограниченные организацией, с помощью API
Чтобы создать ресурс, область действия которого ограничена организацией, с помощью API, отправьте запрос POST к следующему ресурсу:
https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles
В запросе укажите следующую информацию:
- Задайте для параметра запроса
nameназвание ресурса. - Установите для параметра запроса
typeтип файла ресурса (см. Типы ресурсов). - Передайте содержимое файла ресурса как
application/octet-streamилиmultipart/form-data.
Подробнее о том, как импортировать файл ресурсов для организации…
Как посмотреть ресурсы с помощью API
В разделах ниже описано, как просматривать ресурсы с помощью API.
Как посмотреть все ресурсы с помощью API
С помощью API можно просматривать ресурсы, относящиеся к ревизии прокси-сервера API, среде или организации.
Например, чтобы посмотреть ресурсы, относящиеся к среде, с помощью API, отправьте запрос GET к следующему ресурсу:
https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles
В следующем примере перечислены все ресурсы в среде test:
curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/{type}" \
-u email:passwordНиже приведен пример ответа.
{
"resourceFile": [
{
"name" : "pathSetter.js",
"type" : "jsc"
}
]
}Как посмотреть содержимое ресурса с помощью API
Посмотреть содержимое ресурса с помощью API можно так, как описано в следующих разделах.
С помощью API можно просматривать ресурсы, относящиеся к ревизии прокси-сервера API, среде или организации.
Например, чтобы посмотреть содержимое ресурса в среде с помощью API, отправьте запрос GET к следующему ресурсу:
https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/name
В следующем примере перечислены ресурсы JavaScript из файла pathSetter.js в среде test:
curl -X GET https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js" \ -H "Accept: application/json" \ -u email:password
Ниже приведен пример ответа.
request.headers["RequestPath"] = context.getVariable("proxy.basepath");Как обновлять ресурсы с помощью API
Обновите ресурсы, относящиеся к ревизии прокси-сервера API, среде или организации (только в Edge), как описано в следующих разделах.
Как обновить ресурсы, относящиеся к определенной версии прокси-сервера API, с помощью API
Чтобы обновить ресурс, относящийся к определенной версии прокси-сервера API, отправьте запрос PUT к следующему ресурсу:
https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}
Передайте содержимое файла ресурса как application/octet-stream или multipart/form-data.
В следующем примере обновляется ресурс JavaScript с именем pathSetter для версии 1 прокси-сервера API helloworld:
curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
-u email:password
В следующем примере показано, как обновить ресурс в виде файла с локального компьютера. Важно использовать -F для загрузки двоичных файлов в curl, чтобы файлы JavaScript, относящиеся к среде или организации, были доступны для правил JavaScript.
curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js -H "Content-type:multipart/form-data" \ -F file=@pathSetter.js \ -u email:password
Ниже приведен пример ответа на любой из этих вызовов API.
{
"name": "pathSetter.js",
"type": "jsc"
}Подробнее о том, как импортировать файл ресурса для версии прокси-сервера API…
Также можно использовать API для обновления ревизии прокси-сервера API, как показано ниже.
- Скачайте пакет конфигурации прокси-сервера API, используя API экспорта прокси-сервера API со следующими параметрами:
- Установите для параметра запроса
formatзначениеbundle. - Задайте для заголовка
Acceptзначениеapplication/zip.
- Установите для параметра запроса
- Обновите файл ресурсов в пакете конфигурации прокси-сервера API.
- Загрузите пакет с помощью Update API proxy revision API.
Как обновлять ресурсы, относящиеся к определенной среде, с помощью API
Чтобы обновить ресурс, относящийся к среде, с помощью API, отправьте запрос PUT к следующему ресурсу:
/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}
Передайте содержимое файла ресурса как application/octet-stream или multipart/form-data.
В следующем примере показано, как обновить ресурс JavaScript, передав его содержимое в теле запроса.
curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
-u email:password
В следующем примере показано, как обновить файл ресурса, используя файл с локального компьютера. Важно использовать -F для загрузки двоичных файлов в curl, чтобы файлы JavaScript, относящиеся к среде или организации, были доступны для правил JavaScript.
curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js -H "Content-type:multipart/form-data" \ -F file=@pathSetter.js \ -u email:password
Ниже приведен пример ответа.
{ "name" : "pathSetter.js", "type" : "jsc" }
Как обновлять ресурсы, относящиеся к организации, с помощью API
Чтобы обновить ресурс, область действия которого ограничена организацией, с помощью API, отправьте запрос POST к следующему ресурсу:
https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}
Передайте содержимое файла ресурса как application/octet-stream или multipart/form-data.
Подробнее о том, как импортировать файл ресурсов для организации…
Как удалить ресурсы с помощью API
Удалите ресурс, относящийся к ревизии прокси-сервера API, среде или организации (только в Edge), как описано в следующих разделах.
Как удалить ресурсы, относящиеся к определенной версии прокси-сервера API, с помощью API
Чтобы удалить ресурс, относящийся к определенной версии прокси-сервера API, с помощью API, отправьте запрос DELETE к следующему ресурсу:
https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}
В следующем примере удаляется файл ресурса JavaScript pathSetter.js из версии 1 прокси-сервера API helloworld:
curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js" \ -u email:password
Ниже приведен пример ответа.
{
"name" : "pathSetter.js",
"type" : "jsc"
}Также можно использовать API для обновления ревизии прокси-сервера API, как показано ниже.
- Скачайте пакет конфигурации прокси-сервера API, используя API экспорта прокси-сервера API со следующими параметрами:
- Установите для параметра запроса
formatзначениеbundle. - Задайте для заголовка
Acceptзначениеapplication/zip.
- Установите для параметра запроса
- Удалите файл ресурса из пакета конфигурации прокси-сервера API.
- Загрузите пакет с помощью Update API proxy revision API.
Как удалить ресурс, ограниченный средой, с помощью API
Удалить ресурс, относящийся к определенной среде, можно с помощью API, как описано в следующих разделах.
Чтобы удалить ресурс, область действия которого ограничена средой, с помощью API, отправьте запрос DELETE к следующему ресурсу:
https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}
В следующем примере показано, как удалить файл ресурса JavaScript pathSetter.js из среды test:
curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/jsc/pathSetter.js" \ -u email:password
Ниже приведен пример ответа.
{
"name" : "pathSetter.js",
"type" : "jsc"
}Удаление ресурсов, относящихся к организации, с помощью API (только Edge)
Чтобы удалить ресурс, область действия которого ограничена организацией, с помощью API, отправьте запрос DELETE к следующему ресурсу:
https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}
Подробнее о том, как удалить файл ресурса из организации…
Как получить доступ к ресурсу
Способ доступа к ресурсу зависит от его типа. Подробную информацию можно найти в документации по правилам.
В примерах, приведенных в этом разделе, показано, как создать и настроить ресурс JavaScript с именем pathSetter.js, чтобы на него могли ссылаться правила типа JavaScript.
Чтобы прикрепить JavaScript к запросу PostFlow, создайте правило PathSetterPolicy.xml, которое ссылается на файл pathSetter.js:
<Javascript name='PathSetterPolicy' timeLimit='200'>
<ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>Затем укажите правило в конфигурации конечной точки:
<PostFlow>
<Request>
<Step><Name>PathSetterPolicy</Name></Step>
</Request>
<PostFlow>Подробнее о правилах в отношении JavaScript…