Dokumentasi API sering berkembang lebih cepat daripada satu berkas spesifikasi. Tim mungkin perlu menambahkan petunjuk untuk mitra, menyembunyikan endpoint internal dari dokumen publik, atau menyesuaikan deskripsi untuk portal tertentu. Menyalin berkas OpenAPI untuk setiap kebutuhan tampak mudah, tetapi salinan yang berbeda berisiko tertinggal ketika API berubah. OpenAPI Overlays menawarkan pendekatan yang lebih teratur: perubahan dokumentasi disimpan sebagai lapisan terpisah yang dapat diterapkan berulang kali pada deskripsi OpenAPI sumber.
Apa Itu OpenAPI Overlays?
OpenAPI Overlay adalah dokumen yang mendeskripsikan perubahan terhadap dokumen OpenAPI tanpa harus mengubah berkas sumber secara langsung. Spesifikasi Overlay menyediakan daftar tindakan yang dijalankan berurutan. Tindakan dapat memperbarui nilai, menghapus bagian tertentu, atau menyalin nilai dari lokasi lain sesuai versi spesifikasi dan kemampuan alat yang digunakan.
Misalnya, spesifikasi utama memuat seluruh endpoint untuk tim internal. Untuk dokumentasi mitra, tim dapat memakai overlay untuk mengganti deskripsi, menambahkan informasi kontak, atau menghilangkan operasi yang tidak perlu ditampilkan. Sumber API tetap menjadi acuan utama, sedangkan penyesuaian disimpan di berkas terpisah yang dapat ditinjau dan diberi versi.
Mengapa Tidak Membuat Salinan OpenAPI?
Salinan terpisah tampak praktis ketika hanya ada dua versi dokumentasi. Masalah muncul ketika endpoint, parameter, atau skema respons berubah. Perubahan itu harus diterapkan secara manual ke setiap salinan. Jika satu versi tertinggal, pengembang integrasi bisa membaca kontrak yang tidak lagi sesuai dengan perilaku layanan.
Overlay membantu memisahkan fakta API dari cara fakta tersebut disajikan. Definisi endpoint dan skema tetap dikelola di sumber utama, sedangkan penyesuaian deskripsi atau penyaringan dokumentasi ditempatkan pada lapisan tambahan. Pendekatan ini bukan pengganti version control atau pemeriksaan kontrak; overlay sebaiknya disimpan, ditinjau, dan diuji bersama spesifikasi sumber.
Bagaimana Struktur Overlay Bekerja?
Dokumen overlay biasanya berisi versi spesifikasi, metadata dokumen, referensi opsional ke spesifikasi yang dituju, dan daftar tindakan. Setiap tindakan memilih bagian target menggunakan ekspresi JSONPath lalu menentukan perubahan yang diinginkan. Nama properti dan sintaks target harus mengikuti versi spesifikasi yang dipakai; jangan menganggap semua implementasi mendukung fitur yang sama.
Sebagai contoh, overlay dapat menargetkan bagian informasi umum untuk mengganti deskripsi menjadi teks yang lebih sesuai bagi mitra. Overlay lain dapat menargetkan operasi tertentu untuk mengubah penjelasan atau mengecualikan operasi yang tidak relevan dari dokumentasi publik. Contoh tersebut perlu divalidasi dengan alat yang mendukung versi Overlay yang dipilih, karena penamaan properti dan perilaku implementasi harus mengikuti spesifikasi resminya.
Contoh Alur Kerja yang Aman
- Jaga satu sumber utama. Simpan spesifikasi OpenAPI di repositori dan perlakukan perubahan kontrak sebagai perubahan kode yang ditinjau.
- Buat overlay berdasarkan tujuan. Pisahkan overlay untuk portal mitra, dokumentasi publik, atau deskripsi yang dipakai generator. Hindari satu overlay besar yang sulit dipahami.
- Gunakan target sesempit mungkin. Target yang terlalu luas dapat mengubah banyak operasi tanpa sengaja. Pilih jalur yang spesifik dan dokumentasikan alasannya.
- Uji hasil akhirnya. Terapkan overlay pada salinan spesifikasi di pipeline CI, lalu validasi dokumen hasil. Periksa bahwa endpoint penting tidak hilang, referensi skema tetap valid, dan deskripsi sesuai audiens.
- Tinjau perubahan seperti kode. Pull request sebaiknya menampilkan perubahan overlay sekaligus hasil spesifikasi yang telah digabungkan. Ini memudahkan reviewer memahami dampaknya.
Risiko dan Batasan yang Perlu Diperhatikan
Overlay tidak otomatis menjamin dokumentasi benar. Ekspresi target dapat cocok dengan nol elemen atau lebih banyak elemen daripada yang diperkirakan. Tindakan juga dijalankan berurutan, sehingga hasil tindakan sebelumnya menjadi masukan bagi tindakan berikutnya. Karena itu, uji overlay terhadap versi sumber yang benar dan periksa hasil akhir, bukan hanya berkas overlay-nya.
Perhatikan pula informasi sensitif. Menghapus endpoint internal dari dokumentasi publik bukan pengganti kontrol akses pada server. Jika spesifikasi memuat nama layanan internal, contoh token, alamat jaringan privat, atau detail operasional, tinjau apakah informasi itu aman dibagikan. Jangan pernah menyimpan kredensial nyata di berkas OpenAPI atau overlay.
Kompatibilitas alat adalah pertimbangan lain. Dukungan terhadap versi Overlay dan tindakan tertentu dapat berbeda antarproduk. Catat versi alat di pipeline, pin dependensi bila memungkinkan, dan uji pembaruan alat sebelum menerapkannya ke proses rilis. Untuk proyek besar, simpan hasil gabungan sebagai artefak agar perubahan mudah diaudit.
Kapan Overlay Paling Berguna?
Overlay cocok ketika organisasi memiliki satu kontrak API, tetapi memerlukan beberapa variasi dokumentasi yang terkontrol. Contohnya, tim produk ingin memperbaiki deskripsi tanpa menyentuh definisi endpoint, tim developer relations membutuhkan teks yang lebih ramah pembaca, atau dokumentasi publik perlu mengecualikan operasi tertentu. Untuk perubahan perilaku API yang sebenarnya—seperti menambah parameter wajib atau mengganti struktur respons—ubah spesifikasi sumber, bukan hanya overlay.
Baca juga: API Versioning: Mengubah Endpoint tanpa Memutus Integrasi.
Referensi resmi: Spesifikasi resmi OpenAPI Overlay.
Kesimpulan
OpenAPI Overlays memudahkan penyesuaian dokumentasi tanpa membuat banyak salinan spesifikasi, asalkan perubahan dapat diuji dan ditinjau. Simpan overlay bersama kode sumber, validasi hasil gabungan di pipeline, dan pastikan penyaringan dokumentasi tidak pernah dianggap sebagai pengganti kontrol akses pada API yang sebenarnya.
PENGALAMAN BARU Coba tampilan baru Penasaran dengan pengalaman membaca Nazuaf versi modern? Coba tampilan baru yang dirancang agar nyaman dibaca dari ponsel dan pc. Buka versi modern dan lanjutkan membaca artikel ini. Jelajahi tampilan baru Nazuaf versi modern · Ketuk kartu untuk mencoba