/ / PocketBase là gì và bạn sử dụng nó như thế nào?

PocketBase là gì và bạn sử dụng nó như thế nào?

PocketBase là một chương trình phụ trợ nguồn mở bao gồm cơ sở dữ liệu SQLite được nhúng với xác thực dữ liệu, đăng ký thời gian thực và API REST dễ sử dụng. Nó cũng cung cấp xác thực và lưu trữ tệp cho các tệp phương tiện.


PocketBase hoàn hảo cho các dự án mà bạn không muốn xây dựng phần phụ trợ vì hạn chế về thời gian hoặc sự thuận tiện vì nó hoàn toàn di động và yêu cầu thiết lập tối thiểu. Nó cũng tích hợp với các công nghệ phổ biến như Vue, Svelte, React, Angular và Flutter.


Dịch vụ được cung cấp bởi PocketBase

PocketBase cung cấp hầu hết các dịch vụ được cung cấp bởi các nhà cung cấp phụ trợ khác như SupaBase.

  • cơ sở dữ liệu SQLite: PocketBase bao gồm một cơ sở dữ liệu SQLite nhúng. Điều này khác với các nhà cung cấp phụ trợ khác sử dụng cơ sở dữ liệu lớn hơn như PostgreSQL hoặc MySQL. Việc sử dụng SQLite làm cho PocketBase nhẹ hơn. Bạn cũng có thể đăng ký các sự kiện cơ sở dữ liệu thời gian thực thông qua API.
  • xác thực: PocketBase hỗ trợ xác thực email/mật khẩu và xác thực OAuth2 qua Facebook, Google, GitLab và GitHub.
  • Lưu trữ tập tin: Bạn có thể tải các tệp ảnh, âm thanh và video lên bộ nhớ cục bộ hoặc bộ chứa S3 bằng PocketBase.
  • bảng điều khiển quản trị: Bảng điều khiển dành cho quản trị viên cho phép bạn tạo và quản lý các bộ sưu tập trong cơ sở dữ liệu. Bạn cũng có thể tải tệp lên, xem tệp nhật ký và định cấu hình cài đặt để gửi email,

Theo các tài liệu, PocketBase có thể dễ dàng phục vụ hơn 10.000 kết nối thời gian thực đồng thời và liên tục trên 6 máy chủ riêng ảo khiến nó trở thành lựa chọn phụ trợ hợp lý cho các ứng dụng vừa và nhỏ.

Lưu ý rằng PocketBase chỉ chia tỷ lệ theo chiều dọc. Điều này có nghĩa là bạn cần bổ sung thêm CPU và RAM để tăng sức mạnh xử lý. Nếu bạn có một ứng dụng lớn, hãy xem xét một nhà cung cấp phụ trợ như Firebase cho phép chia tỷ lệ theo chiều ngang.

Bắt đầu với PocketBase

Hiện tại, PocketBase cung cấp hai SDK:

  • SDK JavaScript mà bạn có thể sử dụng với các khung JavaScript như Svelte, React, Vue và Angular.
  • SDK phi tiêu cho các ứng dụng Flutter.

Cách dễ nhất để bắt đầu là tải xuống PocketBase. Có một số liên kết, vì vậy hãy đảm bảo tải xuống liên kết tương thích với môi trường của bạn.

Khi bạn đã tải xuống, hãy giải nén và điều hướng đến thư mục pocketbase. Sau đó chạy lệnh này trong một thiết bị đầu cuối:

 ./pocketbase serve

Lệnh này sẽ khởi động một máy chủ web tại các tuyến đường này.

  • Máy chủ: http://127.0.0.1:8090/
  • API REST: http://127.0.0.1:8090/api/
  • Giao diện người dùng quản trị: http://127.0.0.1:8090/_/

Điều hướng đến URL http://127.0.0.1:8090/_/ để tạo bộ sưu tập đầu tiên của bạn bằng bảng điều khiển dành cho quản trị viên.

Tạo Bộ sưu tập trong PocketBase

Lần đầu tiên bạn mở giao diện người dùng quản trị, nó sẽ yêu cầu địa chỉ email và mật khẩu để tạo tài khoản quản trị.

Đây là giao diện người dùng quản trị trông như thế nào:

Giao diện người dùng quản trị Pocketbase

nhấp vào Bộ sưu tập mới trong giao diện người dùng quản trị sẽ mở bảng điều khiển bộ sưu tập mà bạn có thể điền thông tin chi tiết để tạo bộ sưu tập mới.

Đây là cách bạn tạo một bộ sưu tập có tên todos bao gồm tiêu đề và các trường đã hoàn thành:

Bộ sưu tập túi Todo

Một bộ sưu tập có thể là một bộ sưu tập cơ sở hoặc xác thực. Bộ sưu tập cơ sở là loại bộ sưu tập mặc định và bạn có thể sử dụng nó cho bất kỳ loại dữ liệu nào. Bộ sưu tập xác thực chứa các trường bổ sung để quản lý người dùng, như tên người dùng, email và đã xác minh.

Bạn không cần sử dụng giao diện người dùng quản trị để tạo bộ sưu tập; bạn có thể tạo một cái bằng API Web. Tài liệu PocketBase cung cấp các ví dụ dành riêng cho SDK về cách tạo và quản lý bộ sưu tập thông qua API. Bạn có thể tạo, xem, cập nhật, xóa hoặc nhập các bộ sưu tập.

Sử dụng PocketBase trong ứng dụng React

SDK JavaScript cho phép bạn tương tác với PocketBase từ dự án React.

Để làm theo, hãy bắt đầu bằng cách tạo một dự án React.

Sau đó, cài đặt PocketBase JavaScript SDK trong dự án React của bạn qua npm:

 npm install pocketbase --save

Tiếp theo, trong app.js, nhập PocketBase và khởi tạo nó.

 import PocketBase from 'pocketbase';
const pb = new PocketBase('http://127.0.0.1:8090');

Để minh họa cách PocketBase tích hợp React, bạn sẽ tạo các hàm trợ giúp cho một ứng dụng công việc. Các chức năng này sẽ tạo, cập nhật, truy xuất và xóa các mục.

Tạo một mục Todo

Trong app.js, hãy tạo một hàm gọi là addTodo.

 const addTodo = async (todo) => {
try {
   const record = await await pb.collection("todos").create(todo);
   return record;
 } catch (error) {
   return { error: error.message };
 }
};

Chức năng này thêm một bản ghi mới trong bộ sưu tập todos.

Cập nhật một mục Todo

Để cập nhật một bản ghi trong bộ sưu tập việc cần làm, hãy tạo một hàm có tên là updateTodo và sử dụng phương thức cập nhật.

 const updateTodo = async (record_id, todo) => {
try {
   const record = await pb.collection("todos").update(record_id, todo);
   return record;
 } catch (error) {
   return { error: error.message };
 }
};

Hàm updateTodo tìm mục việc cần làm dựa trên Id bản ghi và cập nhật nó với dữ liệu mới.

Xóa một mục Todo

Trong app.js, hãy tạo một hàm có tên là deleteTodo để xóa một bản ghi trong bộ sưu tập việc cần làm.

 const deleteTodo = async (record_id) => {
try {
   await pb.collection("todos").delete(record_id);
 } catch (error) {
   return { error: error.message };
 }
};

Truy xuất một mục Todo

Bạn có thể truy xuất một mục việc cần làm hoặc tất cả các mục từ bộ sưu tập.

Hàm này truy xuất một mục việc cần làm theo id:

 const getTodo = async (record_id) => {
try {
   const record = await pb.collection("todos").getOne(record_id, {
     expand: "relField1,relField2.subRelField",
   });
   return record
 } catch (error) {
   return { error: error.message };
 }
};

Trong khi chức năng bên dưới sẽ truy xuất tất cả các bản ghi trong bộ sưu tập việc cần làm:

 const getTodos = async (record_id) => {
  try {
    const records = await pb
      .collection("todos")
      .getFullList(200 , {
        sort: "-created",
      });
    return records;
  } catch (error) {
    return { error: error.message };
  }
}

Bạn có thể sử dụng các chức năng này để tạo và cập nhật giao diện người dùng của ứng dụng.

Để biết thêm các ví dụ chi tiết, hãy xem tài liệu API bản ghi PocketBase hoặc tài liệu API được tạo trong “Giao diện người dùng quản trị > Bộ sưu tập > Bản xem trước API”. Bạn sẽ có thể truy cập danh sách, xem, tạo, cập nhật, xóa và tài liệu thời gian thực cho bộ sưu tập của mình.

tài liệu api được tạo

Tại sao bạn nên sử dụng PocketBase

PocketBase là chương trình phụ trợ tốt nhất cho các dự án vừa và nhỏ. Nó yêu cầu thiết lập tối thiểu và dễ sử dụng. Nó cung cấp hai SDK máy khách—SDK JavaScript và SDK Dart—đồng thời bạn có thể sử dụng SDK này trong các ứng dụng web và di động.

PocketBase cũng có khả năng tự lưu trữ và bạn có thể lưu trữ nó trên máy chủ cục bộ hoặc VPS. Mặc dù nó không hỗ trợ các chức năng của đám mây, nhưng bạn có thể sử dụng nó làm khung Go và tạo ứng dụng của riêng mình với logic nghiệp vụ tùy chỉnh.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *