Kontent by Kentico의 대량 업데이트 콘텐츠 유형
최근 프로젝트에서 저는 모든 미디어 자산에 대해 Cloudinary를 사용했고 Cloudinary custom element에서 custom element gallery을 사용했습니다. 이것은 나에게 잘 작동했지만 어느 시점에서 전체 프로젝트에서 사용자 정의 요소에 대한 설정을 변경해야 했습니다. 이 프로젝트에서는 사용자 정의 요소가 생성될 때마다 설정을 추가했기 때문에 70개의 콘텐츠 유형으로 내 콘텐츠 모델을 업데이트하려면 약간의 노력이 필요했습니다.
Kontent CLI을 사용하여 콘텐츠 모델 변경 사항을 관리했기 때문에 콘텐츠 모델이 변경될 때마다 새 스크립트가 생성됩니다. 이와 같은 대규모 업데이트에 직면했을 때 각 콘텐츠 유형 변경을 수동으로 스크립트하고 싶지 않았기 때문에 작업을 자동화하기 위해 Kontent Management API를 사용하여 스크립트를 작성했습니다.
이 스크립트를 작성하려면 다음 세 가지 작업을 수행해야 했습니다.
우리 프로젝트에서 문제의 변경 사항은 16개의 콘텐츠 유형에 영향을 미쳤습니다. Mind Map diagrams in Miro을 사용하여 콘텐츠 모델을 문서화하는 방법은 문제의 유형과 해당 요소 및 코드명을 쉽게 식별할 수 있음을 의미했습니다. 그래서 우리에게 필요한 것은 콘텐츠 유형 코드명의 단순한 배열이었습니다.
우리는 이 데이터를 각각 아래와 같이 콘텐츠 유형 및 요소의 코드명을 사용하여 간단한 배열로 캡처했습니다.
const contentTypes = [
['comp_homepage_hero', 'image'],
['comp_hero_quote', 'image'],
['menu_item', 'tile_image'],
['comp_image', 'image'],
['comp_hero_slim', 'image'],
['location_facility', 'icon'],
['comp_hero_tile', 'image'],
['restaurant', 'tile_image']];
필요한 경우 변경해야 하는 콘텐츠 유형을 식별하기 위해 추가 스크립트를 작성할 수 있었습니다. 즉, 콘텐츠 모델이 커짐에 따라 스크립트를 다시 실행할 수 있습니다.
업데이트를 위해 Cloudinary 연결에 대한 세부 정보를 변경했습니다. 즉, 각 콘텐츠 유형에 대해 다음이 필요합니다.
const updateData = (codename) => { return [ {
op: 'replace',
path: `/elements/codename:${codename}/json_parameters`,
value: "{\"cloudName\":\"NEW_CLOUD_NAME\",\"apiKey\":\"123451234512345\"}" } ] }
${codename}
는 업데이트할 요소의 이름을 결정하기 위해 전달할 수 있는 매개변수입니다.그런 다음 다음과 같이
contentTypes
배열을 반복하여 모두 함께 가져와야 합니다.await Promise.all(contentTypes.map(async (type) => { await apiClient.modifyContentType().byTypeCodename(type[0]) .withData(updateData(type[1])).toPromise() }));
우리가 이것을 처음 가졌을 때
await Promise.all(...)
를 사용하지 않았기 때문에 잠시 혼란스러웠습니다. 이는 스크립트가 종료되기 전에 모든 변경 사항이 적용되도록 하는 데 중요합니다.일단 실행되면 코드명 배열의 모든 콘텐츠 유형을 가져와서 수정합니다. 여기서 루핑의 기본 아이디어는 간단하지만 종종 간과됩니다. 재사용 가능성을 높이기 위해 연결된 항목의 허용 목록에 새 콘텐츠 유형을 추가하는 것과 같은 다른 변경 사항으로 쉽게 다시 실행할 수 있도록 프로젝트의 유틸리티 파일에 이것을 추가했습니다.
Reference
이 문제에 관하여(Kontent by Kentico의 대량 업데이트 콘텐츠 유형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mattnield/bulk-update-content-types-in-kontent-by-kentico-152c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)