現代の開発者のためのGo-To Headless CMSであるなぜDirectusはなぜですか

コンテンツ主導のアプリケーションは、データのアーキテクチャを最適化し、柔軟性、パフォーマンス、およびフルコントロールを兼ね備えたバックエンドを必要とします。Directusは、強力なリアルタイムのSQLデータベースをクリーンで拡張可能なAPIレイヤーにラップするので、スタンドアウトされたヘッドレスCMSとなっています。 定義済みのスキーマに強制するプラットフォームとは異なり、DirectusはあらゆるSQLデータベースと連携し、データを完全に所有します。 この柔軟性は、直感的な管理ダッシュボードと堅牢なSDKと組み合わせ、マルチチャネルのダイレクトは、複数のプロジェクトをクラウドに提供し、クラウドを完全に管理できる限りなく活用できます。

ダイレクトスのデータ‐第一次哲学

ほとんどの従来のCMSプラットフォームは、抽象的なレイヤーの背後にあるデータベースを隠し、コンテンツを後続的に処理します。Directusはこのモデルを反転します。それは、関係データベースを単一のソースとして扱います。標準のSQLテーブル、列、関係を使用してスキーマを設計し、Directusは、そのスキーマからRESTfulまたはGraphQL APIを自動的に生成します。このデータ優先アプローチは、アプリケーションが必要とするように、あなたのコンテンツを正確に表すためにCMSと戦う必要はありません。それはまた、あなたのデータを残すことができるということです。それは、任意のSQLをエクスポートしたり、任意のデータを移動したりすることができます。

SQL で直接動作する

Directus は、MySQL、PostgreSQL、SQLite、その他の SQL データベースのトップで動作します。 ネイティブ SQL のフルパワーを有効活用できます。 インデックス、結合、ビュー、トリガー、および保存された手順は、パフォーマンスを劣化したり、予期しない動作を低下させることができる中間の翻訳レイヤーなしで行われます。 直接的に未加工クエリを実行すると、データベースに直接話します。 これは、既に定義済みのデータモデルを持っているチームにとって特に価値があります。 スキーマが変更されていない問題を避けるために、 CMSM が他のプラットフォームでは問題が起きていないか、 CMSM が問題に陥らないためです。

ブロアットのない関係

直接的な関係は、データベース内の実際の外部キーによって処理されます。1対対面または多対面的なリンクを作成することは、適切な列を定義する際の直観的です。Directusは、自動的に関係性を発見します。このシステムは、APIを介してネストされた関連クエリをサポートし、単一のリクエストで深く関連したコンテンツを取得することができます。この関連性は、あなたが複雑な構造をモデル化できることを意味します。それは、カテゴリ、バリアント、および関連メディアなどの製品カタログのようなものです。これらは、フィールドに制限することなく、あらゆる作業を容易にするために、あらゆる作業を容易にすることができます。

API の生成: 自動、速く、標準-基づく

データベーススキーマが配置されると、Directus は RESTful API (完全な CRUD 操作で) と補完的な GraphQL API の両方を生成します。どちらも業界標準に準拠し、クライアントから簡単に消費できます。Web、モバイル、またはサーバー側。自動生成された API は、データベースの制約と権限を尊重し、フィールド検証、データ型強制、および関係の整合性を箱から提供します。追加の構成ファイルは必要ありません。データベース接続時にすぐに API がライブです。

信頼できるRESTfulエンドポイント

データベース内のすべてのテーブルはRESTエンドポイントになります。クエリパラメータを使用して、フィルタリング、ソート、パジネーション、集計結果を得ることができます。Directusは、深いリレーショナルフィルタリングをサポートしています。つまり、著者の名前が「ジャン」であり、カテゴリのスラグは単一のGETコールで「技術」です。予測可能なキャッシュフレンドリーなインターフェイスを好む開発者にとって、REST APIは成熟したソリューションを提供します。APIは、バッチ操作、ネスト作成、およびミドルウェアのクエリを中へ切り替えるのもサポートしています。

複雑なクオーリーのためのグラフQL

最小限のリクエストで複数のリソースを取得する必要がある場合、 GraphQLエンドポイントは、レスポンスの形状を正確に定義できます。 Directus は、すべての関係を含むデータベース構造をミラーリングする GraphQL スキーマを自動的に生成します。 フロントエンドチームは、必要なフィールドを正確にクエリし、オーバーフェッチとアンダーフェッチを排除することができます。 Directus 管理パネルに埋め込まれた GraphQL プレイグラウンドは、実験を高速かつ安全にします。 GraphQL の詳細については、 を参照してください。 [グラフQL] の実行を[グラフ] および [グラフ] の実行] を有効にするには、 必要な 必要な グラフを[グラフ] または [グラフ] で実行] します。

管理者ダッシュボード:エディタと開発者のために設計

Directusは、完全にカスタマイズ可能なクリーンでホワイトラベル管理インターフェイスを提供します。エディタは、リッチテキスト、イメージアップロード、ファイル管理、カスタムレイアウトをサポートする視覚データエントリーシステムを参照してください。開発者は、高度なデータベースフィールド、表示目的のために列の名前を変更し、フロントエンドのアプリケーションコードに触れることなく、検証ルールを追加することができます。ダッシュボードは、単一のPageアプリケーション(SPA)として構築され、APIから個別にホストされ、エディタ体験を完全に制御することができます。また、ダークモード、キーボードやスマートフォンなどの操作や操作にも対応しています。

ロールベースのアクセス制御

セキュリティは、顆粒の権限システムによって処理されます。テーブル、フィールド、さらにはアイテムレベルでロールと権限を割り当てることもできます。例えば、エディタは記事を作成して更新するかもしれませんが、削除しないと、コントリビューターは独自の草案しか見られないかもしれません。すべての権限は、APIレイヤーで強制され、クライアントが意図したアクセスルールを迂回することはできません。これにより、コンテンツの感度が懸念されるアプリケーションに適したDirectusになります。例えば、内部の文書ポータルやクライアントが公開されたシステムに、特定の権限を付与するかどうかを調べることができます。

カスタムレイアウトとインターフェイス拡張

デフォルトテーブルとフォームビューを超えて、Directusはカンバンボード、カレンダー、マップなどのカスタムレイアウトをサポートしています。これらは拡張機能として構築され、市場からインストールしたり、社内で開発したりすることができます。例えば、プロジェクト管理アプリはカンバンレイアウトを使用して、ステータスでタスクを表示することができますが、イベントサイトはカレンダービューを使用してスケジュールを視覚化することができます。カスタムインターフェイスは、デフォルトの入力フィールド(ドロップダウンやテキストのような)を、ピッカーやGoogleマップのオプションなどの特殊なコンポーネントに置き換えることができます。

拡張性と直接的なエコシステム

CMSは、すべてのユースケースを予測できるわけではありません。そのため、Directusは、拡張性を念頭に置いて構築されました。カスタムエンドポイント、データベースイベントの火災、カスタムダッシュボードパネルのカスタムホックを追加できます。システムには、ファイルストレージアダプターもサポートし、ローカルディスク、Amazon S3、Google Cloud Storage、または標準ファイルシステムインターフェイスをサポートするその他のプロバイダにアップロードされたアセットを格納することができます。サポートされているストレージアダプタのリストについては、 [Directus]を参照してください。外部システムが外部から送信できる[F]と[F]を通知]を参照してください。

オートメーションのためのホック

Directus hooks では、CRUD アクションの前後にカスタムロジックを実行できます。例えば、タイトルから slug を生成し、新しい記事が公開されたときに Slack チャンネルに通知を送信したり、] のような外部検索インデックスにコンテンツを同期したり、Elasticsearch のような外部検索インデックスにコンテンツを同期したりできます。Hooks は JavaScript で書かれており、必要に応じてシンプルで複雑なものとして、直接ワークフローを自動化する機能として、直接環境を外部から 外部のメールを 送信することもできます。また、変数に 変数を 変更したり、 変数に 変数を 変更したり、 したり、 変数に 変数に 変更したり、 したり、 変数を 変数に 変数を したり、 変数に したり、 変数に したり、 したり、 したり、 変数を 変数に したり、 変数に 変数を 変数に 変数を 変数に 変数を 変数に 変数を 変数に 変数に 変数に 変数を 変更したり、 変数に したり、 変数に 変数を

カスタムエンドポイントとミドルウェア

アプリケーションが標準のCRUD操作を超えて行く APIエンドポイントが必要な場合は、Directusの拡張APIを使用してカスタムエンドポイントを作成できます。 これらのエンドポイントはJavaScriptで書かれており、データベース、リクエストコンテキスト、およびパーミッションシステムにアクセスすることができます。 これにより、レポートの作成、支払い処理、または複雑な集計を実行したり、独立したマイクロサービスを構築することなくDirectus APIを直接実行したり、カスタムビジネスロジックを調べることができます。 ミドルウェアエクステンションを使用すると、個別のマイクロサービスを構築することなく、直接的な操作や、カスタムビジネスロジックを検証したり、カスタム認証を制限したりすることができます。 認証、または、IPガイドを制限したりできます。

パフォーマンスとスケーラビリティ

Directusは、リレーショナルデータベースの周りの細いラッパーであるため、パフォーマンスプロファイルは、あなたの根本的なSQLセットアップのそれを反映しています。 キャッシュは、VarnishやNginxなどのリバースプロキシを使用してAPIレベルで実装することができ、 GraphQLエンドポイントは、最適なキャッシュのための永続的なクエリをサポートしています。 高トラフィックアプリケーションの場合、ロードバランサーの背後にある複数のインスタンスを実行することで、Directusを水平にスケールすることができます。 その結果、データベース層は、独自のコンフィングを行うことができる。 ダッシュボードは、APIを生成し、必要なリクエストを処理できる限り、さまざまなリクエストを処理します。

データベースレベルの最適化

Directus はネイティブ SQL を公開しているため、データベースを独自に最適化できます。インデックスの追加、大きなテーブルの分割、複雑な集計のための材料化されたビューの使用などです。 API レイヤーは重要なオーバーヘッドを導入しません。各リクエストは 1 つ以上の SQL クエリに、追加の抽象化を行なわないように翻訳されます。read-heavy のワークロードでは、読み取りのレプリカを実装し、Directus を設定して、読み書き用の別の接続を使用することができます。書き込み-heavy シナリオでは、追加のサブフローリングを解除したり、ホウロルの応答を解除したりできます。

他のヘッドレスCMSオプションでDirectusを選択するとき

完全なデータ所有権と柔軟性が必要なシナリオで直接的な意見はあります。プロジェクトが複雑なリレーショナルモデルを必要とする場合、レガシースキーへの厳密な遵守、またはファイアウォールの背後にあるオンプレミスのデプロイメントが必要であれば、Directusは強力な候補です。また、ベンダーロックを避けるチームにとっても素晴らしい選択肢です。つまり、データが標準的なSQLデータベースに住んでいるので、直接的な移行なしで直接から切り替えることができます。比較のために、コンテンツのセットアップのようなプラットフォームは、無料のAPIを自由に設定できます。

実用的な例:Directusで音楽教育ブログの構築

アクションでDirectusを表示するには、記事、作者プロフィール、ビデオ埋め込み、およびダウンロード可能なシート音楽を管理する必要があるトロンボーンテクニックブログのようなサイトを検討してください。 Directusでは、SQLテーブルを定義することで開始します。、]、]、]]。テーブルを作成した後、Directusは即座にAPIと管理者インターフェイスを生成します。 編集者は、テキストを埋め込むか、または、VALTを変換するテキストを埋め込むか、または、または、VALTを変換することができます。

カスタムエンドポイントで音楽ブログを拡張

タグに基づいて「提案された記事」機能を提供するようにしたいとします。カスタムエンドポイントを使用すると、タグを現在の記事と共有する記事のデータベースをクエリし、キュレーションリストを返すことができます。このロジックは、単一のエンドポイントでカプセル化され、フロントエンドをシンプルに保ちます。同様に、検索用語を受け付け、複数のテーブルでフルテキスト検索結果を返すエンドポイントを作成できます。純粋なAPIコンシューマで実装する面倒なもの。

ダイレクトスで始める

直接操作は、自己ホストまたは直接クラウドを介して2つの方法で直接操作を開始できます。セルフホストは簡単です。リポジトリをクローンし、データベースを設定し、Dockerイメージを実行します。公式のドキュメントは、詳細なウォークスルーを提供します。管理されたソリューションを好むチームのために、Directus Cloudはインフラストラクチャ、スケーリング、およびバックアップを処理します。どちらの場合も、コア機能は同じで、データへのアクセスが完全に保持されます。 [Directus]ドキュメント[FLT]を参照してください。[FLT:[FLT]:[FLT]:[FLT]のドキュメント]:[FLT]:[FLT]:[FLT]:[F]:[F]]]]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]:[F]

インストールすると、まずデータベースを接続して、自動生成された API を探索することです。設定ファイルを作成するか、UI でコンテンツタイプを定義する必要はありません。SQL のデータベースで直接ポイントを指すだけで、すぐに API から読みやすく、書き込み可能になります。このゼロ構成アプローチは、他のヘッドレス CMS 製品とは別にDirectus を設定し、その開発者の間で、効率と制御を重視するようなお気に入りになります。シンプルなテーブルから始めると、関係を徐々に追加し、プロジェクトを拡張して、プロジェクトを最後に定義することができます。

コンテンツ

Directusは、柔軟性、パフォーマンス、および開発者のフレンドリーの稀な組み合わせを提供しています。 SQLデータベースを基盤として扱うことで、他のCMSソリューションを遅くする抽象化を排除します。その自動生成されたAPI、粒状権限、および拡張可能なホックシステムは、小規模なマーケティングサイトからエンタープライズグレードのコンテンツプラットフォームに何かをビルドするためのツールを提供します。完全なデータ所有権、関連モデリングパワー、およびスタックのすべての層をカスタマイズする能力を評価する人にとっては、特定のCMSをクラウドに立たせることは、無限の選択肢です。

堅牢なCMS制約を超えて移動し、データモデルに適応するシステムが必要な場合は、他の方法ではなく、Directusは深刻な一見の価値があります。 公式のドキュメント[]とテストデータベースで、スキーマからライブ、プロダクションリーダーAPIに行くことができる方法を体験してください。 オープンソースコミュニティはアクティブで、プラグインエコシステムが成長しており、プラットフォームのロードには開発者がパフォーマンスとパフォーマンスを向上させるための改善が続きます。