Mengelola resource

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Pahami dan kelola resource, seperti yang dijelaskan di bagian berikut.

Tentang resource

Banyak jenis kebijakan mengandalkan resource. Resource adalah file yang mengimplementasikan kode atau konfigurasi yang akan dijalankan oleh kebijakan saat dipasang ke proxy API. Dalam beberapa kasus, seperti JavaScript dan JavaCallout, kebijakan hanya menentukan titik lampiran dalam proxy API tempat beberapa kode harus dieksekusi. Kebijakan JavaScript atau JavaCallout adalah pointer ke resource.

Contoh JavaScript berikut menetapkan jalur permintaan HTTP ke nilai variabel proxy.basepath.

request.headers["RequestPath"] = context.getVariable("proxy.basepath");

Jenis resource

Tabel berikut merangkum jenis resource:

Jenis resource Deskripsi
JAR (java) Class Java dalam file JAR yang direferensikan oleh kebijakan JavaCallout.
JavaScript (js) JavaScript yang direferensikan oleh kebijakan JavaScript.
JavaScript (jsc) JavaScript terkompilasi yang direferensikan oleh kebijakan JavaScript.
Hosted target (hosted) File Node.js yang akan di-deploy ke Target yang Dihosting. Anda dapat men-deploy Node.js sebagai aplikasi target backend Edge.
Node (node) File Node.js, termasuk file Node.js utama, file sumber terkait, dan dependensi modul.
Python (py) Skrip Python yang direferensikan oleh kebijakan PythonScript. Resource harus diimplementasikan di "pure Python" (hanya dalam bahasa Python).
WSDL (wsdl) File WSDL yang direferensikan oleh kebijakan SOAPMessageValidation.
XSD (xsd) Skema XML yang dirujuk oleh kebijakan SOAPMessageValidation.
XSL Transformations (xsl) Transformasi XSLT yang dirujuk oleh kebijakan XSLTransform.

Tempat resource disimpan

Resource dapat disimpan di salah satu dari tiga lokasi berikut:

  • Revisi proxy API: Resource hanya tersedia untuk revisi proxy API yang menyertakan resource. Misalnya, Anda dapat menyertakan resource JavaScript dengan revisi 1 proxy API, lalu ubah implementasinya untuk menggunakan skrip Python dalam revisi 2 proxy. Revisi 1 hanya memiliki akses ke resource JavaScript, sedangkan revisi 2 hanya memiliki akses ke resource Python.
  • Lingkungan: Saat disimpan di lingkungan (misalnya test atau prod), resource tersedia untuk semua proxy API yang di-deploy di lingkungan yang sama.
  • Organisasi: Saat disimpan di organisasi, resource tersedia untuk semua proxy API yang di-deploy di lingkungan apa pun.

Repositori tersedia di URI berikut, seperti yang dijelaskan oleh Resource files API dan selanjutnya di Mengelola resource menggunakan API:

  • Organisasi: /organizations/{org}/resourcefiles
  • Lingkungan: /organizations/{org}/environments/{env}/resourcefiles
  • Proxy API: /organizations/{org}/apis/{api}/revisions/{rev}/resources

Tabel berikut menunjukkan metode yang dapat Anda gunakan untuk membuat, memperbarui, dan menghapus resource untuk setiap repositori:

Repositori Buat Lihat Update Hapus
API UI API UI API UI API UI
Revisi proxy API
Lingkungan
Organisasi

Misalnya, semua file JavaScript yang tersedia untuk lingkungan test disimpan di repositori berikut dan tersedia untuk semua proxy API yang berjalan di lingkungan test:

/organizations/{org}/environments/test/resourcefiles/jsc

Resolusi nama resource

Edge me-resolve nama resource dari cakupan yang paling spesifik hingga yang paling umum. Nama resource diselesaikan "secara bertahap", dari level revisi proxy API, ke level lingkungan, hingga level organisasi (khusus Edge).

Misalnya, Anda telah mengisi resource yang sama di dua repositori yang berbeda, revisi proxy API dan lingkungan prod.

Pertimbangkan proxy API yang dikonfigurasi dengan Kebijakan berikut:

<Javascript name='PathSetterPolicy' timeLimit='200'>
    <ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>

Referensi kebijakan tidak dapat di-resolve secara eksplisit menjadi repositori. Resource pertama dengan cakupan paling terperinci yang namanya cocok dengan nama resource dalam kebijakan akan diselesaikan.

Jadi, saat proxy API di-deploy di lingkungan prod, kebijakan akan di-resolve ke resource pathSetter.js cakupan lingkungan.

Saat di-deploy di lingkungan test, Kebijakan akan di-resolve ke resource cakupan revisi proxy API, karena resource cakupan lingkungan berada di lingkungan prod, bukan lingkungan test.

Panduan resource Java

Anda dapat menambahkan resource Java yang dikompilasi sebagai file JAR menggunakan beberapa opsi dalam curl, seperti opsi -T, --data-binary, atau -F (bukan opsi -d). Contoh:

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

Lihat juga:

Panduan resource Node.js

Saat Anda mereferensikan skrip Node.js dalam proxy API, Anda melakukannya dengan elemen <ResourceURL> dalam konfigurasi TargetEndpoint proxy API, seperti yang dijelaskan dalam Menambahkan Node.js ke proxy API yang ada. Contoh:

<ScriptTarget>
    <ResourceURL>node://hello-world.js</ResourceURL>
</ScriptTarget>

Skrip Node.js tersebut dan semua modul pendukung harus berada dalam cakupan revisi proxy API (di direktori /resources/node paket proxy). Di editor proxy API, penambahan resource Node.js ke bagian Skrip akan menyelesaikan hal ini. Begitu juga dengan penggunaan API (import dan update) untuk menyimpan resource di cakupan revisi proxy API.

Mengelola resource menggunakan UI

Kelola resource yang dicakupkan ke revisi proxy API menggunakan UI, seperti yang dijelaskan di bagian berikut.

Melihat resource menggunakan UI

Untuk melihat resource yang dicakupkan ke revisi proxy API:

  1. Login ke apigee.com/edge.

  2. Pilih Develop > API Proxies di menu navigasi sebelah kiri.
  3. Pilih proxy API dalam daftar tempat Anda ingin membuat resource.
    Editor proxy API terbuka dan tab Ringkasan ditampilkan, secara default.
  4. Klik tab Mengembangkan.
  5. Pilih revisi di drop-down Revisi, jika perlu.

    Resource yang dicakupkan ke revisi proxy API tercantum di bagian Resource pada tampilan Navigator.

Membuat resource menggunakan UI

Untuk membuat resource yang dicakupkan ke revisi proxy API menggunakan UI:

  1. Melihat resource yang dicakupkan ke revisi proxy API.
  2. Klik + di bagian Resources pada tampilan Navigator untuk membuka dialog New Resource.
  3. Masukkan:
    Kolom Deskripsi
    Sumber Pilih untuk membuat file baru atau mengimpor file.
    Jenis File Pilih jenis resource dari menu drop-down.
    Nama File Nama file. Ekstensi nama file harus valid untuk jenis file yang dipilih.

Mengupdate resource menggunakan UI

Untuk mengupdate resource yang dicakupkan ke revisi proxy API menggunakan UI:

  1. Melihat resource yang dicakupkan ke revisi proxy API.
  2. Pada tampilan Navigator di bagian Resources, klik resource yang ingin diperbarui.
    Catatan: Untuk file JAR, posisikan kursor di atas resource yang ingin diedit, lalu klik .
  3. Perbarui resource, sesuai kebutuhan.
    Catatan: Setelah mengupload file JAR baru, klik Update.

Menghapus resource menggunakan UI

Untuk men-detele resource yang dicakupkan ke revisi proxy API menggunakan UI:

  1. Melihat resource yang dicakupkan ke revisi proxy API.
  2. Dalam tampilan Navigator di bagian Resources, posisikan kursor di atas resource yang ingin dihapus untuk menampilkan menu tindakan.
  3. Klik .
  4. Klik Hapus untuk mengonfirmasi tindakan.

Mengelola resource menggunakan API

Mengelola resource menggunakan API, seperti yang dijelaskan di bagian berikut.

Membuat resource menggunakan API

Buat resource yang dicakupkan ke revisi proxy API, lingkungan, atau organisasi (khusus Edge), seperti yang dijelaskan di bagian berikut.

Membuat resource yang dicakupkan ke revisi proxy API menggunakan API

Buat resource yang dicakupkan ke revisi proxy API menggunakan API dengan mengeluarkan permintaan POST ke resource berikut: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles

Teruskan informasi berikut dengan permintaan Anda:

  • Tetapkan parameter kueri name ke nama resource
  • Setel parameter kueri type ke jenis resource yang diperlukan
  • Teruskan konten file resource sebagai application/octet-stream atau multipart/form-data)

Contoh berikut membuat file JavaScript bernama pathSetter.js untuk revisi 1 proxy 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

Contoh berikut menunjukkan cara mengupload resource sebagai file dari mesin lokal Anda. Penting untuk menggunakan -F untuk upload biner dalam curl agar file JavaScript cakupan lingkungan atau organisasi dapat diakses oleh kebijakan 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

Berikut adalah contoh respons dari kedua panggilan API.

{
  "name": "pathSetter.js",
  "type": "jsc"
}

Untuk informasi selengkapnya, lihat Mengimpor file resource untuk revisi proxy API.

Atau, Anda dapat menggunakan API revisi proxy Update API, seperti berikut:

  1. Buat file resource.
  2. Tambahkan file resource ke paket konfigurasi proxy API.
  3. Upload paket menggunakan salah satu API berikut:

Membuat resource yang dicakupkan ke lingkungan menggunakan API

Buat resource JavaScript yang dicakupkan ke lingkungan menggunakan API dengan mengeluarkan permintaan POST ke resource berikut: /organizations/{org}/environments/{env}/resourcefiles

Teruskan informasi berikut dengan permintaan Anda:

  • Tetapkan parameter kueri name ke nama resource
  • Setel parameter kueri type ke jenis resource yang diperlukan
  • Teruskan konten file resource sebagai application/octet-stream atau multipart/form-data)

Contoh berikut menunjukkan cara membuat resource JavaScript dengan meneruskan kontennya dalam isi permintaan.

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

Contoh berikut menunjukkan cara mengupload resource sebagai file dari mesin lokal Anda. Penting untuk menggunakan -F untuk upload biner dalam curl agar file JavaScript cakupan lingkungan atau organisasi dapat diakses oleh kebijakan 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

Berikut adalah contoh responsnya:

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Membuat resource yang dicakupkan ke organisasi menggunakan API

Untuk membuat resource yang dicakupkan ke organisasi menggunakan API, berikan permintaan POST ke resource berikut: https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles

Teruskan informasi berikut dengan permintaan Anda:

  • Tetapkan parameter kueri name ke nama resource
  • Setel parameter kueri type ke jenis file resource (lihat Jenis resource)
  • Teruskan konten file resource sebagai application/octet-stream atau multipart/form-data)

Untuk mengetahui informasi selengkapnya, lihat Mengimpor file resource untuk organisasi.

Melihat resource menggunakan API

Bagian berikut menjelaskan cara melihat resource menggunakan API.

Melihat semua resource yang menggunakan API

Dengan menggunakan API, Anda dapat melihat resource yang dicakupkan ke revisi proxy API, lingkungan, atau organisasi.

Misalnya, untuk melihat resource bagi resource yang dicakupkan ke lingkungan menggunakan API, keluarkan permintaan GET ke resource berikut: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles

Contoh berikut mencantumkan semua resource di lingkungan test:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/{type}" \
  -u email:password

Berikut adalah contoh responsnya.

{
  "resourceFile": [
{
  "name" : "pathSetter.js",
  "type" : "jsc"
}
  ]
}

Melihat konten resource menggunakan API

Lihat konten resource menggunakan API, seperti yang dijelaskan di bagian berikut.

Dengan menggunakan API, Anda dapat melihat resource yang dicakupkan ke revisi proxy API, lingkungan, atau organisasi.

Misalnya, untuk melihat konten resource di lingkungan dengan menggunakan API, berikan permintaan GET ke resource berikut: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/name

Contoh berikut mencantumkan konten file resource JavaScript pathSetter.js di lingkungan 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

Berikut adalah contoh responsnya:

request.headers["RequestPath"] = context.getVariable("proxy.basepath");

Mengupdate resource menggunakan API

Update resource yang dicakupkan ke revisi proxy API, lingkungan, atau organisasi (khusus Edge), seperti yang dijelaskan di bagian berikut.

Mengupdate resource yang dicakupkan ke revisi proxy API menggunakan API

Update resource yang dicakupkan ke revisi proxy API menggunakan API dengan mengeluarkan permintaan PUT ke resource berikut: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

Teruskan konten file resource sebagai application/octet-stream atau multipart/form-data)

Contoh berikut mengupdate resource JavaScript bernama pathSetter untuk revisi 1 proxy 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

Contoh berikut menunjukkan cara mengupdate resource sebagai file dari mesin lokal. Penting untuk menggunakan -F untuk upload biner dalam curl agar file JavaScript cakupan lingkungan atau organisasi dapat diakses oleh kebijakan 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

Berikut adalah contoh respons dari kedua panggilan API.

{
  "name": "pathSetter.js",
  "type": "jsc"
}

Untuk informasi selengkapnya, lihat Mengimpor file resource untuk revisi proxy API.

Atau, Anda dapat menggunakan API revisi proxy Update API, seperti berikut:

  1. Download paket konfigurasi proxy API menggunakan Export API proxy API dengan opsi berikut:
    • Tetapkan parameter kueri format ke bundle
    • Setel header Accept ke application/zip
  2. Perbarui file resource dalam paket konfigurasi proxy API.
  3. Upload paket menggunakan API revisi proxy API Update

Mengupdate resource yang dicakupkan ke lingkungan menggunakan API

Update resource yang dicakupkan ke lingkungan menggunakan API dengan mengajukan permintaan PUT ke resource berikut: /organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

Teruskan konten file resource sebagai application/octet-stream atau multipart/form-data.

Contoh berikut menunjukkan cara mengupdate resource JavaScript dengan meneruskan kontennya dalam isi permintaan.

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

Contoh berikut menunjukkan cara mengupdate file resource menggunakan file dari mesin lokal Anda. Penting untuk menggunakan -F untuk upload biner dalam curl agar file JavaScript cakupan lingkungan atau organisasi dapat diakses oleh kebijakan 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

Berikut adalah contoh responsnya:

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Mengupdate resource yang dicakupkan ke organisasi menggunakan API

Untuk mengupdate resource yang dicakupkan ke organisasi menggunakan API, berikan permintaan POST ke resource berikut: https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}

Teruskan konten file resource sebagai application/octet-stream atau multipart/form-data)

Untuk mengetahui informasi selengkapnya, lihat Mengimpor file resource untuk organisasi,

Menghapus resource menggunakan API

Hapus resource yang dicakupkan ke revisi proxy API, lingkungan, atau organisasi (khusus Edge), seperti yang dijelaskan di bagian berikut.

Menghapus resource yang dicakupkan ke revisi proxy API menggunakan API

Untuk menghapus resource yang dicakupkan ke revisi proxy API menggunakan API, berikan permintaan DELETE ke resource berikut: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

Contoh berikut menghapus file resource JavaScript pathSetter.js dari revisi 1 proxy helloworld API:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js" \
  -u email:password
  

Berikut adalah contoh responsnya.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Atau, Anda dapat menggunakan API revisi proxy Update API, seperti berikut:

  1. Download paket konfigurasi proxy API menggunakan Export API proxy API dengan opsi berikut:
    • Tetapkan parameter kueri format ke bundle
    • Setel header Accept ke application/zip
  2. Hapus file resource dari paket konfigurasi proxy API.
  3. Upload paket menggunakan API revisi proxy API Update

Menghapus resource yang dicakupkan ke lingkungan menggunakan API

Menghapus resource yang dicakupkan ke lingkungan menggunakan API, seperti yang dijelaskan di bagian berikut.

Untuk menghapus resource yang dicakupkan ke lingkungan menggunakan API, berikan permintaan DELETE ke resource berikut: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

Contoh berikut menghapus file resource JavaScript pathSetter.js dari lingkungan test:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/jsc/pathSetter.js" \
  -u email:password

Berikut adalah contoh responsnya.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Menghapus resource yang dicakupkan ke organisasi menggunakan API (khusus Edge)

Untuk menghapus resource yang dicakupkan ke organisasi menggunakan API, berikan permintaan DELETE ke resource berikut: https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}

Untuk mengetahui informasi selengkapnya, lihat Menghapus file resource dari organisasi.

Mengakses referensi

Cara Anda mengakses resource bergantung pada jenis resource. Untuk informasi selengkapnya, lihat dokumentasi kebijakan yang relevan.

Contoh di bagian ini menunjukkan cara membuat dan mengelola resource JavaScript bernama pathSetter.js agar dapat direferensikan oleh kebijakan jenis JavaScript.

Untuk melampirkan JavaScript ke PostFlow Permintaan, buat kebijakan bernama PathSetterPolicy.xml yang mereferensikan file pathSetter.js:

<Javascript name='PathSetterPolicy' timeLimit='200'>
    <ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>

Selanjutnya, lihat kebijakan tersebut di konfigurasi Endpoint:

<PostFlow>
  <Request>
    <Step><Name>PathSetterPolicy</Name></Step>
  </Request>
<PostFlow>

Untuk informasi selengkapnya, lihat kebijakan JavaScript.