ヘッドレスCMSとして健全性から始める


SANityはあなたがJamstack、または単にあなたのプロジェクトのAPIを必要と開始するときに最適な仲間です.このチュートリアルでは、どのように健全性を使用して起動する方法を学びます — JavaScriptを使用して反応エディターを構成するには、APIをクエリし、コンテンツデータセットを移行します.
あなたがいくつかのバックエンドの必要性を自分で見つける場合は、チャンスは、健全性は後にあなたを処罰せずに開始するための最速の方法の一つです.スピンあなたの週末プロジェクトのための新しい健全性プロジェクト.そのためには何かをすばやくテストするAPIが必要です.または、より深刻なもののためにそれを使用することができます.たとえば、レガシーシステムと技術の間にコンジットが必要な場合は、使用する方を好みます.そして、あなたがデジタルコンテンツの制御になるために人間が必要な場合、SANITYは、オープンソースエディタを持って、あなたは簡単なJavaScriptを使用して構成することができますNetlify , Now , または、正気の雲.
それは、私が働いた内容バックエンドを通してよく考えられて、よく考えられているもののうちの1つです、そして、それは私が今健全さのために働きます、そして、それの一日中を愛しています.
ビデオは“健全性から始まる”
あなたは、開発者の層の中で多くを行うと、多くの自由な健全なプロジェクトとして作成することができますpricing 透明で柔軟です.
あなたは数分以内にアップして実行する必要があります-ちょうどあなたのGoogleTerms of Service , そしてそれです.SMACE CLIをインストールし、新しいプロジェクトを起動します.npm i -g @sanity/cli && sanity initの指示sanity init コマンドは、プロジェクトを作成し、ローカルの健全性スタジオをダウンロードすることができます.あなたが走るならばsanity start あなたのプロジェクトフォルダでは、CLIは、ホットモジュールの再読み込みを使用してローカルサーバーを開きますので、手動でブラウザを更新することなく設定することができます.スタジオは常にホストされているリアルタイムバックエンドに接続されています.これは、コンテンツの内容で作業を開始するとすぐに、そのコンテンツも利用可能になり、APIでQueryableになります.言い換えれば、あなたのエディターがコンテンツを操作し始めることができるプロジェクトを取得するのは迅速です.
最初に設定されたテンプレートのいくつかを試してみるのが役に立つかもしれませんが、スタジオを設定するのがいかに簡単かを示すために、単純なポストエントリのコードを見せてください.
    export default {
      name: 'post',
      title: 'Post',
      type: 'document',
      fields: [
        {
          name: 'title',
          title: 'Title',
          type: 'string'
        }
      ]
    }
スタジオは次のようになります.

あなたがスタジオについて気にしないならば、それは完全にOKです.ドキュメントを作成し、それらを編集するだけで簡単にSanityのパッチAPIを使用することができます.queryable文書を作るには、write token , エー_type キー、およびかなり迅速に学ぶことが異なるデータ型のいくつかのコンベンションがあります.使用JavaScript client , 次のようなドキュメントを作成できます.
    import sanityClient from '@sanity/cli'
    const client = sanityClient({
      projectId: '',
      dataset: '',
      token: ''
    })

    client.create({ _type: "post", title: "Hello World" }).then(console.log)
    > { _createdAt: '2018-11-10T20:06:56Z',
    _id: 'wK0NtpsoCZRvwU3EDtEub2',
    _rev: 'wK0NtpsoCZRvwU3EDtEuYI',
    _type: 'test',
    _updatedAt: '2018-11-10T20:06:56Z',
    title: 'hello world' }
そして、あなたが変更(または別の)を追加したい場合は、次のように実行します.
    client.patch('wK0NtpsoCZRvwU3EDtEub2').set({ title: 'Hello Worlds!'}).then(console.log)
    >_createdAt: '2018-11-10T20:06:56Z',
    _id: 'wK0NtpsoCZRvwU3EDtEub2',
    _rev: 'FUGFhuJJo756q4bO12e29f',
    _type: 'test',
    _updatedAt: '2018-11-10T20:10:31Z',
    title: 'Hello Worlds!' }
あなたは健全なCLIを使用して、健全なドキュメントを使用して新しい文書を作成し、お気に入りのテキストエディタでデータを書き込むことができます.

Groqによるデータの問い合わせ


ドキュメントを持っているので、Groqを使用してAPIを使用してクエリを行うことができます.スキーマレスのJSON文書のコレクションを検索するように設計された宣言言語です.その主な設計目標は、単一の応答にいくつかのドキュメントの結合、そして、クライアントアプリケーションに合うように応答を形づくる表現的なフィルタリングです.試してみるには、次のようにプロジェクトフォルダにある場合は、この右側を実行することもできます.
    sanity documents query "[*_type == 'post']"
フロントエンドからコンテンツを問い合わせたい場合は、クライアントライブラリのいずれかを使用できます.図書館があるPHP , .NET , and JavaScript , 後者では以下のようにドキュメントを取得します:
    client.fetch("[*_type == 'post']").then(documents => console.log(documents))
これをブラウザに入力し、そこにデータを見たり、httpsリクエストを送ることができます.https://.api.sanity.io/v1/data/query=[*_type == "post"]Groqを使用すると、何かを行うこともできますprojections , あなたのデータがどのようにフォーマットされるかについての多くの支配があるところ.カーリーブラケットを挿入することで使用されます{} フィルタの後、あなたが彼らの中で望むフィールドを選ぶことができます.例えば、私たちがtitle 我々のポストのために、我々はこれをすることができました:
    sanity documents query "[*_type == 'post']{title}"
Groqは強力なクエリ言語ですexploring the documentation .

コンテンツの移行は簡単です


ホストされているコンテンツバックエンドの全体のポイントは、それはあなたのために簡単にする必要がありますto migrate, duplicate, and move your data . 特にあなたが何かを生産に使用する場合は、そのコンテンツをテストして実験することができる環境に複製する簡単な方法が必要です.健全さでは、きちんとした内容ですべてのコンテンツや資産をエクスポートすることは簡単ですndjson-file (そして、すべての資産を持つフォルダ)
    sanity dataset export 
逆も同様です.
    sanity dataset import datasetExport.ndjson
あなたも、エクスポートAPIを使用して、すべてのコンテンツのインスタントNndJSONダンプを得ることができます🚀 高速すぎ! ):https://PROJECT_ID.api.sanity.io/v1/data/export/DATASET_NAME

次の手順


今、あなたは健全さを行うことができますものの基本的な理解を持っている必要があります.多くの発見するが、良いことは、あなたのニーズと野心の上昇として一歩一歩することができますです.あなたはどのようにすることができます詳細についてはcompletely tailor your studio for your clients need , or take advantage of the rich image metadata , またはいくつかの高度に飛び込むpatching and mutation techniques . また、フロントエンドの例をチェックアウトすることができますReact Native , Vue , Next.js , and Nuxt .
どのような場合は、健全性を使用して選択すると、そこにもありますcommunity いくつかのロードブロックがあなたの方法で来るならば、それはそれについて聞いて、援助を申し出ます.