Langkah 5: Tambahkan kebijakan

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat dokumentasi Apigee Edge.

Setelah mengubah endpoint target, Anda siap menambahkan kebijakan ke proxy.

Kebijakan adalah komponen Apigee yang dapat Anda lampirkan ke berbagai titik dalam alur pesan melalui proxy API. Kebijakan dapat mengubah format pesan, menerapkan kontrol akses, memanggil layanan jarak jauh, memberikan otorisasi kepada pengguna, memeriksa konten pesan untuk menemukan potensi ancaman, dan melakukan banyak hal lainnya.

Dalam tutorial ini, Anda akan menambahkan kebijakan XMLtoJSON ke proxy. Kebijakan ini mengonversi payload pesan XML menjadi JSON. Tindakan ini juga akan mengubah header Content-Type respons.

Anda dapat melampirkan kebijakan ke alur di proxy. Alur mengontrol cara kebijakan dieksekusi. Dalam contoh ini, Anda akan menambahkan kebijakan ke alur khusus, yang disebut PreFlow. Kebijakan di PreFlow dijalankan sebelum kebijakan lain di proxy. Meskipun Anda tidak perlu memahami alur secara mendetail untuk membaca contoh ini, Anda dapat mempelajarinya lebih lanjut di Mengontrol proxy API dengan alur.

Editor Proxy Baru

Ada dua langkah untuk menambahkan kebijakan XMLtoJSON ke proxy Anda:

Membuat instance kebijakan

Untuk menggunakan kebijakan, Anda harus membuat instance kebijakan baru dari template kebijakan sebagai berikut:

  1. Jika Anda menggunakan UI Apigee di konsol Cloud: Pilih Proxy development > API Proxies.

    Jika Anda menggunakan UI Apigee klasik: Pilih Develop > API Proxies dan di panel Proxies, pilih lingkungan untuk proxy.

  2. Dari daftar proxy, pilih proxy tempat Anda ingin menambahkan kebijakan.
  3. Klik tab Mengembangkan.

  4. Di panel kiri, klik tombol + di samping folder Policies.
  5. Pada dialog Create policy, pilih Standard policies untuk memfilter daftar kebijakan yang tersedia berdasarkan policy type.
  6. Di kotak teks Select policy type, scroll ke bawah ke Mediation, lalu pilih XML To JSON.

  7. Jika ingin, Anda dapat mengubah Nama dan Nama tampilan kebijakan. Secara default, Apigee menyediakan awalan singkat untuk nama kebijakan, dalam hal ini, X2J-, Anda dapat menambahkan urutan kata deskriptif yang dipisahkan dengan tanda hubung, setelah awalan. Lihat Konvensi penamaan.

    Buat dialog kebijakan.

    Setelah selesai, klik Buat untuk membuat kebijakan.

Kebijakan XML ke JSON kini ditampilkan di panel sebelah kanan tampilan Develop:

Kebijakan XML To JSON ditampilkan di tampilan Develop.

Bagian bawah panel menampilkan kode XML untuk kebijakan.

Untuk mempelajari kebijakan lebih lanjut, pilih ikon informasi Ikon informasi. di samping nama kebijakan, lalu klik Kebijakan XML ke JSON. Tindakan ini akan menampilkan halaman referensi untuk kebijakan tersebut.

Menggunakan Gemini Code Assist untuk meninjau petunjuk kebijakan

Jika memiliki add-on Gemini Code Assist, Anda dapat menandai elemen kebijakan untuk melihat informasi tentang elemen tersebut dan cara menggunakannya. Lihat Menggunakan penjelasan kode Gemini Code Assist dengan kebijakan untuk mengetahui informasinya.

Mengubah nama kebijakan

Untuk mengubah nama kebijakan:

  1. Pilih kebijakan di bagian Kebijakan di panel sebelah kiri.
  2. Pada elemen <DisplayName> dalam kode XML untuk kebijakan, tambahkan frasa deskriptif untuk kebijakan, seperti change-xml-to-json, setelah singkatan untuk nama kebijakan:

    Menambahkan change-xml-to-json ke nama kebijakan.

    Tindakan ini akan otomatis memperbarui nama kebijakan, yang ditampilkan di bagian Kebijakan.

    Lihat konvensi penamaan.

Lampirkan kebijakan ke langkah dalam PreFlow

Setelah membuat kebijakan XML To JSON, Anda dapat melampirkan kebijakan tersebut ke langkah di PreFlow:

  1. Pilih Endpoint Proxy > default > PreFlow di panel kiri:

    Endpoint target untuk PreFlow pilih di Proxy Explorer.

    Catatan: Anda mungkin perlu meluaskan editor visual di panel kanan untuk melihat semua elemen. Untuk melakukannya, klik dan tarik pemisah antara editor visual dan editor teks sedikit ke bawah.

  2. Klik tombol + di samping PreFlow di panel Response di kanan bawah editor visual:

    Klik tombol + di samping PreFlow di panel Respons.

  3. Di dialog Langkah tambahkan kebijakan, pilih kebijakan X2J-change-xml-to-json.
  4. Klik Tambahkan untuk melampirkan kebijakan.

    Kebijakan X2J-change-xml-to-json kini ditampilkan di panel Response:

    Kebijakan XML To JSON ditampilkan di panel Respons.

  5. Klik Simpan untuk menyimpan revisi saat ini dengan perubahan Anda.
  6. Untuk men-deploy perubahan pada revisi, klik Deploy dan ikuti petunjuk di Deploy proxy API.

Editor Proxy Klasik

Untuk menambahkan kebijakan XMLtoJSON ke proxy Anda:

  1. Buka UI Apigee di browser dan login.
  2. Klik Proxy API di jendela utama, lalu pilih proxy. Untuk contoh ini, pilih proxy yang Anda buat di Langkah 2: Membuat proxy API.
  3. Klik tab Mengembangkan:

    Klik tab Develop di Proxy Editor.

    Apigee menampilkan Editor Proxy API.

  4. Di panel Navigator, klik Proxy Endpoints > default > PreFlow:

    Apigee menampilkan editor Alur:

    Editor alur.

    Selain itu, Apigee menampilkan konfigurasi Endpoint Proxy default di panel Code:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
      <Description/>
      <FaultRules/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <Flows/>
      <HTTPProxyConnection>
        <BasePath>/myproxy</BasePath>
        <Properties/>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
  5. Untuk menambahkan kebijakan ke proxy, klik tombol + Langkah di PreFlow respons (bagian bawah editor Flow):

    Tombol + Step di PreFlow respons.

    Apigee menampilkan daftar kebijakan yang dikategorikan di kotak dialog Tambahkan yang dapat Anda tambahkan ke alur:

    Daftar kebijakan.

  6. Scroll ke bawah, lalu pilih kebijakan XMLtoJSON di kategori Mediasi.
  7. Biarkan nama default, lalu klik Tambahkan.

    Apigee melampirkan kebijakan baru ke PreFlow respons:

    Kebijakan baru yang dilampirkan di Preflow respons.

    Perhatikan bahwa saat Anda mengklik Tambahkan, Apigee akan melakukan hal berikut:

    • Menambahkan kebijakan baru di bagian Kebijakan di panel Navigator.
    • Menambahkan kebijakan XMLtoJSON di panel Alur.
    • Menampilkan XML konfigurasi kebijakan di panel Code.
  8. Klik Simpan untuk menyimpan revisi saat ini dengan perubahan Anda.
  9. Untuk men-deploy perubahan, klik tab Ringkasan, lalu klik tombol Deploy.

Menguji kebijakan baru

Untuk menguji kebijakan baru, jalankan perintah curl berikut di jendela terminal:

curl https://YOUR_ENV_GROUP_HOSTNAME/myproxy

dengan YOUR ENV_GROUP_HOSTNAME adalah nama host grup lingkungan. Lihat Menemukan nama host grup lingkungan.

Lihat Memanggil proxy API untuk mengetahui informasi selengkapnya.

Atau, Anda dapat membuka URL yang sama di browser.

Anda akan menerima respons berikut:

{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

Jika isi respons tidak terlihat seperti ini, pastikan:

  1. Endpoint target Anda adalah https://mocktarget.apigee.net/xml, seperti yang dijelaskan dalam Langkah 4: Mengubah endpoint target:
    • Jika Anda mendapatkan Hello, Guest! sebagai respons, Anda harus menambahkan /xml ke akhir endpoint target.
    • Jika Anda mendapatkan 404, pastikan Anda mengakses apigee.net, bukan apigee.com.
  2. Revisi terbaru proxy Anda di-deploy. Coba deploy ulang proxy API seperti yang dijelaskan dalam Men-deploy proxy API dan Men-undeploy proxy API.

Untuk melihat header permintaan dan respons HTTP, aktifkan panjang teks di curl dengan opsi -vs (v membuat respons panjang, tetapi s menyembunyikan beberapa detail yang kurang menarik). Contoh berikut mengasumsikan bahwa proxy bernama myproxy::

curl -vs https://YOUR_ENV_GROUP_HOSTNAME/myproxy  | python -m json.tool

Anda akan mendapatkan respons yang terlihat seperti berikut. Perhatikan bahwa header Content-Type dalam respons adalah application/json. Kebijakan XMLtoJSON mengubah header sebelum mengirim respons kembali.

*   Trying 10.20.30.40...
* TCP_NODELAY set
* Connected to apitest.acme.com (10.20.30.40) port 443 (#0)
...
> GET /myproxy HTTP/1.1
> Host: apitest.acme.com
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 25 May 2018 16:20:00 GMT
< Content-Type: application/json;charset=UTF-8
< Content-Length: 77
< Connection: keep-alive
< X-Powered-By: Apigee
< Access-Control-Allow-Origin: *
...
{ [77 bytes data]
{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

Langkah berikutnya

Pelajari lebih dalam