Apa Itu API Monetization?
Liu Wei
November 11, 2022
Bayangkan Anda telah mengembangkan layanan yang mengumpulkan informasi diskon dari semua supermarket di kota Anda. Jika beberapa pengembang lain ingin mengakses data ini, mereka dapat menggunakan API untuk mendapatkan informasi yang mereka inginkan, dan kita dapat mengenakan biaya berdasarkan penggunaan API mereka. Mengubah data menjadi uang melalui API disebut sebagai API monetization. API monetization adalah cara ideal untuk membuat layanan Anda menghasilkan keuntungan.

Setelah sebuah perusahaan mengadopsi model bisnis API monetization, hal berikutnya yang perlu dipertimbangkan adalah model penetapan harga. Sebagian besar penyedia API menggunakan salah satu dari tiga model penetapan harga standar: akses terpaket, bayar per panggilan, dan bayar per bulan. Dalam semua model penetapan harga ini, penyedia API perlu menghitung jumlah panggilan API dari setiap pengguna. Oleh karena itu, mengidentifikasi identitas pengguna sangat penting karena pengguna mungkin akan dibatasi jika jumlah panggilan API melebihi paket layanan. Namun, hanya mengidentifikasi pengguna individu saja tidak cukup. Seringkali, pengguna korporatlah yang membeli layanan. Dalam hal ini, karyawan perusahaan berbagi akun penagihan yang sama ketika terkait dengan organisasi mereka. Jadi, sama pentingnya untuk mengidentifikasi organisasi tempat pengguna tersebut berada.
Aplikasi API Monetization
Aplikasi API monetization ada di mana-mana. Kode verifikasi SMS (Short Message/Messaging Service) adalah contoh khas dari API monetization. Vendor cloud juga menggunakan model ini untuk layanan seperti antrian pesan, pengenalan teks, dll. Vendor keamanan menggunakannya untuk layanan WAF (Web Application Firewall) dan penyaringan konten. Model monetisasi ini sangat sukses sehingga kita sangat membutuhkan tumpukan teknologi yang tepat untuk mendukungnya. Artinya, kita membutuhkan sesuatu untuk mengelola API kita dengan cermat.
Saat mengelola API, kita perlu mengatur siapa yang dapat mempublikasikan, apa yang akan dipublikasikan, dan di mana mempublikasikan, memastikan bahwa API sesuai dengan standar organisasi seperti pola URL, konvensi penamaan, dan aturan kontrol akses. Selain itu, setiap departemen perlu dapat mengelola API mereka sendiri secara independen, termasuk pembaruan API atau perbaikan desain, menjalankan kontrol lalu lintas, pembatasan kecepatan, dan strategi keamanan. Kita juga harus mengamati penggunaan, kinerja, dan metrik lainnya secara real-time.
API gateway adalah alat yang diperkenalkan untuk mengelola API. API gateway dapat menyelesaikan berbagai masalah dalam menangani API. Sebagai proxy pusat, API gateway mengarahkan semua permintaan klien yang masuk ke tujuan yang dimaksud (layanan backend), membuat API Anda lebih aman dan lebih mudah dikelola. Sebagian besar API gateway juga mendukung berbagai protokol otorisasi dan autentikasi sehingga pengguna dapat melakukan kontrol izin yang kompleks dan banyak fungsi lainnya, seperti pembatasan kecepatan.
Ada banyak proyek open-source populer untuk API gateway, yang paling terkenal adalah Apache APISIX dan solusi SaaS perusahaan alternatifnya, API7 Cloud.
Praktik API Monetization APISIX
Apache APISIX mendukung fungsi-fungsi penting ini dan terintegrasi dengan berbagai platform observabilitas (Prometheus, OpenTelemetry, Apache Skywalking, dll.). Plugin-plugin yang terintegrasi ini meningkatkan kemampuan Apache APISIX untuk menganalisis API, sehingga mewujudkan observabilitas yang sangat komprehensif. Selain itu, untuk masalah identifikasi pengguna, Apache APISIX mengusulkan konsep "consumer".

Consumer yang berbeda sesuai dengan pengguna yang berbeda. Setiap consumer terikat dengan plugin dan konfigurasi upstream-nya. Consumer sangat berguna ketika Anda memiliki consumer yang berbeda yang meminta API yang sama, dan Anda perlu menjalankan konfigurasi plugin dan upstream yang berbeda. Dalam hal ini, sistem autentikasi akan mengidentifikasi berdasarkan consumer untuk mengonfigurasi aturan yang berbeda, sehingga memudahkan pengelolaan pengguna.

Tetapi hanya mendukung consumer saja tidak cukup. Untuk pengguna perusahaan, beberapa consumer perlu berbagi kuota konsumsi yang sama, dan jika kita mengelola konfigurasi setiap consumer secara terpisah, operasinya akan terlalu rumit. Oleh karena itu, APISIX mengusulkan konsep lain yaitu "consumer group". Beberapa consumer dapat berbagi set konfigurasi yang sama dan kuota konsumsi yang sama.

Setelah memahami praktik APISIX dalam API monetization, mari kita lihat aplikasi spesifiknya.
- Mengonfigurasi fungsi pembatasan kecepatan untuk perusahaan, dan pengguna perusahaan berbagi konfigurasi yang sama
# create consumer group curl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "plugins": { "limit-count": { "count": 200, "time_window": 60, "rejected_code": 503, "group": "$consumer_group_id" } } }' # create consumer 1 curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "username": "jack", "plugins": { "key-auth": { "key": "auth-one" } }, "group_id": "company_a" }' # create consumer 2 curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "username": "johnson", "plugins": { "key-auth": { "key": "auth-two" } }, "group_id": "company_a" }' # create route curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/get", "plugins": { "key-auth": {} }, "upstream": { "type": "roundrobin", "nodes": { "httpbin.org": 1 } } }' # hit the route curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one' ... X-RateLimit-Limit: 200 X-RateLimit-Remaining: 199 ... curl -i http://127.0.0.1:9180/get -H 'apikey: auth-two' ... X-RateLimit-Limit: 200 X-RateLimit-Remaining: 198 ... # change count value to 2 requests per minute curl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "plugins": { "limit-count": { "count": 2, "time_window": 60, "rejected_code": 503, "group": "$consumer_group_id" } } }' # hit the route curl -i http://127.0.0.1:9180/get -H 'apikey: auth-two' ... X-RateLimit-Limit: 2 X-RateLimit-Remaining: 1 ... curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one' ... X-RateLimit-Limit: 2 X-RateLimit-Remaining: 0 ... # no count, HTTP 503 curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one' HTTP/1.1 503 Service Temporarily Unavailable # after a minute, count recover curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one' ... X-RateLimit-Limit: 2 X-RateLimit-Remaining: 1 ... # create another route curl http://127.0.0.1:9180/apisix/admin/routes/2 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/anything", "plugins": { "key-auth": {} }, "upstream": { "type": "roundrobin", "nodes": { "httpbin.org": 1 } } }' # you could see both routes share the same count curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one' ... X-RateLimit-Limit: 2 X-RateLimit-Remaining: 1 ... curl -i http://127.0.0.1:9180/anything -H 'apikey: auth-one' HTTP/1.1 503 Service Temporarily Unavailable ...
Ringkasan
Untuk mengubah layanan dan data menjadi pendapatan melalui API monetization, perusahaan perlu memperkenalkan alat manajemen API profesional: API gateway. API gateway yang paling populer adalah Apache APISIX, yang memiliki praktik kaya dalam API monetization. APISIX menciptakan konsep seperti consumer dan consumer group untuk memudahkan pengelolaan API dan memungkinkan perusahaan untuk memonetisasi API dengan lebih lancar.