Angular & Contentful: невозможно создать ресурс внутри пространства - PullRequest
0 голосов
/ 18 мая 2018

У меня есть приложение Angular, которое использует Contentful (v. 5.1.3).Я хочу загрузить ресурс в Contentful из приложения Angular.Согласно официальному сайту, правильный способ сделать это:

client.getSpace('<space_id>')
.then((space) => space.createAsset({ ... })

См. Здесь: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/assets

Проблема в том, что объект Space не имеет createAsset метод.Фактически, единственные методы, которые он имеет, это locales, name, sys и toPlainObject.

Я установил Contentful с npm install contentful.Есть ли какая-то проблема с пакетом?Есть ли причина, по которой объект Space был лишен всех полезных методов?

Спасибо,

Alex

1 Ответ

0 голосов
/ 01 июня 2018

Вам необходимо использовать библиотеку contentful-management.js вместо библиотеки contentful.js для создания активов.Если вы заметили в примере кода по указанной вами ссылке, она использует библиотеку управления:

const contentful = require('contentful-management')

const client = contentful.createClient({
  accessToken: '<content_management_api_key>'
})

client.getSpace('<space_id>')
.then((space) => space.createAsset({
  fields: {
    title: {
      'en-US': 'Playsam Streamliner'
    },
    description: {
      'en-US': 'Streamliner description'
    },
    file: {
      'en-US': {
        contentType: 'image/jpeg',
        fileName: 'example.jpeg',
        upload: 'https://example.com/example.jpg'
      }
    }
  }
}))
.then((asset) => asset.processForAllLocales())
.then((asset) => console.log(asset))
.catch(console.error)
...