Hướng dẫn API CMS Connector

Hướng dẫn API mới của CMS Connector  

Tài liệu này đóng vai trò là hướng dẫn để mở rộng API của CMS Connector nhằm hỗ trợ các Hệ thống Quản lý Nội dung (CMS) mới và file Nó mô tả quy trình tạo các gói CMS mới, cập nhật logic trình xác thực và trình ánh xạ, cũng như xử lý các loại khác nhau. file các phần mở rộng và cấu hình CMS trong tuyến đường `/validator` và `handle`FileChức năng xử lý. Mục tiêu là duy trì một kiến ​​trúc mô-đun và không phụ thuộc vào CMS, cho phép tích hợp liền mạch các nền tảng CMS khác nhau bằng cách tuân theo một phương pháp có cấu trúc để xác thực, xử lý và ánh xạ dữ liệu.  

biểu tượng mới Tạo gói CMS tương tự  

Giống di cư đầy đủ, di chuyển-sitecoredi cư-wordpress 

Để hỗ trợ một CMS mới (ví dụ: Drupal), hãy tạo một gói mới như sau:  

Kiểu chữ

 di chuyển-drupal/

Bên trong đó, hãy triển khai cấu trúc cần thiết:  

Kiểu chữ

// migration-drupal/index.js  

hằng số trình xác thực = (dữ liệu) => {

 // Xác thực file định dạng, cấu trúc, các trường bắt buộc  

};hằng số Trích xuấtFiles = async (fileĐường dẫn) => {

 // Giải nén hoặc phân tích nội dung  

};

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

hằng số contentTypes = {

 // Định nghĩa kiểu nội dung dành riêng cho Drupal  

};

hằng số tham chiếu = {

 // Tham chiếu trường dành riêng cho Drupal  

};

hằng số extractLocales = (data) => {

 // Trả về mảng ngôn ngữ  

};

mô-đun.exports = {

 trình xác thực,

 Trích xuấtFiles,

 contentTypes,

 thẩm quyền giải quyết,

 extractLocales

};

biểu tượng cắm Nơi cắm điện  

Khi gói của bạn (ví dụ: migration-drupal) đã sẵn sàng:  

1. Thêm đoạn mã này vào file package.json:  

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

JSON

“di cư-drupal”“file:di cư-drupal”

2. Cập nhật logic xác thực của bạn:  

Kiểu chữ

hằng số { validator: drupalValidator } = yêu cầu('di cư-drupal');

công tắc (Mã định danh CMS) {

 trường hợp 'drupal-zip':

 trở lại drupalValidator({ data });

}

3. Cập nhật logic của createMapper và thêm trường hợp vào câu lệnh switch trong createMapper::  

Kiểu chữ

trường hợp 'drupal':

 trở lại chờ tạo DrupalMapper(…);

✅ Bản tóm tắt  

Để thêm CMS mới, chỉ cần:  

  • Tạo một gói cấu trúc tương tự như migration-drupal. 
  • Tuân theo cấu trúc phương pháp hiện có
  • Thêm nó vào các khối chuyển đổi trình xác thực và trình ánh xạ.

Điều này giúp cho kiến ​​trúc trở nên có tính mô-đun và không phụ thuộc vào hệ thống quản lý nội dung (CMS), tất cả các giải thích được cung cấp trong  tab con. 

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

trình xác thực Tuyến đường xác thực  

Tuyến đường này được sử dụng để xác thực và xử lý một file (từ máy chủ cục bộ hoặc từ AWS S3), dựa trên file loại và cấu hình CMS.  

✅ Hết chức năngview  

  • Chấp nhận yêu cầu GET tới /validator 
  • Xác định nếu file Nguồn dữ liệu là cục bộ hoặc từ S3.
  • Dựa trên file sự mở rộng:
    ○ Nếu XML → được đọc dưới dạng chuỗi
    ○ Trường hợp khác (ví dụ: ZIP) → đọc dưới dạng bộ đệm nhị phân
  • Xử lý cuộc gọi File Xử lý bằng file dữ liệu
  • Khi thành công, hãy lập bản đồ các quy trình đã xử lý. file sử dụng create Mapper

thêm vào Thêm hỗ trợ cho tính năng mới ở đâu? File Các loại  

Trên tuyến đường này, file Các phần mở rộng được xác định bằng cách sử dụng:  

JavaScript

hằng số fileExt = fileTên?.chia?.('.')?.nhạc pop() ?? ";

Sau đó, dựa trên file Phần mở rộng, logic được xử lý như sau:

JavaScript

if (fileMở rộng === 'xml') {

 // Xử lý XML dưới dạng chuỗi  

khác {

 // Xử lý dưới dạng bộ đệm (ví dụ: nén zip)  

}

Nếu bạn muốn thêm một mục mới file Bạn có thể thêm kiểu dữ liệu này vào bên trong điều kiện này: Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

JavaScript

if (fileMở rộng === 'xml') {

 // …  

ngược lại nếu (fileMở rộng === 'yourNewExtension') {

 // Thêm logic để đọc và xử lý thông tin mới này file kiểu  

khác {

 // Quy trình xử lý mặc định cho dữ liệu nhị phân files  

}

Bạn cũng có thể cần kéo dài tay cầm.FileQuá trình xử lý để đáp ứng nhu cầu mới file kiểu.  

thêm vào Nên thêm hỗ trợ cho các loại CMS mới ở đâu?  

Loại cmsType được lấy từ:  

const cmsType = config?.cmsType?.toLowerCase();

Sau đó, biến này được truyền cho:  

const data = await handle File Xử lý (file Bên ngoài, file Dữ liệu, Loại CMS, tên);

nhọn Nếu bạn muốn thêm một CMS mới, bạn có thể mở rộng logic bên trong handle. File Xử lý hoặc bất cứ nơi nào bạn thực hiện các quy trình xử lý dành riêng cho CMS.  

Cập nhật thêm:  

tạo Mapper(fileĐường dẫn, projectId, app_token, affix, config); Để hỗ trợ loại CMS mới của bạn, hãy thêm logic vào hàm createMapper để xử lý nó một cách phù hợp.  

✅ Bản tóm tắt  

● Bạn có thể thêm mới file mở rộng bằng cách sửa đổi fileĐiều kiện bên ngoài  Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

● Bạn có thể thêm các loại CMS mới bằng cách mở rộng handle.FileXử lý và tạo Mapper  

● Hệ thống đã tách biệt việc xử lý XML (chuỗi ký tự) và ZIP (bộ đệm) — hãy tuân theo cấu trúc đó.  

trình xác thực Xử lý File Xử lý  

Tài liệu này giải thích cách tích hợp một nền tảng CMS mới vào hệ thống hiện có. file Quy trình xác thực và xử lý sử dụng các hàm:  

● tay cầmFileXử lý()  

● trình xác thực()  

biểu tượng cắm Mục đích  

Hệ thống quản trị hiện hỗ trợ nhiều loại CMS (như Sitecore, Contentful, WordPress, AEM). Mục tiêu là xác thực các tệp đã tải lên. filevà chuyển đổi chúng thành định dạng có cấu trúc cụ thể cho từng CMS.  

Hệ thống xác định CMS+ file cặp nhập liệu sử dụng định dạng này:  

hệ thống phần mở rộng kiểu → ví dụ: sitecore-zip, contentful-json, wordpress-xml  

biểu tượng chức năng Thêm CMS mới vào đâu?  

Bước 1: Cập nhật hàm xác thực ()  

Nằm bên trong:  

JavaScript

hằng số validator = ({ data, type, extension }: { data: any; type: string; extension: string }) => { … }

Hãy tìm câu lệnh switch trên CMSIdentifier. Mỗi trường hợp xử lý một loại CMS và  file- sự kết hợp mở rộng.  

nhọn Để thêm CMS mới, hãy thêm một trường hợp mới trong khối chuyển đổi này:

Examplê:  

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

JavaScript

trường hợp 'newcms-json': {

 trở lại newCMSValidator(data); // Logic xác thực mới của bạn  }

Hãy đảm bảo:  

● Định dạng CMSIdentifier khớp với {type}-{extension} dự kiến.  

● Hàm xác thực (ví dụ: newCMSValidator) được nhập hoặc định nghĩa.  

não Bạn có thể thêm nhiều biến thể khác nhau, ví dụ như:  

trường hợp 'newcms-zip':  

trường hợp 'newcms-xml':

Bước 2: Tạo hàm xác thực  

Trong dự án của bạn, hãy định nghĩa logic xác thực cho CMS mới. Ví dụ:amplê:

JavaScript

hằng số newCMSValidator = (data) => {

 // Logic kiểm tra tính hợp lệ tùy chỉnh của bạn cho JSON, ZIP, v.v.  

 trở lại ĐÚNG VẬY; // hoặc false nếu quá trình xác thực thất bại  

};

sợi dây Đầu vào: Đây có thể là:  

● Một đối tượng JSZip (để nén tệp zip)  

● Chuỗi XML thô  

● Đối tượng/chuỗi JSON  

sợi dây Kết quả: Giá trị Boolean (true = hợp lệ, false = bị từ chối)  

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

Bước 3: Kiểm tra với tay cầmFileXử lý()  

Hàm validator() được sử dụng bên trong hàm handle.FileXử lý():

JavaScript

if (chờ đợi trình xác thực({ data: zipBuffer, type: cmsType, extension: fileMở rộng })) {  // …  

}

Hãy đảm bảo trình xác thực CMS mới của bạn được bao gồm trong điều kiện bằng cách truyền tham số chính xác:  

● cmsType (từ config.cmsType)  

● filePhần mở rộng (từ tệp đã tải lên) file)  

✅ Danh sách kiểm tra tóm tắt  

Mô tả nhiệm vụ

Thêm trường hợp mới Cập nhật khối switch validator()  

Triển khai logic. Viết hàm newCMSValidator của riêng bạn.  

Trở lại  

đúng/sai  

Đảm bảo trình xác thực trả về giá trị boolean  

Sử dụng khóa chính xác. Tuân theo định dạng kiểu-phần mở rộng (ví dụ: newcms-zip)  

�� Tùy chọn: Mẹo gỡ lỗi  

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

● Ghi lại CMSIdentifier bên trong hàm validator() để đảm bảo trường hợp của bạn được xử lý.  

● Đảm bảo tay cầmFileQuá trình xử lý đang diễn ra chính xác. fileExt và cmsType.  

Thêm hỗ trợ Mapper cho CMS mới  

Sau khi xác thực và xử lý filePhần phụ trợ chuẩn bị dữ liệu ánh xạ bằng cách sử dụng hàm createMapper. Bước này chuyển đổi nội dung được trích xuất thành định dạng chuẩn hóa có thể được sử dụng để tạo dữ liệu giả và ánh xạ ngôn ngữ trong hệ thống quản lý nội dung (CMS) của bạn.  

Cách thức hoạt động của việc lập bản đồ (Luồng tổng quan)  

1. ✅ File Đã được xác thực và lưu thành công (dưới dạng ZIP, XML, JSON, v.v.)  

2. con đường Đường dẫn đến tệp đã xử lý file được xác định:  

JavaScript

hằng số fileĐường dẫn = đường dẫn.join(__dirname, '..''..''đã trích xuất_fileS', fileTên);

3. não Hàm createMapper được gọi:  

JavaScript

tạo Mapper(fileĐường dẫn, projectId, app_token, affix, config);

4. lý luận Chức năng này định tuyến logic dựa trên loại CMS (ví dụ: Sitecore, Contentful, WordPress).

kết cấu Hàm createMapper – Cấu trúc  

JavaScript

hằng số tạo Mapper = không đồng bộ (

 fileCon đường,

 projectId,

 mã thông báo ứng dụng,

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

 gắn,

 cấu hình

) => {

 hằng số CMSIdentifier = config?.cmsType?.toLowerCase();

 công tắc (Mã định danh CMS) {

 trường hợp 'sitecore':

 trả về chờ tạo SitecoreMapper(fileĐường dẫn, projectId, app_token, affix, config);

 trường hợp 'đầy đủ':

 trả về chờ createContentfulMapper(projectId, app_token, affix, config);  trường hợp 'wordpress':

 trở lại tạoWordpressMapper(fileĐường dẫn, projectId, app_token, affix);  mặc định:

 trở lại SAI;

 }

};

hệ thống Mỗi trường hợp tương ứng với một CMS và gọi hàm ánh xạ của nó.  

biểu tượng mới Cách thêm CMS mới  

Bước 1: Thêm trường hợp (Case) vào createMapper  

Thêm một trường hợp mới cho mã định danh CMS của bạn:  

JavaScript

trường hợp 'newcms': {

 trả về chờ tạo CMSMapper mới(fileĐường dẫn, projectId, app_token, affix, config);

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

}

Bước 2: Tạo hàm ánh xạ  

Hãy triển khai một hàm mới như sau:  

JavaScript

hằng số tạo CMSMapper mới = không đồng bộ (fileĐường dẫn, projectId, app_token, affix, config) => {

 // 1. Đọc và chuyển đổi file nội dung  

 // 2. Tạo đối tượng ánh xạ trường  

 // 3. Gửi đến /v2/mapper/createDummyData  

 // 4. Tạo ánh xạ ngôn ngữ và gọi /v2/migration/localeMapper  };

Bước 3: Thực hiện cuộc gọi API dữ liệu giả  

Hãy sử dụng axios giống như cách triển khai hiện có:  

JavaScript

hằng số cấu hình = {

 phương pháp: 'bưu kiện',

 Chiều dài tối đa của thân xe: Vô cực,

 url:

`${process.env.NODE_BACKEND_API}/v2/mapper/createDummyData/${projectId}`, tiêu đề: {

 mã thông báo ứng dụng,

 'Content-Type''application/json'

 },

 dữ liệu: JSON.stringify(fieldMapping),

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

};

hằng số { dữ liệu } = chờ đợi axios.request(config);

if (data?.data?.content_mapper?.chiều dài) {

 deleteFolderSync(infoMap?.path);

 logger.info('Xác thực thành công:', {

 trạng thái: HTTP_CODES?.OK,

 thông báo: HTTP_TEXTS?.MAPPER_SAVED,

 });

}

Bước 4: Xử lý ánh xạ ngôn ngữ  

Nếu hệ thống quản lý nội dung (CMS) của bạn hỗ trợ bản địa hóa, hãy thêm đoạn mã này hoặc đặt en-us làm mặc định:  

JavaScript

hằng số mapperConfig = {

 phương pháp: 'bưu kiện',

 Chiều dài tối đa của thân xe: Vô cực,

 url:

`${process.env.NODE_BACKEND_API}/v2/migration/localeMapper/${projectId}`, tiêu đề: {

 mã thông báo ứng dụng,

 'Content-Type''application/json'

 },

 dữ liệu: {

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

 địa phương: Mảng.from(localeData) ?? []

 }

};

chờ đợi axios.request(mapperConfig);

Chạy upload-api Dự án trên bất kỳ hệ điều hành nào  

Các hướng dẫn sau đây sẽ giúp bạn vận hành máy tính. upload-api thư mục trên bất kỳ hệ điều hành nào, bao gồm cả Windows và macOS.  

Bắt đầu upload-api Dự án  

Có hai phương pháp để bắt đầu upload-api dự án:  

Phương pháp 1:  

 Chạy lệnh sau từ thư mục gốc của dự án:  

Vỏ bọc

npm run upload

Lệnh này sẽ trực tiếp khởi động upload-api bưu kiện.  

Phương pháp 2:  

 Điều hướng đến upload-api Tạo thư mục theo cách thủ công và chạy máy chủ phát triển:  

Vỏ bọc

cd upload-api

npm run start

Cách tiếp cận này bắt đầu bằng upload-api từ bên trong thư mục của chính nó.  

Khởi động lại sau khi kết thúc  

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

Nếu dự án kết thúc đột ngột, bạn có thể khởi động lại dự án bằng cách làm theo các bước đã nêu ở trên. Chọn Phương pháp 1 hoặc Phương pháp 2 để khởi chạy lại dịch vụ.  

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tso-migration@contentstack.com. 

Tài liệu / Tài nguyên

Hướng dẫn API kết nối CMS CONTENTSTACK [tập tin pdf] Hướng dẫn sử dụng
Hướng dẫn API Trình kết nối CMS, Hướng dẫn API Trình kết nối, Hướng dẫn API

Tài liệu tham khảo

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *