Memperluas portal pengembang dengan widget kustom
BERLAKU UNTUK: Pengembang | Dasar | Standar | Premium
Portal pengembang API Management memiliki editor visual dan widget bawaan sehingga Anda dapat menyesuaikan dan menata tampilan portal. Namun, Anda mungkin perlu menyesuaikan portal pengembang lebih lanjut dengan fungsionalitas kustom. Misalnya, Anda mungkin ingin mengintegrasikan portal pengembang dengan sistem dukungan yang melibatkan penambahan antarmuka kustom. Artikel ini menjelaskan cara menambahkan fungsionalitas kustom seperti widget kustom ke portal pengembang API Management Anda.
Tabel berikut ini meringkas dua opsi, dengan tautan ke detail selengkapnya.
Metode | Deskripsi |
---|---|
Widget kode HTML kustom | - Solusi ringan bagi penerbit API guna menambahkan logika kustom untuk kasus penggunaan dasar - Salin dan tempel kode HTML kustom ke dalam formulir, lalu portal pengembang merendernya dalam iframe |
Membuat dan mengunggah widget kustom | - Solusi pengembang untuk kasus penggunaan widget yang lebih canggih - Memerlukan implementasi lokal dalam React, Vue, atau TypeScript biasa - Perancah widget dan alat yang disediakan untuk membantu pengembang membuat widget dan mengunggah ke portal pengembang - Pembuatan, pengujian, dan penyebaran widget dapat diskrip melalui sumber terbuka React Component Toolkit - Mendukung alur kerja untuk kontrol sumber, penerapan versi, dan penggunaan kembali kode |
Catatan
Hosting mandiri portal pengembang adalah opsi ekstensibilitas bagi pelanggan yang perlu menyesuaikan kode sumber dari seluruh inti portal. Ini memberikan fleksibilitas lengkap untuk menyesuaikan pengalaman portal, tetapi memerlukan konfigurasi tingkat lanjut. Dengan hosting mandiri, Anda bertanggung jawab untuk mengelola siklus hidup kode lengkap: basis kode fork, pengembangan, penyebaran, host, patch, dan peningkatan.
Menggunakan widget kode HTML Kustom
Portal pengembang terkelola menyertakan widget kode HTML Kustom yang memungkinkan Anda menyisipkan kode HTML untuk kustomisasi portal sederhana. Misalnya, gunakan HTML kustom untuk menyematkan video atau untuk menambahkan formulir. Portal merender widget kustom dalam bingkai sebaris (iframe).
Di antarmuka administratif untuk portal pengembang, buka halaman atau bagian tempat Anda ingin menyisipkan widget.
Pilih ikon "plus" (+) berwarna abu-abu yang muncul saat Anda mengarahkan penunjuk ke halaman.
Di jendela Tambahkan widget, pilih Kode HTML kustom.
Pilih ikon "pensil" untuk menyesuaikan widget.
Masukkan Lebar dan Tinggi (dalam piksel) untuk widget.
Untuk mewarisi gaya dari portal pengembang (disarankan), pilih Terapkan gaya portal pengembang.
Catatan
Jika pengaturan ini tidak dipilih, elemen yang disematkan akan menjadi kontrol HTML biasa, tanpa gaya portal pengembang.
Ganti contoh kode HTML dengan konten kustom Anda.
Jika konfigurasi selesai, tutup jendela.
Simpan perubahan Anda, dan terbitkan ulang portal.
Catatan
Microsoft tidak mendukung kode HTML yang Anda tambahkan di sidget kode HTML Kustom.
Membuat dan mengunggah widget kustom
Untuk kasus penggunaan yang lebih canggih, Anda dapat membuat dan mengunggah widget kustom ke portal pengembang. API Management menyediakan perancah kode bagi pengembang untuk membuat widget kustom di React, Vue, atau TypeScript biasa. Perancah mencakup alat untuk membantu Anda mengembangkan dan menyebarkan widget Anda ke portal pengembang.
Prasyarat
- Menginstal runtimeNode.JS secara lokal
- Pengetahuan dasar tentang pemrograman dan pengembangan web
Membuat widget
Peringatan
Kode widget kustom Anda disimpan di penyimpanan blob Azure publik yang terkait dengan instans API Management Anda. Saat Anda menambahkan widget kustom ke portal pengembang, kode dibaca dari penyimpanan ini melalui titik akhir yang tidak memerlukan autentikasi, meskipun portal pengembang atau halaman dengan widget kustom hanya dapat diakses oleh pengguna yang diautentikasi. Jangan sertakan informasi atau rahasia sensitif dalam kode widget kustom.
Di antarmuka administratif untuk portal pengembang, pilih Widget kustom>Buat widget kustom baru.
Masukkan nama widget dan pilih Teknologi. Untuk informasi selengkapnya, lihat Templat widget, nanti di artikel ini.
Pilih Buat widget.
Buka terminal, buka lokasi tempat Anda ingin menyimpan kode widget, dan jalankan perintah berikut untuk mengunduh perancah kode:
npx @azure/api-management-custom-widgets-scaffolder
Buka folder yang baru dibuat yang berisi perancah kode widget.
cd <name-of-widget>
Buka folder di editor kode pilihan Anda, seperti Visual Studio Code.
Instal dependensi dan mulai proyek:
npm install npm start
Browser Anda seharusnya membuka tab baru dengan portal pengembang yang terhubung ke widget Anda dalam mode pengembangan.
Catatan
Jika tab tidak terbuka, lakukan hal berikut:
- Pastikan server pengembangan dimulai. Untuk melakukannya, periksa output di konsol tempat Anda memulai server di langkah sebelumnya. Ia harus menampilkan port tempat server berjalan (misalnya,
http://127.0.0.1:3001
). - Buka layanan API Management Anda di portal Azure dan buka portal pengembang Anda dengan antarmuka administratif.
- Tambahkan
/?MS_APIM_CW_localhost_port=3001
ke URL. Ubah nomor port jika server Anda berjalan pada port yang berbeda.
- Pastikan server pengembangan dimulai. Untuk melakukannya, periksa output di konsol tempat Anda memulai server di langkah sebelumnya. Ia harus menampilkan port tempat server berjalan (misalnya,
Terapkan kode widget dan uji secara lokal. Kode widget terletak di folder
src
, di subfolder berikut:app
- Kode untuk komponen widget yang dilihat dan berinteraksi dengan pengunjung portal pengembang yang diterbitkaneditor
- Kode untuk komponen widget yang Anda gunakan di antarmuka administratif portal pengembang untuk mengedit pengaturan widget
File
values.ts
berisi nilai default dan jenis properti kustom widget yang dapat Anda aktifkan untuk pengeditan.Properti kustom memungkinkan Anda menyesuaikan nilai dalam instans widget kustom dari antarmuka pengguna administratif portal pengembang, tanpa mengubah kode atau menyebarkan ulang widget kustom. Objek ini perlu diteruskan ke beberapa fungsi pembantu widget.
Menyebarkan widget kustom ke portal pengembang
Tentukan nilai berikut dalam file
deploy.js
yang terletak di akar proyek Anda:resourceId
- ID sumber daya layanan API Management Anda, dalam format berikut:subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ApiManagement/service/<api-management service-name>
managementApiEndpoint
- Titik akhir API Management Azure (bergantung pada lingkungan Anda, biasanyamanagement.azure.com
)apiVersion
- Opsional, gunakan untuk mengambil alih versi API manajemen default
Jalankan perintah berikut:
npm run deploy
Jika diminta, masuk ke akun Azure Anda.
Catatan
Saat diminta untuk masuk, Anda harus menggunakan akun anggota dari penyewa ID Microsoft Entra yang terkait dengan langganan Azure tempat layanan API Management Anda berada. Akun tidak boleh menjadi tamu atau akun federasi dan harus memiliki izin yang sesuai untuk mengakses antarmuka administratif portal.
Widget kustom sekarang disebarkan ke portal pengembang Anda. Dengan menggunakan antarmuka administratif portal, Anda dapat menambahkannya ke halaman di portal pengembang dan mengatur nilai untuk properti kustom apa pun yang dikonfigurasi di widget.
Menerbitkan portal pengembang
Setelah mengonfigurasi widget di antarmuka administratif, terbitkan ulang portal untuk membuat widget tersedia dalam produksi.
Catatan
- Jika menyebarkan kode widget yang diperbarui di kemudian hari, widget yang digunakan dalam produksi tidak diperbarui hingga Anda menerbitkan ulang portal pengembang.
- Kode widget yang dikompilasi dikaitkan dengan revisi portal tertentu. Jika menggunakan revisi portal sebelumnya, widget kustom yang terkait dengan revisi tersebut digunakan.
Templat widget
Kami menyediakan templat untuk teknologi berikut yang dapat Anda gunakan untuk widget:
- TypeScript (implementasi murni tanpa kerangka kerja apa pun)
- React
- Vue
Semua templat didasarkan pada bahasa pemrograman TypeScript.
Templat React berisi hook kustom yang disiapkan dalam file hooks.ts
dan penyedia yang mapan untuk berbagi konteks melalui pohon komponen dengan hook useSecrets
, useValues
, dan useEditorValues
khusus.
Gunakan paket @azure/api-management-custom-widgets-tools
Paket npm ini berisi fungsi-fungsi berikut untuk membantu mengembangkan widget kustom Anda serta menyediakan fitur termasuk komunikasi antara portal pengembang dan widget Anda:
Fungsi | Deskripsi |
---|---|
getValues | Menampilkan objek JSON yang berisi nilai yang diatur dalam editor widget yang dikombinasikan dengan nilai default |
getEditorValues | Menampilkan objek JSON yang hanya berisi nilai yang diatur di editor widget |
buildOnChange | Menerima jenis TypeScript dan menampilkan fungsi untuk memperbarui nilai widget. Fungsi yang ditampilkan mengambil sebagai parameter objek JSON dengan nilai yang diperbarui dan tidak menampilkan apa pun. Digunakan secara internal di editor widget |
askForSecrets | Menampilkan janji JavaScript, yang mana setelah resolusi menampilkan objek data JSON yang diperlukan untuk berkomunikasi dengan backend |
deployNodeJs | Menyebarkan widget ke penyimpanan blob |
getWidgetData | Menampilkan semua data yang diteruskan ke widget kustom Anda dari portal pengembang Digunakan secara internal dalam templat |
@azure/api-management-custom-widgets-tools/getValues
Fungsi yang menampilkan objek JSON yang berisi nilai yang telah Anda tetapkan di editor widget yang dikombinasikan dengan nilai default, diteruskan sebagai argumen.
Import {getValues} from "@azure/api-management-custom-widgets-tools/getValues"
import {valuesDefault} from "./values"
const values = getValues(valuesDefault)
Ia dimaksudkan untuk digunakan di bagian runtime (app
) widget Anda.
@azure/api-management-custom-widgets-tools/getEditorValues
Fungsi yang memiliki cara kerja yang sama seperti getValues
, tetapi hanya menampilkan nilai yang telah Anda tetapkan di editor.
Ia dimaksudkan untuk digunakan di editor widget Anda tetapi juga berfungsi dalam runtime.
@azure/api-management-custom-widgets-tools/buildOnChange
Catatan
Fungsi ini dimaksudkan untuk digunakan hanya di editor widget.
Menerima jenis TypeScript dan menampilkan fungsi untuk memperbarui nilai widget. Fungsi yang ditampilkan mengambil sebagai parameter objek JSON dengan nilai yang diperbarui dan tidak menampilkan apa pun.
import {Values} from "./values"
const onChange = buildOnChange<Values>()
onChange({fieldKey: 'newValue'})
@azure/api-management-custom-widgets-tools/askForSecrets
Fungsi ini menampilkan janji JavaScript, yang mana setelah resolusi menampilkan objek data JSON yang diperlukan untuk berkomunikasi dengan backend. token
diperlukan untuk autentikasi. userId
diperlukan untuk mengkueri sumber daya khusus pengguna. Nilai tersebut mungkin tidak terdefinisi saat portal dilihat oleh pengguna anonim. Objek Secrets
juga berisi managementApiUrl
, yang merupakan URL backend portal Anda, dan apiVersion
, yang merupakan apiVersion yang saat ini digunakan oleh portal pengembang.
Perhatian
Kelola dan gunakan token dengan hati-hati. Siapa pun yang memilikinya dapat mengakses data di layanan API Management Anda.
@azure/api-management-custom-widgets-tools/deployNodeJs
Fungsi ini menyebarkan widget Anda ke penyimpanan blob. Di semua templat, ia telah dikonfigurasi sebelumnya dalam file deploy.js
.
Ia menerima tiga argumen secara default:
serviceInformation
– Informasi terkait layanan Azure Anda:resourceId
- ID sumber daya layanan API Management Anda, dalam format berikut:subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ApiManagement/service/<api-management service-name>
managementApiEndpoint
- Titik akhir API manajemen Azure (bergantung pada lingkungan Anda, biasanyamanagement.azure.com
)
ID widget Anda – Nama widget Anda dalam format "ramah PC" (Karakter huruf kecil alfanumerik latin dan tanda hubung;
Contoso widget
menjadicontoso-widget
). Anda dapat menemukannya dipackage.json
pada bagian kunciname
.fallbackConfigPath
– Jalur untuk fileconfig.msapim.json
lokal, misalnya,./static/config.msapim.json
@azure/api-management-custom-widgets-tools/getWidgetData
Catatan
Fungsi ini digunakan secara internal dalam templat. Dalam sebagian besar implementasi, Anda tidak membutuhkannya.
Fungsi ini menampilkan semua data yang diteruskan ke widget kustom Anda dari portal pengembang. Ia berisi data lain yang mungkin berguna dalam penelusuran kesalahan atau dalam skenario yang lebih canggih. API ini kemungkinan berubah dengan potensi perubahan yang melanggar. Ia menampilkan objek JSON yang berisi kunci berikut:
values
- Semua nilai yang telah Anda tetapkan di editor, objek yang sama yang ditampilkan olehgetEditorData
instanceId
- ID instans widget ini
Menambahkan atau menghapus properti kustom
Properti kustom memungkinkan Anda menyesuaikan nilai dalam kode widget kustom dari antarmuka pengguna administratif portal pengembang, tanpa mengubah kode atau menyebarkan ulang widget kustom. Secara default, bidang input untuk empat properti kustom ditentukan. Anda dapat menambahkan atau menghapus properti kustom lainnya sesuai kebutuhan.
Peringatan
Jangan simpan nilai rahasia atau sensitif di properti kustom.
Menambahkan properti kustom:
- Dalam file
src/values.ts
, tambahkan ke jenisValues
nama properti dan jenis data yang akan disimpannya. - Dalam file yang sama, tambahkan nilai default untuk file tersebut.
- Buka file
editor.html
ataueditor/index
(lokasi yang tepat bergantung pada kerangka kerja yang Anda pilih) dan duplikat input yang ada atau tambahkan sendiri. - Pastikan bidang input melaporkan nilai yang diubah ke
onChange
fungsi, yang bisa Anda dapatkan daribuildOnChange
.
(Opsional) Menggunakan kerangka kerja lain
Untuk mengimplementasikan widget menggunakan kerangka kerja dan pustaka antarmuka pengguna JavaScript lain, Anda perlu menyiapkan proyek sendiri dengan panduan berikut:
- Dalam kebanyakan kasus, kami sarankan Anda memulai dari templat TypeScript.
- Instal dependensi seperti dalam proyek npm lainnya.
- Jika kerangka kerja pilihan Anda tidak kompatibel dengan alat build Vite, konfigurasikan sehingga menghasilkan file yang dikompilasi ke folder
./dist
. Secara opsional, tentukan ulang tempat file yang dikompilasi berada dengan menyediakan jalur relatif sebagai argumen keempat untuk fungsideployNodeJs
. - Untuk pengembangan lokal, file
config.msapim.json
harus dapat diakses di URLlocalhost:<port>/config.msapim.json
saat server berjalan.
Membuat widget kustom menggunakan sumber terbuka React Component Toolkit
Sumber terbuka React Component Toolkit menyediakan serangkaian skrip paket npm untuk membantu Anda mengonversi aplikasi React ke kerangka kerja widget kustom, mengujinya, dan menyebarkan widget kustom ke portal pengembang. Jika Anda memiliki akses ke layanan Azure OpenAI, toolkit juga dapat membuat widget dari deskripsi teks yang Anda berikan.
Saat ini, Anda dapat menggunakan toolkit dengan dua cara untuk menyebarkan widget kustom:
- Secara manual, dengan menginstal toolkit dan menjalankan skrip paket npm secara lokal. Anda menjalankan skrip secara berurutan untuk membuat, menguji, dan menyebarkan komponen React sebagai widget kustom ke portal pengembang.
- Menggunakan templat Azure Developer CLI (azd) untuk penyebaran end-to-end. Templat menyebarkan
azd
instans Azure API Management dan instans Azure OpenAI. Setelah sumber daya disediakan, skrip interaktif membantu Anda membuat, menguji, dan menyebarkan widget kustom ke portal pengembang dari deskripsi yang Anda berikan.
Catatan
Templat sampel React Component Toolkit dan Azure Developer CLI sumber terbuka proyek. Dukungan hanya diberikan melalui masalah GitHub di repositori masing-masing.
Konten terkait
Pelajari selengkapnya tentang portal pengembang: