Giao diện lập trình ứng dụng (API) là một trong những công nghệ nền tảng, làm xương sống cho thế giới kết nối của chúng ta. Chúng cho phép các chương trình giao tiếp với nhau dù được viết bằng các ngôn ngữ khác nhau, giúp trình duyệt lấy dữ liệu cần thiết để hiển thị website cho người dùng, và cho phép các nhà phát triển tạo ra các tiện ích mở rộng như Chrome extensions hoặc các công cụ khác mà không cần truy cập trực tiếp vào mã nguồn của chương trình họ yêu cầu dữ liệu.
Tuy nhiên, không chỉ các nguồn dữ liệu từ các công ty khác mà chúng ta có thể truy vấn bằng API. Hầu hết các dịch vụ tự host (self-hosted), như Home Assistant, đều cung cấp API để bạn có thể xây dựng các quy trình tự động hóa và bảng điều khiển của riêng mình mà không cần sửa đổi mã nguồn của phiên bản HA. Cách duy nhất để biết các lời gọi API đó đang được xử lý đúng cách là kiểm thử chúng, và đó là lúc các API client phát huy tác dụng. Postman có lẽ là công cụ nổi tiếng nhất, nhưng cấu trúc dựa trên đám mây hạn chế và hệ thống quản lý phiên bản độc quyền của nó lại là điểm đối lập với triết lý tự host. Sẽ thế nào nếu tôi nói rằng bạn có thể kiểm thử API ngay từ máy tính của mình mà không cần đến đám mây, và tất cả các ví dụ kiểm thử của bạn có thể nằm trong kho lưu trữ Git của mã nguồn đó? Bruno giúp bạn làm được điều đó, và logo của dịch vụ này là một chú chó đáng yêu, điều này thật khó để từ chối.
Thiết bị mạng gồm router TP-Link, switch Zyxel và bộ định tuyến mesh D-Link
Tại Sao Bruno Là Công Cụ Không Thể Thiếu Cho Người Dùng Tự Host Dịch Vụ Với Các Lời Gọi API
Kiểm Thử và Xác Minh API Không Hạn Chế
Dù bạn đang tìm cách khám phá các thiết bị thông minh để tích hợp chúng vào Home Assistant khi chưa có sẵn kết nối, hay đang xây dựng hệ thống giám sát với Grafana và InfluxDB, API đều có mặt ở khắp mọi nơi. Bạn có thể sử dụng chúng để lấy thông tin từ các website, nhận dự báo thời tiết, kết quả thể thao, hoặc bất kỳ thông tin cần thiết nào, thiết lập các bảng điều khiển để giám sát, hoặc xâu chuỗi một script hậu API để sử dụng dữ liệu đó cho các mục đích khác.
Nhưng để biết liệu các lời gọi API của bạn có đang hoạt động hay không, bạn cần một cách kiểm thử để hiển thị chức năng trả về và mức độ bảo mật của nó. Các công cụ kiểm thử API như Bruno cho phép bạn thiết lập các API mà bạn gọi, sau đó viết các script kiểm thử bằng JavaScript để mô phỏng hành vi người dùng. Nó cũng có thể liên kết với GitHub Actions và các nền tảng khác, giúp bạn tự động hóa quá trình kiểm thử, điều này lý tưởng cho các codebase lớn và phức tạp.
Mặc dù Bruno có các gói đăng ký cho các tính năng nâng cao, tôi vẫn có thể sử dụng bản miễn phí một cách hiệu quả. Với phiên bản miễn phí, bạn nhận được:
- API Clients: Hỗ trợ HTTP, Rest, GraphQL, Kiểm thử (Testing), Tài liệu (Documentation), Scripting, Xác thực (Auth), Quản lý bí mật (Secret Management), Tạo mã (Code Generation).
- Tích hợp Git (Git Integration)
- Nhập OAS (OAS Import)
Tất nhiên, bạn có thể nhập các môi trường Postman của mình để truy cập chúng từ đám mây và đưa về máy tính. Xuất dữ liệu từ Postman sẽ cho bạn một tệp JSON, bạn có thể nhập vào Bruno chỉ trong một bước. Các gói đăng ký trả phí có thể nhập một bản sao lưu dữ liệu lớn từ Postman, điều này sẽ rất tiện lợi cho các nhóm lớn hơn. Tuy nhiên, nó không thực sự cần thiết, và tôi dám chắc nhiều nhà phát triển tự host sẽ có các bộ sưu tập API nhỏ hơn cần giải phóng khỏi cấu trúc độc quyền của Postman.
Chạy Trên Máy Tính Cục Bộ, Không Phụ Thuộc Vào Đám Mây
Điểm thu hút lớn nhất của Bruno không phải là sự đơn giản của IDE và cách sự đơn giản đó có thể tạo nên một công cụ mạnh mẽ. Mà đó là việc bạn hoàn toàn kiểm soát dữ liệu của mình, dù nó được lưu trữ trên máy tính cục bộ hay trong kho lưu trữ Git của codebase liên quan. Việc giữ dữ liệu trong cùng một kho lưu trữ Git cung cấp cho bất kỳ nhà phát triển mới nào của mã nguồn đó một bản ghi có thể xem ngay lập tức về cách API nên hoạt động, với các điểm cuối, kết quả mong đợi, v.v., để họ không phải phân tích lại mã khi tham gia dự án.
Logo của Bruno, ứng dụng kiểm thử API cục bộ, với hình ảnh chú chó thân thiệnNguồn: Bruno
Bruno
Xem tại Trang Chính Thức
Bruno Giúp Gỡ Lỗi Trở Nên Dễ Dàng Hơn Bao Giờ Hết
Trợ Thủ Đắc Lực Mới Cho Home Assistant Của Tôi
Tôi đã sử dụng Bruno để tìm hiểu cách tương tác với phiên bản Home Assistant của mình. Tất cả các API đó đều sử dụng một khóa API bí mật cho HA của tôi, vì vậy tôi không thể sử dụng ảnh chụp màn hình cho những phần đó. Nhưng tôi đã tạo một bộ sưu tập kiểm thử và một số lời gọi GET và POST đơn giản tới httpbin để minh họa cách dễ dàng sử dụng Bruno để thiết lập thư viện API bạn dùng cho các dịch vụ của mình và kiểm thử chúng để có phản hồi mong muốn.
Thành thật mà nói, tôi không biết tại sao trước đây tôi lại làm theo cách khó khăn hơn: mã hóa cứng các yêu cầu. Với Bruno, tôi có thể xem phản hồi đầy đủ, các header được gửi, dòng thời gian của yêu cầu và phản hồi, cũng như kết quả của bất kỳ kiểm thử nào được thực hiện trên lời gọi API đó (nếu tôi đang chạy, tôi chưa ở giai đoạn học đó). Tôi có thể thêm tham số chỉ với vài cú nhấp chuột, chạy lại lời gọi API và xem kết quả tức thì của các thay đổi của mình mà không cần phải viết mã để hiển thị phản hồi.
Tôi chưa bao giờ thực sự quan tâm đến “cái nhìn đằng sau bức màn”. Ý tôi là, tôi biết cách sử dụng API, và tôi đã làm một số phát triển web cơ bản ở trường đại học nhiều thập kỷ trước, nhưng sau khi sử dụng Home Assistant, tôi muốn mở rộng nhà thông minh của mình với các cảm biến tùy chỉnh và các thiết bị khác sử dụng ESPHome. Và thực sự, cách tốt nhất để làm điều đó là hiểu cách API hoạt động, và những phần nào của nó tôi cần đưa vào dashboard Home Assistant để tôi có thể dễ dàng kiểm soát những thứ mà tôi không cần hoặc không muốn tự động hóa.
Nền tảng tự động hóa n8n đang chạy trên môi trường Proxmox
Tạm Biệt Postman, Xin Chào Bruno!
Tôi không thích phụ thuộc vào các dịch vụ đám mây để kiểm thử hoặc quản lý các dịch vụ tự host, hoặc các API mà tôi có thể truy cập thông qua chúng. Đối với tôi, điều đó đi ngược lại ý nghĩa của việc tự host, và tôi không hiểu tại sao API client nổi tiếng nhất lại giữ kết quả lời gọi API của tôi trên đám mây. Bruno có thể không hoàn hảo, xét theo danh sách vấn đề trên GitHub, nhưng nó làm được những gì tôi cần, trong khi vẫn nằm trên phần cứng của tôi, và đó mới là điều quan trọng. Có thể một ngày nào đó tôi sẽ đạt đến trình độ kiến thức mà chạm tới giới hạn của Bruno, nhưng cho đến lúc đó, nó hoàn hảo để học cách API hoạt động và cách tôi có thể tận dụng chúng cho các tác vụ của mình.
Màn hình laptop hiển thị lịch Nextcloud và Vivaldi, các giải pháp tự host
Kết luận
Bruno nổi lên như một giải pháp thay thế vượt trội cho những ai đang tìm kiếm một công cụ kiểm thử API mạnh mẽ, đáng tin cậy và đặc biệt phù hợp với triết lý tự host. Với khả năng chạy cục bộ, tích hợp chặt chẽ với Git, và cung cấp các tính năng gỡ lỗi chi tiết, Bruno không chỉ giúp bạn quản lý và kiểm thử API hiệu quả mà còn đảm bảo dữ liệu của bạn luôn nằm trong tầm kiểm soát. Dù bạn là nhà phát triển muốn thử nghiệm API cho các dự án tự host hay người dùng Home Assistant muốn đào sâu vào khả năng tùy chỉnh, Bruno đều mang đến một trải nghiệm trực quan và đầy đủ. Đừng ngần ngại khám phá Bruno để nâng cao hiệu suất làm việc và sự tự chủ trong quản lý API của bạn.