Использование API управления Storyblok
API управления Storyblok организован по принципу REST. Наш API имеет предсказуемые, ориентированные на ресурсы URL-адреса и использует коды ответа HTTP для указания ошибок API. Мы используем встроенные функции HTTP, такие как параметры запроса HTTP и глаголы HTTP, которые понимаются готовыми клиентами HTTP. Мы поддерживаем кросс-оригинальный обмен ресурсами, что позволяет вам безопасно взаимодействовать с нашим API из веб-приложения на стороне клиента (хотя вы никогда не должны раскрывать свой секретный ключ API в коде на стороне клиента публичного веб-сайта). Все ответы API, включая ошибки, возвращаются в формате JSON, хотя наши библиотеки API преобразуют ответы в соответствующие объекты, специфичные для конкретного языка.
Истории
Конечная точка stories позволит вам управлять всеми записями контента вашего пространства Storyblok. Вы можете использовать ее для импорта, экспорта или изменения контента.
Вы можете создать историю с помощью REST API
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}"
Вы также можете создавать, обновлять, удалять компоненты. Например, ниже показано, как создать компонент в Storyblok с помощью API
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 для импорта, поэтому сначала убедитесь, что установили пакет
затем
// 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
}
Затем
Прочитайте json-файл с помощью модуля fs
.
не забудьте createReadStream
, если json-файл большой.
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}`)
})
})
})
})