Zero Sheets: dùng Google Sheets làm backend/API cho ứng dụng
(zerosheets.com)- Zero Sheets là dịch vụ biến Google Sheets thành RESTful JSON API, giúp xử lý dữ liệu trong prototype, website và ứng dụng mà không cần backend riêng
- Có thể gửi HTTP request tới endpoint được tạo ra để truy vấn và thao tác dữ liệu, đồng thời cấu hình phương thức xác thực và sheet sẽ sử dụng
- Quy trình bắt đầu gồm 3 bước: dán URL của sheet, cấu hình API và gửi request tới endpoint, giúp giảm bớt gánh nặng kết nối ban đầu
- Tập trung vào cách dùng bảng tính như một CMS cho phía client để thử nghiệm ý tưởng với dữ liệu thực tế
- Các gói giá gồm miễn phí với 1 API và 200 request/tháng, từ Scout $4.99/tháng đến Craft $19.99/tháng; các gói công khai đều bao gồm đọc, ghi, sửa và xóa
Chuyển Google Sheets thành RESTful API
- Biến bảng tính Google Sheets thành RESTful API để có thể truy vấn và thao tác dữ liệu bằng các HTTP request đơn giản
- Được giới thiệu là công cụ dành cho nhà phát triển muốn xây prototype, website và ứng dụng thật nhanh
- Ở bước cấu hình API, có thể chỉ định phương thức xác thực, sheet sẽ dùng và các thiết lập khác
- Quy trình sử dụng được tóm gọn trong 3 bước
- Sao chép rồi dán URL Google Spreadsheet vào dashboard
- Cấu hình phương thức xác thực, sheet sẽ dùng và các mục khác cho API mới
- Sau khi nhận endpoint, gửi HTTP request
Cách dùng như CMS và bảng giá
- Có thể dùng bảng tính như kho lưu trữ dữ liệu thực tế để thử nghiệm ý tưởng, đồng thời giao cho nó vai trò CMS mà client có thể sử dụng
- Nhấn mạnh rằng có thể triển khai ý tưởng rẻ hơn và nhanh hơn so với việc tự xây panel backend riêng
- Các gói công khai như sau
- Free: $0/tháng, 1 API, tab sheet không giới hạn, đọc·ghi·sửa·xóa, 200 request/tháng
- Scout: $4.99/tháng, API không giới hạn, tab sheet không giới hạn, đọc·ghi·sửa·xóa, 400 request/tháng, hỗ trợ 24/7
- Craft: $19.99/tháng, API không giới hạn, tab sheet không giới hạn, đọc·ghi·sửa·xóa, 2000 request/tháng, hỗ trợ 24/7
- Gói tùy chỉnh được cung cấp qua liên hệ riêng
1 bình luận
Ý kiến trên Hacker News
Cần cẩn thận với cái bẫy cho người mới dùng Excel thời hiện đại. Trong thập niên 80~90, nhiều ngân hàng đầu tư đã mắc vào chuyện này: bảng tính là một khung tính toán đa dụng rất tuyệt, nên người ta dần chất cả quản trị rủi ro, định giá và các chức năng vận hành lên một đống file Excel khổng lồ.
Gắn thêm plugin và tiện ích mở rộng thì đúng là làm được rất nhiều việc, nhưng cuối cùng bảng tính sẽ biến thành cơn ác mộng không thể bảo trì và rất khó hiểu nội bộ, còn logic nghiệp vụ cốt lõi thì bị nhốt trong các sheet cá nhân của nhiều người. Những thay đổi trên diện rộng trở nên khó hoặc bất khả thi, và ngay cả các thay đổi vốn dễ trong framework phần mềm thông thường cũng thành rủi ro và tốn chi phí kiểm tra vì phải sửa vô số sheet
Thậm chí còn có cả một trang chỉ sưu tầm các trường hợp từ Unreal Engine: https://blueprintsfromhell.tumblr.com/. Cá nhân tôi nghĩ lời giải là hỗ trợ refactor tốt. Cần có cách dọn dẹp kiểu “extract method” mà không bắt lập trình viên phải vào viết lại toàn bộ
Chưa nói đến IDE đầy đủ hay module pip, chỉ là hello world thôi, mà như vậy vẫn còn là khá hơn trước giờ rồi. Một số công ty tài chính từ đầu đã không cho lựa chọn nào khác. Cấp cho nhân viên văn phòng mỗi Excel rồi lại ngạc nhiên khi họ tạo ra quái vật bằng Excel là mô-típ rất quen thuộc
Loại vấn đề này thường không lộ rõ cho đến khi mọi thứ sụp đổ. Cùng làm việc trên bảng tính gần như là một trong những việc nguy hiểm nhất, nên mọi quy trình cốt lõi đều bị thắt cổ chai. Việc tích hợp dữ liệu thì rủi ro và mất thời gian, lại còn khó đảm bảo tính nhất quán giữa các bảng tính. Nếu chuyển sang công cụ phù hợp sớm hơn thì đã không phải tiếp tục vá víu bằng thứ code lẽ ra không cần tồn tại
Có thể lưu bảng tính vào RCS, nhưng liệu bạn có xem được diff để xác nhận thay đổi sắp push đúng là thứ mình định thay không? Có thể xem lịch sử diff để biết hệ thống đã thay đổi ra sao theo thời gian không? Nếu nhiều người cùng sửa thì có merge được không? Có bản sao làm việc để thử nghiệm không, hay là chỉnh thẳng bản production mà không có chốt an toàn nào?
Câu chuyện thú vị đấy. Trước khi startup pivot thành Loom, họ là một công ty test người dùng tên Opentest, nhưng thay vì xây cơ sở dữ liệu và dashboard để đồng sáng lập có thể xem những người yêu cầu test cụ thể, họ cứ thế nhét toàn bộ vào Google Sheets.
Và nó rất ổn. Không có downtime, quyền truy cập mở, mà người xem và người sửa chỉ có 3 người nên cũng không xung đột. Cũng không cần xử lý chuyện nâng cấp hay bảo trì cơ sở dữ liệu. Tôi thường nhớ lại quyết định đó và cảm thấy khá nhiều “thực hành kỹ thuật tốt” mà mình học được trở nên mờ nhạt so với thực tế rằng việc di chuyển thật nhanh và thực dụng đôi khi có thể là cú đột phá thiên tài ở bất kỳ giai đoạn nào
Tôi đã dùng nó cho dữ liệu của nhiều hệ thống chỉ có cực ít người cần chỉnh sửa. Chỉ cần một chút code cẩn thận và caching, ví dụ đồng bộ sang S3 sau khi kiểm tra hợp lệ, là có thể dễ dàng dùng nó làm frontend CRUD cho dữ liệu hệ thống quan trọng. Nó cũng tốt cho dashboard tạm thời, và nếu nối với API hoặc gắn mã Google Scripts tùy chỉnh thì còn xử lý được cả API riêng. Tôi từng tự động làm mới theo lịch những báo cáo khá lớn, gồm nhiều view, pivot table, truy vấn và tra cứu. Đúng là một sản phẩm tự phát triển phải tốt hơn Google Sheets rất nhiều, nhưng sẽ không thể làm nhanh hơn. Đến lúc thực sự cần một thứ lớn hơn và tốt hơn, yêu cầu lúc đó cũng sẽ rõ ràng hơn và bạn cũng ở trạng thái có thể gánh được nguồn lực phát triển
Một phần vì ngay cả việc dùng những công cụ kỹ thuật đơn giản như React hay Postgres cũng phải qua quá nhiều thủ tục
Người có quyền ghi vào bảng tính thực chất có thể thực hiện gần như bất kỳ biến đổi nào, nên rất dễ làm hỏng mọi thứ
Thật ra không cần lớp bọc hào nhoáng như vậy. Chỉ cần mở https://script.google.com/ là đã có thể truy cập nhiều API của Google và tích hợp sheet với việc gửi email qua Gmail, thay đổi lịch, tạo trang, xử lý dữ liệu nhập từ form, v.v.
Vấn đề là nó không có các thao tác dựa trên giao dịch như cơ sở dữ liệu thật. Ví dụ, khi bạn muốn khóa một tài nguyên cụ thể thì có thể thất bại
Khá bất ngờ là vẫn chưa ai tung ra Spread API: https://spreadapi.roombelt.com/
Đây là Google Sheets / Apps Script miễn phí, chỉ cần dán vào sheet là nó biến thành CRUD hoàn chỉnh. Dù có hơi bị giới hạn tốc độ, nhưng hoàn toàn miễn phí. Trước đây tôi từng nghĩ đến việc xây dựng công ty dựa trên Sheets, nhưng khi đã đến giai đoạn “sẵn sàng trả tiền” thì thường cũng là lúc nên vượt qua Sheets. Vì các ràng buộc đó, thay vì ở lại với Sheets hay SpreadAPI, người ta sẽ muốn chuyển sang Turso, Cloudflare D1 hoặc Pocketbase
Ý tưởng cải tiến hay PR lúc nào cũng có thể gửi tại đây: https://github.com/ziolko/spreadapi
Nếu mục đích tương tự thì tôi muốn đề xuất PocketBase
Tuần trước tôi đi tìm một kho lưu trữ dữ liệu tùy ý có thể truy cập qua API và đã định dựng backend bằng Google Sheets, nhưng PocketBase thì dễ dùng hơn và không có giới hạn 60 lần/phút. Triển khai lên VPS giá rẻ bằng CapRover cũng rất dễ
https://pocketbase.io/
https://developers.google.com/sheets/api/limits
Nó rất dễ cho cả prototyping lẫn xử lý công việc thực tế, còn dùng Google Sheet làm backend thì cũng hay nhưng tôi lại cần những thứ như xác thực
Mong bạn nhắn qua đây để tôi có thể nhận thông tin liên hệ: https://www.zerosheets.com/contact
Gần đây tôi đã tạo một webapp hoàn chỉnh chỉ dùng AppsScript và Google Sheets làm cơ sở dữ liệu, có viết bài ở đây https://thetechenabler.substack.com/i/142898781/making-a-sim... và công khai mã nguồn ở đây https://github.com/eeue56/simple-link-aggregator
Đây là một trải nghiệm mới, và tôi đặc biệt bị hấp dẫn bởi ý tưởng đặt một kho lưu trữ dữ liệu mà cả người không biết lập trình cũng có thể dễ dàng xử lý, rồi gắn phía trước là một webapp không cần cấu hình máy chủ. Nhưng AppsScript quá chậm để dùng cho mục đích này, nên khó mà gọi là trải nghiệm tốt. Zerosheets trông khá ổn, và nếu tôi quay lại với ý tưởng này, tôi sẽ tìm hiểu kỹ hơn
Tôi cần kiểu này cho ý tưởng dự án userscript tiếp theo. Chỉ để dùng cá nhân thôi, nhưng tôi phải điền bảng điểm qua một web UI cực kỳ đau đớn
Nhập dữ liệu vào bảng tính thì dễ hơn nhiều. Trước đây tôi thực sự đã làm như vậy, nhưng nhà trường đã đưa vào một thứ giống như màn nhại kinh khủng của một webapp CRUD cực kỳ cơ bản với lý do làm cho nó “dễ hơn”. Vì vậy tôi muốn viết một userscript để đọc từ bảng tính rồi điền vào form web khó dùng đó. Lý do tôi chưa bắt đầu là vì còn chưa viết xong bài blog về trải nghiệm userscript trước đây, và tôi sợ cơn ác mộng mang tên xác thực. Trong ngữ cảnh userscript thì chuyện này có thể dễ hơn hoặc khó hơn; vì nó chạy trong trang web nên biết đâu có thể thực hiện luồng OAuth thông thường ngay tại đó
Cá nhân tôi thấy cách dễ nhất là bỏ qua phần xác thực, vốn là phần phức tạp của script, rồi sao chép và dán giá trị từ clipboard để xử lý dữ liệu
Vài ngày trước, khi xem các template và lựa chọn thay thế cho CMS, tôi phát hiện công cụ nội bộ của NPR để xuất bản bài viết có dữ liệu, biểu đồ và trực quan hóa tại https://github.com/nprapps/dailygraphics-next
Trong đó có cách dùng Google Sheets làm CMS, nên tôi thấy khá thú vị
Tôi đã làm thứ rất giống như vậy tại https://github.com/kellpossible/avalanche-report/ . Tôi bắt đầu với Google Sheets vì nó cho phép lặp nhanh luồng nhập dữ liệu
Khi dùng cùng server, tôi còn có thể đưa các URL query đã cấu hình vào hàm IMAGE để tạo biểu đồ và sơ đồ tùy chỉnh. Việc đọc dữ liệu được cache trong cơ sở dữ liệu SQLite cục bộ. Bây giờ chúng tôi đang dần rời khỏi Google Sheets vì phần thiết lập hơi phiền, và trong trường hợp sử dụng của chúng tôi thì không thể ngăn hoàn toàn người dùng chỉnh sửa nhầm các trường không nên sửa. Dù vậy, đến nay nó vẫn hoạt động rất tốt, và như một điểm khởi đầu thì tôi hoàn toàn có thể khuyên bất kỳ ai dùng thử
Trước đây tôi từng vận hành trang menu của một website nhà hàng bằng Google Sheet. Nó hoàn hảo
Mỗi khi nhà hàng thay đổi gì, họ chỉ cần cập nhật bảng tính là web phản ánh ngay, còn nếu lỡ sửa sai gì thì chỉ việc hoàn tác
Tôi để Apps Script kích hoạt build lại website mỗi khi có cập nhật, vì thế cứ hễ chỉnh sửa là nó sẽ trigger rebuild và triển khai lại thành static site