3 poin oleh kunggom 2023-01-11 | 1 komentar | Bagikan ke WhatsApp

Bagi orang yang harus membuat dan memelihara aplikasi yang terkait dengan layanan cloud Microsoft 365 yang disediakan Microsoft, ada satu hal yang nyaris mustahil dihindari, yaitu Microsoft Graph API. Bagi yang belum tahu apa itu, singkatnya ini adalah RESTful API yang memungkinkan akses terpadu ke semua resource cloud yang disediakan MS. MS juga menyediakan Graph SDK untuk beberapa bahasa agar API ini lebih mudah digunakan.

Masalahnya, bagian yang menggunakan API ini selama ini cukup sulit untuk diuji. Bagian yang paling membuat saya merasakan hal ini terutama saat rate limit dari Graph API terkena dan respons yang diterima adalah 429 Too Many Requests. Jika menggunakan Graph SDK, ketika menerima kode respons 429 karena throttling, SDK memang akan otomatis melakukan retry berdasarkan nilai Retry-After di header respons. Namun, dalam beberapa kasus, lebih baik tidak melakukan retry dan langsung gagal dengan cepat, atau menerapkan kebijakan yang berbeda dari default. Masalahnya, karena tidak ada cara yang memadai untuk menguji situasi seperti ini di lingkungan pengembangan, saya pernah baru menyadari setelah produk awal dirilis bahwa kebijakan retry request di Graph SDK perlu diubah dari default, lalu memperbaikinya di versi berikutnya.

MS juga tampaknya menyadari hal ini sampai batas tertentu, sehingga mereka menambahkan fitur yang memock kondisi respons 429 jika parameter test429=true ditambahkan ke URL request API. Namun, fitur ini punya keterbatasan karena hanya bekerja pada endpoint yang terkait dengan SharePoint/OneDrive.
https://pnp.github.io/blog/post/…

Di tengah situasi seperti itu, akhirnya alat yang menggembirakan ini muncul pada awal tahun baru. Namanya Microsoft Graph Developer Proxy.
Ini adalah alat yang dapat memock berbagai nilai respons yang dikembalikan oleh Graph API, sekaligus memudahkan reproduksi berbagai error maupun throttling. Nilai tambah lainnya, request yang diuji tidak keluar dari lingkungan pengembangan lokal. Meski masih berada pada tahap awal pengembangan, kabarnya versi resminya akan dirilis dalam tahun ini. Setidaknya bagi orang yang menangani pekerjaan terkait, kemunculan alat yang benar-benar praktis ini sangatlah menyenangkan.

1 komentar

 
kunggom 2023-01-11

Sebagai referensi, sebelum alat ini muncul pun bukan berarti sama sekali tidak ada cara untuk meniru situasi ketika Graph API terkena 429. Memang ada cara memakai alat seperti Fiddler. Namun, itu cukup merepotkan.

Menurut README, alat yang diperkenalkan di atas dibuat oleh Waldek Mastykarz dalam ajang hackathon tahun lalu (2022), dan jika melihat tulisan blog lamanya (2018), ia memperkenalkan cara mensimulasikan situasi ketika SharePoint API terkena 429 dengan Fiddler.
https://blog.mastykarz.nl/simulating-throttling-sharepoint/