• Home
  • Craft CMS
  • Craft CMS のテンプレートで JSON を返す

Craft CMS のテンプレートで JSON を返す

例えば、 entry がセットされているときはエントリーの情報を、セットされていないときはエラーを返したいとします。

結論からいうと Twig テンプレートは次のようになります。

{% header 'Content-Type: application/json; charset=utf-8' %}
{% set response = { status: 'error' } %}
{% if entry is defined %}
    {% set response = {
        status: 'success',
        id: entry.id,
        title: entry.title,
        sectionId: entry.sectionId,
    } %}
{% endif %}
{{ response | json_encode() | raw }}

重要なのは先頭でヘッダーをセットすることと、出力するところで | json_encode() | raw を組み合わせるところです。

なお、Craft の場合は Element API for Craft CMS というプラグインで、自由に API を定義できます。 上記のようにテンプレートで実装するのが良いか、API で実装するのが良いか、要件と照らし合わせて選択したら良いと思います。

以上です。

Recent Entries

Pickup Categories

Movable Type

CMSとして国内5万サイト以上に導入されている Movable Type に関する記事です。

Craft CMS

CMS 業界で注目の Craft CMS に関する記事です。Craft CMS はチーム全体をハッピーにしてくれる素晴らしい CMS です。