Nhảy đến nội dung

Bắt đầu

OneEntry Headless CMS SDK là một SDK cung cấp cách dễ dàng để tương tác với API OneEntry Headless CMS.

Trang chính thức

Truy cập trang web chính thức của AsyncModules tại https://oneentry.cloud để tìm hiểu thêm về AsyncModules Headless CMS.

Đăng ký

Để bắt đầu với AsyncModules, hãy đăng ký một tài khoản tại https://account.oneentry.cloud/authentication/register.

Cài đặt

Để cài đặt AsyncModules Headless CMS SDK trong dự án của bạn, hãy chạy lệnh sau:

npm install oneentry

Để sử dụng AsyncModules Headless CMS SDK trong dự án của bạn, hãy nhập hàm defineOneEntry:

import { defineOneEntry } from 'oneentry'

const config = {
token:'your-app-token',
};
const {
Admins,
AttributesSets,
AuthProvider,
Blocks,
Events,
Forms,
FormData,
FileUploading,
GeneralTypes,
IntegrationCollections,
Locales,
Menus,
Orders,
Pages,
Products,
ProductStatuses,
System,
Templates,
TemplatePreviews,
Users,
WS
} = defineOneEntry('your-url', config);

Hoặc

const config = {
token:'your-app-token',
};
const api = defineOneEntry('your-url', config);

Cấu hình

Tham số thứ hai của hàm khởi tạo nhận 'config'. Nó chứa các giá trị sau:

  • 'token' - Đặt khóa token nếu dự án của bạn bảo mật "Security API Token". Nếu bạn đang sử dụng bảo vệ bằng chứng chỉ, không truyền biến này. Bạn có thể đọc thêm về bảo mật của dự án của bạn tại đây.

  • 'langCode' - Đặt "langCode" để thiết lập ngôn ngữ mặc định. Bằng cách chỉ định tham số này một lần, bạn không cần phải truyền langCode cho các phương thức của ONEENTRY API. Nếu bạn chưa truyền ngôn ngữ mặc định, nó sẽ được đặt là "en_US".

  • 'traficLimit' - Một số phương thức sử dụng nhiều hơn một yêu cầu đến CMS để dữ liệu bạn nhận được đầy đủ và dễ làm việc. Truyền giá trị "true" cho tham số này để tiết kiệm lưu lượng và tự quyết định dữ liệu bạn cần. Giá trị mặc định là "false".

  • 'auth' - Một đối tượng với các cài đặt xác thực. Theo mặc định, SDK được cấu hình để làm việc với các token bên trong phiên của người dùng và không yêu cầu bất kỳ công việc bổ sung nào từ bạn. Đồng thời, SDK không lưu trữ trạng thái phiên giữa các phiên. Nếu bạn hài lòng với các cài đặt như vậy, không cần truyền biến 'auth' nữa.

'auth' chứa các cài đặt sau:

  • 'refreshToken' - Token làm mới của người dùng. Chuyển nó từ kho lưu trữ vào đây để khôi phục phiên của người dùng trong quá trình khởi tạo.

  • 'saveFunction' - Một hàm làm việc với token làm mới. Nếu bạn muốn lưu trữ token giữa các phiên, ví dụ trong bộ nhớ cục bộ, hãy truyền một hàm vào đây thực hiện điều này. Hàm phải chấp nhận một tham số mà chuỗi chứa token sẽ được truyền vào.

  • 'customAuth' - Nếu bạn muốn cấu hình xác thực và làm việc với các token tự mình, hãy đặt cờ này thành true. Nếu bạn muốn sử dụng các cài đặt của sdk, hãy đặt nó thành false hoặc không truyền nó.

Một ví dụ về cấu hình với bảo vệ token và xác thực tự động lưu trữ trạng thái giữa các phiên

const tokenFunction = (token) => {
localStorage.setItem('refreshToken', token)
}

const api = defineOneEntry('https://my-project.oneentry.cloud', {
token:'my-token',
langCode:'en_US',
auth: {
refreshToken: localStorage.getItem('refreshToken'),
saveFunction: tokenFunction
}
})

Một ví dụ về cấu hình được bảo vệ bằng chứng chỉ cho phép bạn tự cấu hình hệ thống xác thực và lưu trữ dữ liệu trên các yêu cầu.

const api = defineOneEntry('https://my-project.oneentry.cloud', {
langCode:'en_US',
traficLimit: true,
auth: {
customAuth: true,
refreshToken: localStorage.getItem('refreshToken')
}
})

Nếu bạn đã chọn tự cấu hình các token, bạn có thể truyền token vào phương thức như sau. Phương thức trung gian cho phép bạn truyền một token truy cập vào yêu cầu. Sau đó gọi phương thức cần thiết. Phương thức này (setAccessToken) không nên được gọi nếu phương thức không yêu cầu xác thực người dùng.

const user = api.Users.setAccessToken('my.access.token').getUser()

Nếu bạn chọn bảo vệ token để đảm bảo an toàn kết nối, chỉ cần truyền token của bạn vào hàm như một tham số tùy chọn.

Bạn có thể nhận token như sau

  1. Đăng nhập vào tài khoản cá nhân của bạn
  2. Đi đến tab "Dự án" và chọn một dự án
  3. Đi đến tab "Truy cập"
  4. Đặt công tắc thành "Security API Token"
  5. Đăng nhập vào dự án, đi đến phần cài đặt và mở tab token
  6. Nhận và sao chép token của dự án bạn

Bạn cũng có thể kết nối một chứng chỉ tls để bảo vệ dự án của bạn. Trong trường hợp này, không truyền "token" chút nào. Khi sử dụng chứng chỉ, hãy thiết lập một proxy trong dự án của bạn. Truyền một chuỗi rỗng làm tham số url. Tìm hiểu thêm về bảo mật

const saveTokenFromLocalStorage = (token) => {
localStorage.setItem('refreshToken', token)
}

const api = defineOneEntry('your-url', {
token: 'my-token',
langCode:'my-langCode',
auth: {
customAuth: false,
userToken: 'rerfesh.token',
saveFunction: saveTokenFromLocalStorage
}
});

Lỗi

Nếu bạn muốn bỏ qua lỗi bên trong sc, hãy để thuộc tính "errors" ở mặc định. Trong trường hợp này, bạn sẽ nhận được dữ liệu thực thể hoặc đối tượng lỗi. Bạn cần thực hiện kiểm tra kiểu. ví dụ, bằng cách kiểm tra thuộc tính statusCode với ".hasOwnProperty"

Tuy nhiên, nếu bạn muốn sử dụng cấu trúc "try catch(e) ", hãy đặt thuộc tính "isShell" thành giá trị "false". Trong trường hợp này, bạn cần xử lý lỗi bằng cách sử dụng "try catch(e) ".

Ngoài ra, bạn có thể truyền các hàm tùy chỉnh sẽ được gọi bên trong sdk với mã lỗi tương ứng. Các hàm này nhận một đối tượng lỗi làm tham số. Bạn có thể xử lý nó theo cách của riêng bạn.

const api = defineOneEntry('your-url', {
token: 'my-token',
langCode:'my-langCode',
errors: {
isShell: false,
customErrors: {
400: (error) => console.error(error.message),
404: (error) => console.error(error.message),
500: (error) => console.error(error.message)
}
}
});