Платформа API — не может генерировать сущность из схемы без собственных свойств

Я использую генератор типов схемы платформы API, но борюсь с типом, который определен в schema.org, но не имеет собственных свойств (http://schema.org/Duration).

Когда я запускаю vendor / bin / schema generate-types, я получаю

[error] The property "potentialAction" (type "Duration") has an unknown type. Add its type to the config file.

[warning] The property "identifier" (type "Duration") has several types. Using the first one ("URL") or possible options("URL", "Text").

Мой тип конфигурации:

  types:
Thing:
properties:
name: ~
Duration: ~
Recipe:
properties:
cookTime: ~
recipeCuisine: ~

Если я определяю одно из свойств, которое Duration наследует от родителя (например, Thing-> Name), оно генерирует OK, но я не уверен, как затем установить для него свойство duration (предположительно text).
Возможно, я перепутал, как использовать / определять типы, которые не имеют собственных свойств — есть ли способ сообщить схеме «Это всего лишь одно текстовое значение»?

1

Решение

Я не знаком с API Platform, но думаю, что на ваш вопрос можно ответить с точки зрения разработки структурированных данных Schema.org:

Предоставление текстового значения (рекомендуемые)

Вы обычно не указали бы Duration как тип. Просто укажите текстовое значение.

На примере Schema.org cookTime свойство (которое ожидает Duration значение):

"cookTime": "PT1H",
Cook time: <meta itemprop="cookTime" content="PT1H">1 hour
Cook time: <meta property="cookTime" content="PT1H">1 hour

Таким образом, его использование похоже на типы данных.

Предоставление стоимости предмета

если ты делать необходимо предоставить его как тип (по какой-либо причине), вы можете указать его как значение для name свойство, так как нет другого подходящего свойства, определенного:

"cookTime": {
"@type": "Duration",
"name": "PT1H"},
<div itemprop="cookTime" itemscope itemtype="http://schema.org/Duration">
Cook time: <meta itemprop="name" content="PT1H">1 hour
</div>
<div property="cookTime" typeof="Duration">
Cook time: <meta property="name" content="PT1H">1 hour
</div>

Но это обычно не делается, и потребители могут не справиться с этим правильно. Например, SDTT от Google выдает предупреждение о том, что оно не понимает значение «PT1H» как дату / время ISO 8601, в то время как не указывает предупреждение при указании его в качестве текстового значения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]