Dalam dunia layanan web yang unik, sebuah API baru bernama No-as-a-Service (NAAS) telah menarik perhatian para pengembang dan penggemar teknologi. Layanan ringan ini, yang menyediakan respons penolakan acak melalui endpoint API sederhana, telah memicu kegembiraan sekaligus kritik teknis di kalangan komunitas pengembang.
Masalah Pembatasan Akses
Layanan ini awalnya menerapkan pembatasan akses ketat sebanyak 10 permintaan per menit per alamat IP, yang dengan cepat menjadi titik masalah bagi pengguna. Banyak komentator melaporkan menerima pesan kesalahan Too many requests, please try again later meskipun mereka belum membuat permintaan mendekati 10 kali. Ini menunjukkan adanya masalah implementasi mendasar tentang bagaimana pembatasan akses diterapkan.
Seorang pengguna mengidentifikasi bahwa pembatasan akses kemungkinan diterapkan pada alamat IP milik Cloudflare daripada IP pengguna individu, menyebabkan semua pengguna di balik node Cloudflare yang sama berbagi kuota pembatasan akses yang sama. Pengamatan ini didukung oleh adanya header Express dalam respons, yang menunjukkan bahwa pembatasan akses terjadi di tingkat aplikasi daripada di tingkat CDN.
Menanggapi umpan balik yang luas ini, pengembang (hotheadhacker) akhirnya menghapus pembatasan akses sepenuhnya, mengumumkan secara sederhana: The API rate limiting has been removed.
Detail API No-as-a-Service:
- URL Dasar: https://naas.isalman.dev/no
- Metode: GET
- Batas Kecepatan Awal: 10 permintaan per menit per IP (sekarang dihapus)
- Format Respons: JSON dengan kolom "reason"
- Repositori GitHub: https://github.com/hotheadhacker/no-as-a-service
Masalah Implementasi:
- Hanya 25-26 respons unik meskipun mengklaim "1000+"
- Beberapa respons diulang hingga 50 kali dalam file reasons.json
- Pembatasan kecepatan awalnya diterapkan pada tingkat proxy daripada IP asal
Masalah Respons Duplikat
Poin diskusi penting lainnya berpusat pada kualitas dan keunikan pesan penolakan. Meskipun dokumentasi mengklaim memiliki 1000+ alasan penolakan universal, pengguna yang memeriksa kode sumber menemukan bahwa file reasons.json sebagian besar berisi duplikat dari 25 respons yang sama.
I made a lot of things like this as a noob and threw them up on github. As you gain experience, these projects become a testament to how far you've come.
Beberapa orang berspekulasi bahwa duplikasi mungkin merupakan pendekatan yang disengaja untuk membuat sistem distribusi berbobot, di mana respons tertentu muncul lebih sering daripada yang lain. Yang lain menyarankan bahwa ini mungkin hanya artefak dari penggunaan LLM untuk menghasilkan daftar, karena model bahasa besar sering mengulangi entri ketika diminta untuk menghasilkan daftar yang panjang.
Pertimbangan Implementasi
Kesederhanaan proyek ini memicu diskusi menarik tentang organisasi kode dan kolaborasi. Beberapa pengembang menyarankan bahwa menyimpan respons dalam satu file JSON besar dapat menciptakan konflik penggabungan saat menerima kontribusi, mengusulkan pendekatan alternatif seperti menggunakan folder file teks biasa yang dikelompokkan berdasarkan tema atau kontributor.
Yang lain membantah bahwa untuk layanan ringan seperti ini, implementasi saat ini sudah cukup, mencatat bahwa konflik penggabungan Git dalam file baris per baris sederhana akan relatif mudah diselesaikan.
Komunitas juga mengusulkan perbaikan potensial, termasuk penanganan kesalahan yang lebih canggih yang akan mempertahankan nada humor layanan bahkan ketika akses dibatasi. Seorang pengguna menyarankan untuk memperluas layanan untuk mencakup berbagai mode kegagalan yang dapat berguna untuk menguji klien HTTP, seperti kode status HTTP yang berbeda, masalah TLS, dan respons dengan sintaks tidak valid.
Terlepas dari keterbatasan teknisnya, banyak pengguna menghargai humor dan kesederhanaan proyek ini. Layanan ini menunjukkan bahwa bahkan implementasi paling dasar sekalipun dapat memberikan nilai hiburan dan memicu diskusi teknis yang menarik di komunitas pengembang. Baik dipandang sebagai kebaruan atau kesempatan belajar, No-as-a-Service menawarkan pendekatan ringan terhadap desain API yang beresonansi dengan pengembang di semua tingkat pengalaman.
Referensi: no-as-a-service