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 menerapkan kode atau konfigurasi yang akan dieksekusi oleh kebijakan saat dilampirkan ke proxy API. Dalam beberapa kasus, seperti dengan JavaScript dan JavaCallout, kebijakan hanya menentukan titik lampiran di 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 dirujuk oleh kebijakan JavaCallout.
JavaScript (js) JavaScript yang dirujuk oleh kebijakan JavaScript.
JavaScript (jsc) JavaScript yang dikompilasi yang dirujuk oleh kebijakan JavaScript.
Hosted target (hosted) File Node.js untuk 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 dirujuk oleh kebijakan PythonScript. Resource harus diimplementasikan dalam "Python murni" (hanya dalam bahasa Python).
WSDL (wsdl) File WSDL yang dirujuk oleh kebijakan SOAPMessageValidation.
XSD (xsd) Skema XML yang dirujuk oleh kebijakan SOAPMessageValidation.
XSL Transformations (xsl) Transformasi XSLT yang dirujuk oleh kebijakan XSLTransform.

Tempat penyimpanan resource

Resource dapat disimpan di salah satu dari tiga lokasi berikut:

  • Revisi proxy API: Resource hanya tersedia untuk revisi proxy API yang menyertakan resource tersebut. Misalnya, Anda dapat menyertakan resource JavaScript dengan revisi 1 proxy API, lalu mengubah implementasi untuk menggunakan skrip Python dalam revisi 2 proxy. Revisi 1 memiliki akses hanya ke resource JavaScript, dan revisi 2 memiliki akses hanya ke resource Python.
  • Lingkungan: Saat disimpan di lingkungan (misalnya, test atau prod), resource tersedia untuk proxy API apa pun yang di-deploy di lingkungan yang sama.
  • Organisasi: Jika disimpan di organisasi, resource tersedia untuk proxy API apa pun yang di-deploy di lingkungan mana 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 Perbarui 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 proxy API apa pun yang berjalan di lingkungan test:

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

Resolusi nama resource

Edge menyelesaikan nama resource dari cakupan yang paling spesifik hingga yang paling umum. Nama resource di-resolve "naik ke atas", dari tingkat revisi proxy API, ke tingkat lingkungan, hingga ke tingkat organisasi (khusus Edge).

Misalkan 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 secara eksplisit di-resolve ke repositori. Resource pertama pada cakupan paling terperinci yang namanya cocok dengan nama resource dalam kebijakan akan diselesaikan.

Jadi, saat proxy API di-deploy di lingkungan prod, kebijakan akan diselesaikan ke resource pathSetter.js yang tercakup dalam lingkungan.

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

Pedoman resource Java

Anda dapat menambahkan resource Java yang dikompilasi sebagai file JAR menggunakan beberapa opsi di 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:

Pedoman sumber daya Node.js

Saat mereferensikan skrip Node.js di 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 (dalam direktori /resources/node paket proxy). Di editor proxy API, menambahkan resource Node.js ke bagian Scripts akan melakukannya. Begitu juga dengan penggunaan API (import dan update) untuk menyimpan resource dalam cakupan revisi proxy API.

Mengelola resource menggunakan UI

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

Melihat resource menggunakan UI

Untuk melihat resource yang dicakup ke revisi proxy API:

  1. Login ke apigee.com/edge.

  2. Pilih Develop > API Proxies di menu navigasi kiri.
  3. Pilih proxy API dalam daftar yang ingin Anda buatkan resource-nya.
    Editor proxy API akan terbuka dan tab Ringkasan akan ditampilkan secara default.
  4. Klik tab Develop.
  5. Pilih revisi di drop-down Revisi, jika diperlukan.

    Resource yang dicakup ke revisi proxy API dicantumkan di bagian Resources dalam tampilan Navigator.

Membuat resource menggunakan UI

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

  1. Lihat resource yang dicakup ke revisi proxy API.
  2. Klik + di bagian Resources dalam 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 memperbarui cakupan resource ke revisi proxy API menggunakan UI:

  1. Lihat resource yang dicakup ke revisi proxy API.
  2. Di tampilan Navigator di bagian Resources, klik resource yang ingin Anda perbarui.
    Catatan: Untuk file JAR, posisikan kursor Anda di atas resource yang ingin Anda edit, lalu klik .
  3. Perbarui resource, sesuai kebutuhan.
    Catatan: Setelah mengupload file JAR baru, klik Perbarui.

Menghapus resource menggunakan UI

Untuk menghapus resource yang dicakup ke revisi proxy API menggunakan UI:

  1. Lihat resource yang dicakup ke revisi proxy API.
  2. Di tampilan Navigator pada bagian Resources, posisikan kursor Anda di atas resource yang ingin Anda hapus untuk menampilkan menu tindakan.
  3. Klik .
  4. Klik Hapus untuk mengonfirmasi tindakan.

Mengelola resource menggunakan API

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

Membuat resource menggunakan API

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

Membuat resource yang dicakup ke revisi proxy API menggunakan API

Buat resource yang dicakup 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
  • Tetapkan 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 komputer lokal Anda. Anda harus menggunakan -F untuk upload biner di curl agar file JavaScript yang tercakup dalam 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 panggilan API.

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

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

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

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

Membuat resource yang dicakup ke lingkungan menggunakan API

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

Teruskan informasi berikut dengan permintaan Anda:

  • Tetapkan parameter kueri name ke nama resource
  • Tetapkan 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 isinya di 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 komputer lokal Anda. Anda harus menggunakan -F untuk upload biner di curl agar file JavaScript yang tercakup dalam 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 respons:

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

Membuat resource yang tercakup dalam organisasi menggunakan API

Untuk membuat resource yang dicakup ke organisasi menggunakan API, kirim 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 menggunakan API

Dengan menggunakan API, Anda dapat melihat cakupan resource untuk revisi proxy API, lingkungan, atau organisasi.

Misalnya, untuk melihat resource yang dicakup ke lingkungan menggunakan API, kirim 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 cakupan resource untuk revisi proxy API, lingkungan, atau organisasi.

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

Contoh berikut mencantumkan isi 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 respons:

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

Memperbarui resource menggunakan API

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

Memperbarui resource yang dicakup ke revisi proxy API menggunakan API

Perbarui resource yang dicakup 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 memperbarui 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 memperbarui resource sebagai file dari mesin lokal Anda. Anda harus menggunakan -F untuk upload biner di curl agar file JavaScript yang tercakup dalam 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 panggilan API.

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

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

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

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

Memperbarui resource yang dicakup ke lingkungan menggunakan API

Perbarui resource yang dicakup ke lingkungan menggunakan API dengan mengirimkan 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 di 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 memperbarui file resource menggunakan file dari mesin lokal Anda. Anda harus menggunakan -F untuk upload biner di curl agar file JavaScript yang tercakup dalam 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 respons:

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

Memperbarui resource yang dicakup ke organisasi menggunakan API

Untuk memperbarui resource yang dicakup ke organisasi menggunakan API, kirim 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

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

Menghapus resource yang dicakup ke revisi proxy API menggunakan API

Untuk menghapus resource yang dicakup ke revisi proxy API menggunakan API, kirim 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 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
  

Berikut adalah contoh responsnya.

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

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

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

Menghapus resource yang dicakup ke lingkungan menggunakan API

Hapus resource yang dicakup ke lingkungan menggunakan API, seperti yang dijelaskan di bagian berikut.

Untuk menghapus resource yang dicakup ke lingkungan menggunakan API, kirim 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 dicakup ke organisasi menggunakan API (khusus Edge)

Untuk menghapus resource yang dicakup ke organisasi menggunakan API, kirim 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 resource

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

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

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

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

Kemudian, rujuk kebijakan dalam konfigurasi Endpoint:

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

Untuk mengetahui informasi selengkapnya, lihat Kebijakan JavaScript.