Cara Membuat Inventaris API dan Menemukan Endpoint Shadow
Rekonsiliasi inventaris dan bukti penghentian
Bangun inventaris dari kode route, kontrak OpenAPI, konfigurasi gateway dan load balancer, manifest deployment, DNS, telemetry klien, serta pendaftaran webhook. Tiap sumber menangkap kelalaian berbeda: build mobile lama mungkin memanggil route v1 tanpa dokumentasi, sedangkan handler health yang hanya ada di manifest dapat melewati autentikasi gateway. Catat host, path, method, environment, konsumen, autentikasi, klasifikasi data, owner, sumber rilis, dan tanggal penghentian.
Saat sumber bertentangan, pertahankan selisihnya. Route /debug/config yang sepi tidak boleh hilang dari inventaris; owner platform harus membatasi atau menonaktifkannya. Untuk callback mitra, kumpulkan konfigurasi signature dan identitas pengirim, bukan menganggap TLS membuat input tepercaya. Bandingkan hasil scan eksternal hanya dalam scope yang diizinkan lalu cocokkan dengan bukti deployment sebelum menyebut host tidak dikenal.
Penghentian selesai ketika konsumen baru diblokir, owner menyetujui migrasi, route gateway dan handler deployment dihapus, serta request terkontrol memberi hasil non-bisnis yang dimaksud. Simpan pemeriksaan itu bersama catatan perubahan agar rollback tidak memulihkan endpoint diam-diam. Pengecualian sementara membutuhkan interface bernama, batas paparan privat, milestone migrasi konsumen, dan tanggal review; tanpa owner pilih containment atau penghapusan.
Kepemilikan mencakup jalur kontak yang dapat dijangkau di engineering, bukan klaim publik. Ikat setiap aset ke repository, unit deployment, pipeline perubahan, dan bukti konsumen. API berversi memerlukan tanggal serta keputusan migrasi, bukan label didukung tanpa batas. Uji akurasi inventaris dengan menonaktifkan route staging terkontrol dan memastikan ekspor route, monitoring, serta register diperbarui bersama. Penerima webhook tetap terhitung terekspos walau tidak ada tautan browser menuju ke sana.
Rekonsiliasi bukti independen
Inventaris membandingkan sumber yang gagal dengan cara berbeda: kontrak OpenAPI dan protobuf, route gateway, konfigurasi ingress serta load balancer, manifest deployment, DNS, telemetry klien, build mobile, pendaftaran webhook, dan trafik teramati. Buat register berisi host, port, protokol, method, versi, environment, konsumen, autentikasi, klasifikasi data, repository, unit deployment, owner, dan keputusan penghentian. Endpoint health dalam manifest, layanan gRPC pada port tidak umum, dan callback mitra tetap interface walau tidak ada navigasi publik.
Rekonsiliasi menghasilkan selisih, bukan penghapusan otomatis. Route di trafik tetapi tidak di kontrak mungkin klien mobile lama; route kontrak tanpa gateway mungkin fitur belum selesai; nama DNS tanpa deployment mungkin usang atau risiko takeover. Simpan sumber, timestamp, dan method request untuk setiap selisih. Owner mengklasifikasikan sebagai disengaja, dimigrasikan, dibatasi, atau dihapus. Trafik sepi bukan bukti interface aman atau tidak digunakan.
Kasus versi dan deprecation
Ambil request /v1/device/token dari klien lama sintetis lalu bandingkan dengan kontrak /v2/devices/token saat ini. Identifikasi metode autentikasi, field, data respons, build konsumen, dan owner migrasi. Blokir konsumen v1 baru lebih dulu, sediakan jalur migrasi berbatas waktu, lalu batasi scope v1 sambil telemetry mengukur penggunaan tersisa. Saat tanggal pensiun tiba, hapus mapping gateway serta handler deployment, kemudian panggil route lama dari fixture. Hasil yang diharapkan adalah respons non-bisnis yang disengaja; route tidak boleh mengembalikan token, data debug, atau fallback v2.
Uji rollback juga. Rollback deployment tidak boleh memulihkan endpoint tanpa catatan inventaris dan notifikasi owner. Hapus DNS pensiun atau arahkan ke sink terkontrol. Untuk endpoint webhook, validasi signature pengirim dan kepemilikan tujuan sebelum menyebutnya terdokumentasi.
Catatan penerimaan
Status lulus membutuhkan setiap interface terjangkau memiliki owner, lifecycle, deskripsi autentikasi, dan sumber bukti. Simpan ekspor gateway, revisi manifest, hasil DNS, sampel trafik tersamarkan, serta probe penghentian. Interface tidak dikenal gagal sampai dinonaktifkan, dibatasi jaringan, atau didokumentasikan. Pengecualian menyebut host serta route tepat, konsumen diizinkan, batas paparan privat, milestone migrasi, tanggal review, dan test penghapusan. Inventaris adalah artefak engineering hidup, bukan klaim ketersediaan layanan publik.
Pemeriksaan serah-terima owner
Baris inventaris membutuhkan lebih dari label tim. Sebutkan owner repository dan deployment yang dapat menghapus route, serta owner produk yang dapat menyetujui migrasi konsumen. Uji serah-terima dengan memilih satu endpoint staging lalu meminta setiap owner menemukan kontrak, konfigurasi, dan log hanya dari field register. Jika salah satu tidak dapat melakukannya, inventaris belum memiliki akuntabilitas yang dapat dipakai.
Masukkan kegagalan autentikasi dan telemetry versi lama ke review. 401 berulang dapat menunjukkan klien otomasi yang terlupakan; 404 berulang dapat menunjukkan drift dokumentasi. Kedua sinyal tidak membuktikan intent, maka selidiki sebelum memblokir konsumen. Simpan sampel tersamarkan dan hanya pertahankan identifier operasional yang diperlukan untuk tindak lanjut. Penghentian versi selesai setelah route, handler, DNS, dan aturan monitoring menyetujui state pensiun yang sama.
Register disposisi interface
| Interface dan lifecycle | Owner | Bukti | Hasil yang diharapkan | Hasil teramati / status | Pengecualian | Penutupan |
|---|---|---|---|---|---|---|
api-stg.example.test/v1/device/token; dipensiunkan | Owner platform API; owner migrasi mobile | Ekspor gateway gw-20260613; manifest rev-441; probe klien lama | Route dan handler tidak ada; respons non-bisnis disengaja | 410; mapping gateway tidak ada; handler tidak ada — ditutup | Tidak ada | DNS, monitoring, register, dan uji rollback sepakat pada state pensiun; perubahan API-902 ditutup |