Вы не можете добавить ?_format=json к URL-адресу файла в www.example.com/sites/default/files потому что это просто каталог файлов сайта.
Так почему же Drupal выдает вам json, когда вы добавляете ?_format=json к www.example.com/node/123?_format=json или же www.example.com/media/123?_format=json? Это потому что это сущности.
Итак, как вы можете использовать ?_format=json с файлами? Вам нужно будет использовать сущности.
Проще всего это сделать с помощью Медиа-модуля, встроенного в ядро.
Чтобы попробовать это:
- Установите медиа-модуль.
- Перейти к
/admin/структура/медиа.
По умолчанию будут созданы некоторые основные типы мультимедиа (аудио, документ, изображение, удаленное видео и видео).
Проверьте документ тип носителя, так как это хороший пример использования файлов.
Вы также можете легко создавать новые типы мультимедиа для своего конкретного случая использования.
Затем вы можете использовать ?_format=json на URL-адресах мультимедиа, которые вы создаете.
Недостатком этого подхода является то, что вы все еще не можете получить json из пути к каталогу файлов; вместо этого вам придется использовать URL-адрес медиа-объекта.
Чтобы автоматически установить URL-адреса медиаобъекта на основе шаблона, вы можете использовать Патавто.