/ / Cách sử dụng API của Notion với React để lưu trữ dữ liệu trong cơ sở dữ liệu Notion

Cách sử dụng API của Notion với React để lưu trữ dữ liệu trong cơ sở dữ liệu Notion

Các tính năng năng suất của Notion ngày càng trở nên phổ biến đối với cả cá nhân và tổ chức. Các tính năng này cho phép bạn quản lý nhiều loại tác vụ, từ lưu trữ dữ liệu cá nhân đến quản lý quy trình làm việc của dự án. Hệ thống cơ sở dữ liệu của Notion làm cho điều này có thể. Nó cung cấp một giao diện trực quan để giúp bạn tạo một hệ thống quản lý nội dung có thể tùy chỉnh.


Notion cung cấp một API giàu tính năng mà bạn có thể dễ dàng tích hợp vào bất kỳ ứng dụng nào để tương tác với hệ thống cơ sở dữ liệu của nó. Hơn nữa, bạn có thể tùy chỉnh chức năng được cung cấp để phù hợp với nhu cầu cụ thể của ứng dụng của bạn.


Thiết lập tích hợp khái niệm

Notion cung cấp một số tích hợp cho phép bạn thêm nội dung hoặc dữ liệu từ các công cụ khác như Google Tài liệu trực tiếp vào cơ sở dữ liệu Notion. Tuy nhiên, đối với các ứng dụng được tạo tùy chỉnh, bạn sẽ cần tạo các tích hợp tùy chỉnh bằng cách sử dụng API công khai của ứng dụng đó.

Để tạo tích hợp Notion, hãy làm theo các bước sau.

  1. Truy cập trang web tích hợp của Notion, đăng ký và đăng nhập vào tài khoản của bạn. Trên trang tổng quan về tích hợp, nhấp vào Tích hợp mới để thiết lập một cái mới.
    Trang cài đặt tích hợp mới của Notion

  2. Cung cấp tên cho tích hợp của bạn, kiểm tra để đảm bảo rằng bạn đã chọn cài đặt khả năng tích hợp chính xác và nhấp vào Nộp. Các cài đặt này xác định cách ứng dụng của bạn tương tác với Notion.
    Cài đặt Khả năng Tích hợp Notion

  3. Sao chép Mã thông báo tích hợp nội bộ bí mật được cung cấp và nhấp vào Lưu thay đổi.
    bí mật tích hợp

Tạo cơ sở dữ liệu khái niệm

Với tích hợp của bạn thiết lập, đăng nhập vào của bạn Khái niệm workspace để tạo cơ sở dữ liệu cho ứng dụng của bạn. Sau đó, hãy làm theo các bước sau:

  1. Nhấn vào Trang mới trên ngăn menu bên trái của không gian làm việc Notion của bạn.
  2. Trong cửa sổ bật lên, hãy cung cấp tên cơ sở dữ liệu của bạn và bảng do Notion thiết lập. Cuối cùng, thêm các trường bạn yêu cầu vào bảng của mình bằng cách nhấn nút + trên phần tiêu đề của bảng của bạn.
    Cơ sở dữ liệu người dùng demo của Notion

  3. Sau đó, nhấp vào Mở dưới dạng Toàn trang để mở rộng trang cơ sở dữ liệu để lấp đầy trang và xem ID cơ sở dữ liệu trên URL.
    Mở dưới dạng nút Toàn trang

  4. Bạn sẽ cần ID cơ sở dữ liệu để tương tác với cơ sở dữ liệu từ ứng dụng React của mình. ID cơ sở dữ liệu là chuỗi ký tự trong URL cơ sở dữ liệu giữa dấu gạch chéo lên cuối cùng (/) và dấu chấm hỏi (?).
    ID cơ sở dữ liệu khái niệm trong URL trang web

  5. Cuối cùng, kết nối cơ sở dữ liệu với tích hợp của bạn. Quá trình này cấp quyền truy cập tích hợp vào cơ sở dữ liệu để bạn có thể lưu trữ và truy xuất dữ liệu trên cơ sở dữ liệu của mình từ ứng dụng React.
  6. Trên trang cơ sở dữ liệu của bạn, bấm vào nút Ba chấm ở góc trên cùng bên phải để mở menu cài đặt cơ sở dữ liệu. Ở dưới cùng của ngăn bên menu, bấm vào Thêm kết nối và tìm kiếm và chọn tích hợp của bạn.
    Thêm kết nối tích hợp

Tạo một máy chủ tốc hành

Notion cung cấp thư viện ứng dụng khách giúp dễ dàng tương tác với API từ máy chủ Express phụ trợ. Để sử dụng nó, hãy tạo cục bộ một thư mục dự án, thay đổi thư mục hiện tại thành thư mục đó và tạo một máy chủ web express.js.

Tiếp theo, cài đặt các gói này.

 npm install @notionhq/client cors body-parser dotenv 

Gói CORS cho phép chương trình phụ trợ Express và ứng dụng khách React trao đổi dữ liệu thông qua các điểm cuối API. Bạn có thể sử dụng gói body-parser để xử lý các yêu cầu HTTP đến. Bạn sẽ phân tích cú pháp tải trọng JSON từ máy khách, truy xuất dữ liệu cụ thể và cung cấp dữ liệu đó dưới dạng một đối tượng trong thuộc tính req.body. Cuối cùng, gói dotenv cho phép tải các biến môi trường từ một .env tập tin trong ứng dụng của bạn.

Trong thư mục gốc của thư mục máy chủ, tạo tệp .env và thêm mã bên dưới:

 NOTION_INTEGRATION_TOKEN = 'your Integration secret token'
NOTION_DATABASE_ID = 'database ID'

Thiết lập máy chủ tốc hành

Mở index.js tệp trong thư mục dự án máy chủ và thêm mã này:

 const express = require('express');
const {Client} = require('@notionhq/client');
const cors = require('cors');
const bodyParser = require('body-parser');
const jsonParser = bodyParser.json();
const port = process.env.PORT || 8000;
require('dotenv').config();

const app = express();
app.use(cors());

const authToken = process.env.NOTION_INTEGRATION_TOKEN;
const notionDbID = process.env.NOTION_DATABASE_ID;
const notion = new Client ({auth: authToken});

app.post('/NotionAPIPost', jsonParser, async(req, res) => {
    const {Fullname, CompanyRole, Location} = req.body;

    try {
        const response = await notion.pages.create({
            parent: {
                database_id: notionDbID,
            },
            properties: {
                Fullname: {
                    title: [
                        {
                            text: {
                                content: Fullname
                            },
                        },
                    ],
                },
                CompanyRole: {
                    rich_text: [
                        {
                            text: {
                                content: CompanyRole
                            },
                        },
                    ],
                },
                Location: {
                    rich_text: [
                        {
                            text: {
                                content: Location
                            },
                        },
                    ],
                },
            },
        });

        res.send(response);
        console.log("success");
    } catch (error) {
        console.log(error);
    }
});

app.get('/NotionAPIGet', async(req, res) => {
    try {
        const response = await notion.databases.query({
            database_id: notionDbID,
            sorts: [
                {
                    timestamp: 'created_time',
                    direction: 'descending',
                },
            ]
        });

        res.send(response);
        const {results} = response;
        console.log("success");
    } catch (error) {
        console.log(error);
    }
});

app.listen(port, () => {
    console.log('server listening on port 8000!');
});

Mã này làm như sau:

  • Thư viện máy khách của Notion cung cấp một cách để tương tác với API của Notion và thực hiện nhiều hoạt động khác nhau, chẳng hạn như đọc và ghi dữ liệu vào cơ sở dữ liệu của bạn.
  • Phương thức máy khách tạo một thể hiện mới của đối tượng Notion. Đối tượng này được khởi tạo với tham số auth nhận mã thông báo xác thực, mã thông báo tích hợp.
  • Hai phương thức HTTP—nhận và đăng—tạo các yêu cầu tới API của Notion. Phương thức post lấy một ID cơ sở dữ liệu trong tiêu đề của nó, chỉ định cơ sở dữ liệu để ghi dữ liệu vào bằng cách sử dụng phương thức tạo. Phần thân của yêu cầu cũng chứa các thuộc tính của trang mới: dữ liệu người dùng cần lưu trữ.
  • Phương thức get truy vấn và truy xuất dữ liệu người dùng từ cơ sở dữ liệu, đồng thời sắp xếp chúng theo thời gian chúng được tạo.

Cuối cùng, khởi động máy chủ phát triển bằng Nodemon, trình giám sát Node.js:

 npm start 

Thiết lập ứng dụng khách React

Trong thư mục gốc của thư mục dự án của bạn, hãy tạo một ứng dụng React và cài đặt Axios. Bạn sẽ sử dụng thư viện này để thực hiện các yêu cầu HTTP từ trình duyệt.

 npm install axios 

Triển khai các Phương thức API POST và GET

Mở src/App.js tệp, hãy xóa mã React soạn sẵn và thay thế bằng mã này:

 import React, { useState} from 'react';
import Axios from 'axios';

function App() {
  const [name, setName] = useState("");
  const [role, setRole] = useState("");
  const [location, setLocation] = useState("");
  const [APIData, setAPIData] = useState([]);

  const handleSubmit = (e) => {
    e.preventDefault();

    Axios.post('http://localhost:8000/NotionAPIPost', {
      Fullname: name,
      CompanyRole:role,
      Location:location
    }).catch(error => {
      console.log(error);
    });

    Axios.get('http://localhost:8000/NotionAPIGet')
      .then(response => {
        setAPIData(response.data.results);
        console.log(response.data.results);
      }).catch(error => {
        console.log(error);
      });
  };

  return (
    <div className="App">
      <header className="App-header">
        <div className="form">
          <form onSubmit={handleSubmit}>
            <p>First Name</p>

            <input
              type="text"
              placeholder="First name ..."
              onChange={(e) => {setName(e.target.value)}}
            />

            <p>Company Role</p>

            <input
              type="text"
              placeholder = "Company Role...."
              onChange={(e) => {setRole(e.target.value)}}
            />

            <p> Company Role</p>

            <input
              type="text"
              placeholder = "Location...."
              onChange={(e) => {setLocation(e.target.value)}}
            />

            <button type="submit">Submit</button>
          </form>
        </div>

        <div className="Data">
          <p>API DATA</p>
          {
            APIData.map((data) => {
              return (
                <div key={data.id}>
                   <p>Name: {data.properties.Fullname.title[0].plain_text}</p>
                   <p>Role: {data.properties.CompanyRole.rich_text[0].plain_text}</p>
                   <p>Location: {data.properties.Location.rich_text[0].plain_text}</p>
               </div>
              )
           })
          }
        </div>
      </header>
    </div>
  );
}

export default App;

Thành phần này hiển thị biểu mẫu cho phép người dùng gửi tên, vai trò và thông tin vị trí của họ. Nó sử dụng hook useState để lưu trữ các giá trị đầu vào của người dùng trong các biến trạng thái, sau đó thực hiện yêu cầu POST tới API phía máy chủ, chuyển thông tin của người dùng sau khi họ nhấn nút gửi.

Sau khi gửi thành công, mã này tạo một yêu cầu GET tới cùng một API phía máy chủ để truy xuất dữ liệu mà nó vừa gửi. Cuối cùng, nó ánh xạ qua dữ liệu đã truy xuất, được lưu trữ ở trạng thái và hiển thị nó trong DỮ LIỆU API phần bên dưới biểu mẫu.

Khởi động máy chủ phát triển của React và truy cập http://localhost:3000 trên trình duyệt của bạn để xem kết quả.

Sử dụng Notion làm Hệ thống quản lý nội dung

Notion là một công cụ năng suất cực kỳ linh hoạt, ngoài việc lưu trữ dữ liệu, có thể đóng vai trò là một hệ thống quản lý nội dung (CMS) cho các ứng dụng của bạn. Hệ thống cơ sở dữ liệu linh hoạt của nó cung cấp một bộ công cụ chỉnh sửa và các tính năng quản lý giúp đơn giản hóa quy trình quản lý nội dung cho ứng dụng của bạn.

Similar Posts

Leave a Reply

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