Dalam dunia perkhidmatan web yang pelik, API baharu yang dipanggil No-as-a-Service (NAAS) telah menarik perhatian pembangun dan penggemar teknologi. Perkhidmatan ringkas ini, yang menyediakan respons penolakan rawak melalui titik akhir API yang mudah, telah mencetuskan kedua-dua hiburan dan kritikan teknikal dalam komuniti pembangun.
Masalah Pengehadan Kadar
Perkhidmatan ini pada mulanya melaksanakan had kadar yang ketat sebanyak 10 permintaan seminit bagi setiap alamat IP, yang dengan cepat menjadi titik kesakitan bagi pengguna. Ramai pengulas melaporkan menerima mesej ralat Too many requests, please try again later walaupun tidak membuat hampir 10 permintaan. Ini mencadangkan isu pelaksanaan asas dengan bagaimana pengehadan kadar sedang digunakan.
Seorang pengguna mengenal pasti bahawa pengehadan kadar berkemungkinan digunakan pada alamat IP Cloudflare dan bukannya IP pengguna individu, menyebabkan semua pengguna di belakang nod Cloudflare yang sama berkongsi kuota had kadar yang sama. Pemerhatian ini disokong oleh kehadiran pengepala Express dalam respons, menunjukkan bahawa pengehadan kadar berlaku pada tahap aplikasi dan bukannya pada tahap CDN.
Sebagai respons kepada maklum balas meluas ini, pembangun (hotheadhacker) akhirnya menghapuskan pengehadan kadar sepenuhnya, mengumumkan dengan ringkas: The API rate limiting has been removed.
Butiran API No-as-a-Service:
- URL Asas: https://naas.isalman.dev/no
- Kaedah: GET
- Had Kadar Awal: 10 permintaan seminit setiap IP (kini dibuang)
- Format Respons: JSON dengan medan "reason"
- Repositori GitHub: https://github.com/hotheadhacker/no-as-a-service
Isu Pelaksanaan:
- Hanya 25-26 respons unik walaupun mendakwa "1000+"
- Beberapa respons diulang sehingga 50 kali dalam fail reasons.json
- Had kadar pada mulanya digunakan pada tahap proksi dan bukannya IP asal
Isu Respons Berulang
Satu lagi perbincangan penting berkisar tentang kualiti dan keunikan mesej penolakan. Walaupun dokumentasi mendakwa 1000+ sebab penolakan universal, pengguna yang memeriksa kod sumber mendapati bahawa fail reasons.json mengandungi kebanyakannya salinan daripada 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.
Sesetengah mengandaikan bahawa penduaan mungkin merupakan pendekatan yang disengajakan untuk mencipta sistem pengagihan berwajaran, di mana respons tertentu muncul lebih kerap daripada yang lain. Yang lain mencadangkan ia mungkin hanya artifak penggunaan LLM untuk menghasilkan senarai, kerana model bahasa besar sering mengulangi entri apabila diminta untuk menghasilkan senarai yang panjang.
Pertimbangan Pelaksanaan
Kesederhanaan projek ini mencetuskan perbincangan menarik tentang organisasi kod dan kerjasama. Sesetengah pembangun mencadangkan bahawa menyimpan respons dalam satu fail JSON besar boleh mewujudkan konflik gabungan ketika menerima sumbangan, mencadangkan pendekatan alternatif seperti menggunakan folder fail teks biasa yang dikumpulkan mengikut tema atau penyumbang.
Yang lain membantah bahawa untuk perkhidmatan yang ringan seperti ini, pelaksanaan semasa adalah mencukupi, dengan menyatakan bahawa konflik gabungan Git dalam fail baris demi baris yang mudah akan agak mudah untuk diselesaikan.
Komuniti juga mencadangkan penambahbaikan yang berpotensi, termasuk pengendalian ralat yang lebih canggih yang akan mengekalkan nada humor perkhidmatan walaupun semasa kadar terhad. Seorang pengguna mencadangkan untuk mengembangkan perkhidmatan untuk memasukkan pelbagai mod kegagalan yang boleh berguna untuk menguji klien HTTP, seperti kod status HTTP yang berbeza, isu TLS, dan respons sintaks yang tidak sah.
Walaupun terdapat keterbatasan teknikal, ramai pengguna menghargai humor dan kesederhanaan projek ini. Perkhidmatan ini menunjukkan bahawa walaupun pelaksanaan yang paling asas boleh memberikan nilai hiburan dan mencetuskan perbincangan teknikal yang menarik dalam komuniti pembangun. Sama ada dilihat sebagai sesuatu yang baru atau peluang pembelajaran, No-as-a-Service menawarkan pendekatan yang ringan terhadap reka bentuk API yang mendapat sambutan daripada pembangun di semua tahap pengalaman.
Rujukan: no-as-a-service