API를 사용하여 JSON 데이터를 Storyblok으로 가져오기
Storyblok 관리 API 사용
Storyblok 관리 API는 REST를 중심으로 구성됩니다. API에는 예측 가능한 리소스 지향 URL이 있으며 HTTP 응답 코드를 사용하여 API 오류를 나타냅니다. 우리는 기성 HTTP 클라이언트가 이해하는 HTTP 쿼리 매개 변수 및 HTTP 동사와 같은 기본 제공 HTTP 기능을 사용합니다. 우리는 원본 간 리소스 공유를 지원하므로 클라이언트 측 웹 애플리케이션에서 API와 안전하게 상호 작용할 수 있습니다(공개 웹 사이트의 클라이언트 측 코드에 비밀 API 키를 노출해서는 안 됨). API 라이브러리가 응답을 적절한 언어별 객체로 변환하더라도 JSON은 오류를 포함한 모든 API 응답에서 반환됩니다.
이야기
스토리 엔드포인트를 사용하면 Storyblok 공간의 모든 콘텐츠 항목을 관리할 수 있습니다. 이를 사용하여 콘텐츠를 가져오거나 내보내거나 수정할 수 있습니다.
REST API를 사용하여 Story를 만들 수 있습니다.
Storyblok.post('spaces/606/stories/', {
"story": {
"name": "Story Name",
"slug": "story-name",
"content": {
"component": "page",
"body": []
}
},
"publish": 1
}).then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
예를 들어 위의 코딩은 Javascript를 사용합니다.
CURL로도 쉽게 할 수 있습니다.
이 같은.
curl "https://mapi.storyblok.com/v1/spaces/606/stories/" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_OAUTH_TOKEN" \
-d "{\"story\":{\"name\":\"Story Name\",\"slug\":\"story-name\",\"content\":{\"component\":\"page\",\"body\":[]}},\"publish\":1}"
또한 구성 요소를 생성, 업데이트, 삭제합니다. 예를 들어 API를 사용하여 Storyblok에서 구성 요소를 생성하려면 다음과 같이 하십시오.
Storyblok.post('spaces/656/components/', {
"component": {
"name": "teaser",
"display_name": "Teaser",
"schema": {
"title": {
"type": "text",
"pos": 0
},
"image": {
"type": "image",
"pos": 1
}
},
"is_root": false,
"is_nestable": true
}
}).then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
JSON 파일을 읽고 Storyblok으로 가져옵니다.
가져오기에 nodejs를 사용하므로 먼저 패키지를 설치해야 합니다.
yarn add storyblok-js-client
또는 npm i storyblok-js-client
그 다음에
const StoryblokClient = require('storyblok-js-client')
// Initialize the client with the oauth token
const Storyblok = new StoryblokClient({
oauthToken: '<yourPersonalToken>', // can be found in your My account section
})
Storyblok 구성 추가
const config = {
spaceId: '<SpaceId', // can be found in the space settings.
parentFolder: '<parentFolder>', // navigate into your folder and copy the id from the URL at app.storyblok.com <- last one
}
그 다음에
fs
모듈을 사용하여 json 파일을 읽습니다.json 파일이 큰 경우
createReadStream
에 있는지 확인하십시오.const data = fs.createReadStream('data.json')
data
.on('data', function (data) {{
data = JSON.parse(data)
Object.entries(data).forEach(([key, value]) => {
const story = {
slug:value.slug,
name: value.name,
parent_id: config.parentFolder,
content: {
component: 'partner',
name: value.name,
description: value.content.en,
description__i18n__de: value.content.de // if you have i18n.
}
Storyblok.post(`spaces/${config.spaceId}/stories/`, {
story,
})
.then((res) => {
console.log(`Success: ${res.data.story.name} was created.`)
})
.catch((err) => {
console.log(`Error: ${err}`)
})
})
})
})
Reference
이 문제에 관하여(API를 사용하여 JSON 데이터를 Storyblok으로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/silogecho97/importing-json-data-to-storyblok-1i0n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)