Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Lihat dokumentasi
Apigee Edge.
Apigee memiliki utilitas canggih yang disebut Apigee API yang menawarkan layanan seperti:
- Men-deploy atau membatalkan deployment proxy API
- Mengonfigurasi host virtual, keystore, dan truststore, dan sebagainya
- Membuat, menghapus, dan memperbarui entity seperti peta nilai kunci (KVM), produk API, aplikasi developer, developer, kunci konsumen, dan sebagainya
- Mengambil informasi tentang entity ini
Layanan ini dapat diakses melalui komponen yang disebut Management Server di platform Apigee. Layanan ini dapat dipanggil dengan mudah dengan bantuan panggilan API sederhana.
Terkadang kita mungkin perlu menggunakan satu atau beberapa layanan ini dari proxy API saat runtime. Hal ini karena entitas seperti KVM, token akses OAuth, produk API, aplikasi developer, developer, kunci konsumen, dan sebagainya berisi informasi yang berguna dalam bentuk pasangan nilai kunci, atribut kustom, atau sebagai bagian dari profilnya.
Misalnya, Anda dapat menyimpan informasi berikut di KVM agar lebih aman dan dapat diakses saat runtime:
- URL target backend
- Properti lingkungan
- Kredensial keamanan sistem backend atau pihak ketiga
Demikian pula, Anda mungkin ingin mendapatkan daftar produk API atau alamat email developer saat runtime. Informasi ini akan tersedia sebagai bagian dari profil aplikasi developer.
Semua informasi ini dapat digunakan secara efektif saat runtime untuk mengaktifkan perilaku dinamis dalam kebijakan atau kode kustom dalam Apigee.
Antipola
Api Apigee lebih disukai dan berguna untuk tugas administratif dan tidak boleh digunakan untuk melakukan logika runtime apa pun dalam alur proxy API. Hal ini karena:
- Menggunakan Apigee API untuk mengakses informasi tentang entitas seperti KVM, token akses OAuth, atau untuk tujuan lain dari proxy API akan menyebabkan dependensi pada Server Pengelolaan.
- Server Pengelolaan bukan bagian dari komponen runtime Apigee sehingga mungkin tidak sangat tersedia.
- Server Pengelolaan juga mungkin tidak disediakan dalam jaringan atau pusat data yang sama sehingga dapat menyebabkan latensi jaringan saat runtime.
- Entri di Server Pengelolaan di-cache selama jangka waktu yang lebih lama, sehingga Anda mungkin tidak dapat langsung melihat data terbaru di proxy API jika Anda melakukan operasi tulis dan baca dalam waktu singkat.
- Meningkatkan hop jaringan saat runtime.
Pada contoh kode di bawah, panggilan Apigee API dilakukan melalui kode JavaScript kustom untuk mengambil informasi dari KVM:
var response = httpClient.send('https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/keyvaluemaps')
Jika Server Pengelolaan tidak tersedia, kode JavaScript yang memanggil panggilan API Apigee akan gagal. Hal ini kemudian menyebabkan permintaan API gagal.
Dampak
- Memperkenalkan dependensi tambahan pada Server Pengelolaan selama runtime. Setiap kegagalan di Server Pengelolaan akan memengaruhi panggilan API.
- Kredensial pengguna untuk Apigee API harus disimpan secara lokal atau di beberapa penyimpanan aman seperti KVM terenkripsi.
- Implikasi performa karena memanggil layanan pengelolaan melalui jaringan.
- Mungkin tidak langsung melihat nilai yang diperbarui karena masa berlaku cache yang lebih lama di Server Pengelolaan.
Praktik terbaik
Ada cara yang lebih efektif untuk mengambil informasi dari entitas seperti KVM, produk API, aplikasi developer, developer, kunci konsumen, dan sebagainya saat runtime. Berikut adalah beberapa contohnya:
- Gunakan kebijakan KeyValueMapOperations untuk mengakses informasi dari KVM. Berikut adalah contoh kode
yang menunjukkan cara mengambil informasi dari KVM:
<!-- /antipatterns/examples/2-6.xml --> <KeyValueMapOperations mapIdentifier="urlMap" async="false" continueOnError="false" enabled="true" name="GetURLKVM"> <DisplayName>GetURLKVM</DisplayName> <ExpiryTimeInSecs>86400</ExpiryTimeInSecs> <Scope>environment</Scope> <Get assignTo="urlHosti" index="2"> <Key> <Parameter>urlHost_1</Parameter> </Key> </Get> </KeyValueMapOperations>
- Untuk mengakses informasi tentang produk API, aplikasi developer, developer, kunci konsumen, dan sebagainya
di proxy API, Anda dapat melakukan salah satu hal berikut:
- Jika alur API Proxy Anda memiliki kebijakan VerifyAPIKey, Anda dapat mengakses informasi menggunakan variabel alur yang diisi sebagai bagian dari kebijakan ini. Berikut adalah contoh kode yang menunjukkan cara mengambil nama dan informasi created_by Aplikasi Developer menggunakan JavaScript:
<!-- /antipatterns/examples/2-7.xml --> print("Application Name ", context.getVariable(""verifyapikey. VerifyAPIKey.app.name")); print("Created by:", context.getVariable("verifyapikey. VerifyAPIKey.app.created_by"));
- Jika alur API Proxy Anda tidak memiliki kebijakan VerifyAPIKey, Anda dapat mengakses
profil produk API, aplikasi developer, dan sebagainya menggunakan kebijakan
AccessEntity
danExtractVariables
:- Ambil profil aplikasi developer dengan kebijakan AccessEntity:
<!-- /antipatterns/examples/2-8.xml --> <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetDeveloperApp"> <DisplayName>GetDeveloperApp</DisplayName> <EntityType value="app"></EntityType> <EntityIdentifier ref="developer.app.name" type="appname"/> <SecondaryIdentifier ref="developer.id" type="developerid"/> </AccessEntity>
- Ekstrak
appId
dari aplikasi developer dengan kebijakan ExtractVariables:<!-- /antipatterns/examples/2-9.xml --> <ExtractVariables name="Extract-Developer App-Info"> <!-- The source element points to the variable populated by AccessEntity policy. The format is <policy-type>.<policy-name> In this case, the variable contains the whole developer profile. --> <Source>AccessEntity.GetDeveloperApp"</Source> <VariablePrefix>developerapp</VariablePrefix> <XMLPayload> <Variable name="appld" type="string"> <!-- You parse elements from the developer profile using XPath. --> <XPath>/App/AppId</XPath> </Variable> </XMLPayload> </ExtractVariables>
- Ambil profil aplikasi developer dengan kebijakan AccessEntity:
- Jika alur API Proxy Anda memiliki kebijakan VerifyAPIKey, Anda dapat mengakses informasi menggunakan variabel alur yang diisi sebagai bagian dari kebijakan ini. Berikut adalah contoh kode yang menunjukkan cara mengambil nama dan informasi created_by Aplikasi Developer menggunakan JavaScript: