Trong thế giới của các dịch vụ web độc đáo, một API mới có tên No-as-a-Service (NAAS) đã thu hút sự chú ý của các nhà phát triển và những người đam mê công nghệ. Dịch vụ nhẹ này, cung cấp các phản hồi từ chối ngẫu nhiên thông qua một điểm cuối API đơn giản, đã làm dấy lên cả sự thích thú lẫn các phê bình kỹ thuật trong cộng đồng nhà phát triển.
Vấn Đề Giới Hạn Tốc Độ
Dịch vụ ban đầu áp dụng giới hạn tốc độ nghiêm ngặt là 10 yêu cầu mỗi phút cho mỗi địa chỉ IP, điều này nhanh chóng trở thành điểm đau cho người dùng. Nhiều người bình luận đã báo cáo nhận được thông báo lỗi Too many requests, please try again later mặc dù họ không hề gửi tới 10 yêu cầu. Điều này cho thấy có vấn đề cơ bản trong cách thức áp dụng giới hạn tốc độ.
Một người dùng đã xác định rằng giới hạn tốc độ có thể đang được áp dụng cho địa chỉ IP của Cloudflare thay vì IP của từng người dùng riêng lẻ, khiến tất cả người dùng đằng sau cùng một node Cloudflare phải chia sẻ cùng một hạn ngạch giới hạn tốc độ. Nhận xét này được hỗ trợ bởi sự hiện diện của các header Express trong phản hồi, cho thấy rằng việc giới hạn tốc độ đang xảy ra ở cấp ứng dụng thay vì ở cấp CDN.
Để đáp lại những phản hồi rộng rãi này, nhà phát triển (hotheadhacker) cuối cùng đã loại bỏ hoàn toàn giới hạn tốc độ, chỉ đơn giản thông báo: The API rate limiting has been removed.
Chi tiết API No-as-a-Service:
- URL cơ sở: https://naas.isalman.dev/no
- Phương thức: GET
- Giới hạn tốc độ ban đầu: 10 yêu cầu mỗi phút cho mỗi IP (hiện đã được gỡ bỏ)
- Định dạng phản hồi: JSON với trường "reason"
- Kho lưu trữ GitHub: https://github.com/hotheadhacker/no-as-a-service
Vấn đề triển khai:
- Chỉ có 25-26 phản hồi độc đáo mặc dù tuyên bố có "1000+"
- Một số phản hồi được lặp lại đến 50 lần trong tệp reasons.json
- Giới hạn tốc độ ban đầu được áp dụng ở cấp proxy thay vì IP nguồn
Vấn Đề Phản Hồi Trùng Lặp
Một điểm thảo luận quan trọng khác tập trung vào chất lượng và tính độc đáo của các thông điệp từ chối. Mặc dù tài liệu tuyên bố có hơn 1000 lý do từ chối phổ biến, những người dùng đã kiểm tra mã nguồn phát hiện ra rằng file reasons.json chủ yếu chứa các bản sao của cùng 25 phản hồi.
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.
Một số người suy đoán rằng việc trùng lặp có thể là một cách tiếp cận có chủ ý để tạo ra hệ thống phân phối có trọng số, trong đó một số phản hồi xuất hiện thường xuyên hơn những phản hồi khác. Những người khác cho rằng đó có thể chỉ đơn giản là kết quả của việc sử dụng LLM để tạo danh sách, vì các mô hình ngôn ngữ lớn thường lặp lại các mục khi được yêu cầu tạo ra danh sách dài.
Cân Nhắc Về Triển Khai
Tính đơn giản của dự án đã làm dấy lên những cuộc thảo luận thú vị về tổ chức mã và sự hợp tác. Một số nhà phát triển đề xuất rằng việc lưu trữ các phản hồi trong một tệp JSON lớn duy nhất có thể tạo ra xung đột khi hợp nhất khi chấp nhận đóng góp, đề xuất các cách tiếp cận thay thế như sử dụng thư mục các tệp văn bản đơn giản được nhóm theo chủ đề hoặc người đóng góp.
Những người khác phản bác rằng đối với một dịch vụ nhẹ như vậy, cách triển khai hiện tại là đủ, lưu ý rằng các xung đột hợp nhất Git trong một tệp đơn giản theo từng dòng sẽ tương đối dễ giải quyết.
Cộng đồng cũng đề xuất các cải tiến tiềm năng, bao gồm xử lý lỗi tinh vi hơn để duy trì giọng điệu hài hước của dịch vụ ngay cả khi bị giới hạn tốc độ. Một người dùng đề xuất mở rộng dịch vụ để bao gồm các chế độ lỗi khác nhau có thể hữu ích cho việc kiểm tra các HTTP client, chẳng hạn như các mã trạng thái HTTP khác nhau, vấn đề TLS và phản hồi cú pháp không hợp lệ.
Mặc dù có những hạn chế về mặt kỹ thuật, nhiều người dùng đánh giá cao sự hài hước và đơn giản của dự án. Dịch vụ này chứng minh rằng ngay cả những triển khai cơ bản nhất cũng có thể mang lại giá trị giải trí và khơi dậy các cuộc thảo luận kỹ thuật hấp dẫn trong cộng đồng nhà phát triển. Dù được xem là một điều mới lạ hay một cơ hội học tập, No-as-a-Service cung cấp một cách tiếp cận nhẹ nhàng đối với thiết kế API thu hút các nhà phát triển ở mọi cấp độ kinh nghiệm.
Tham khảo: no-as-a-service