開発者向け
新しいKenticoクラウドコンテンツ管理APIの使用
By Bryan Soltis
ヘッドレスCMSアプローチがますます一般的になるにつれて、実装はますます複雑になります。プロジェクトが新しいとき、物事はとても素晴らしいです!クラウドに移行している既存のアプリケーションを扱う場合、状況は少し難しくなります。幸いなことに、Kentico Cloudには、役立つ新しいコンテンツ管理APIがあります。
過去2年間で、KenticoCloudに大量の機能を追加しました。 APIからSDKに至るまで、開発リソースの蓄積はほぼ毎日増えています。最新の追加の1つは、私たちが最も要求しているものの1つです。コンテンツ管理APIです。
この新機能により、Kentico CloudヘッドレスCMSにデータを直接書き込むことができ、移行プロジェクトがはるかに簡単になります。この記事では、この新機能を活用してKenticoEMSコンテンツをKenticoCloudに移植する方法を紹介します。
コンテンツ管理APIの概要
詳細に入る前に、最新のAPI追加の概要を簡単に説明したいと思います。コンテンツ管理APIは、KenticoCloudに直接データを書き込むように設計されています。これは、標準のREST API呼び出しを使用してコンテンツの移行をスクリプト化できることを意味し、アプリケーションをクラウドに移植するタスクを簡素化します。
私たちはまだその機能を構築していますが、今日のプロジェクトで利用できる機能はたくさんあります。
- KenticoCloudからデータを読み取る
- コンテンツアイテムを作成する
- コンテンツアイテムを更新する
- アセットをアップロードする
あなたはおそらくKenticoEMS開発者なので、既存のコンテンツをKenticoCloudに取り込むための簡単なモジュールを構築する方法を紹介したいと思います。
My KenticoCloudプロジェクトを準備する
コンテンツをインポートする最初のステップは、KenticoCloudでコンテンツモデルを作成することです。データはすでにKenticoEMSに(私の場合はカスタムテーブルとして)存在するため、Kenticoクラウドコンテンツモデルの作成は、いくつかのフィールドを追加するだけで済みました。わかりやすくするために、EMSサイトと同じ名前をフィールドに付けました。
次に、コード内で使用する新しいコンテンツ管理APIキーを生成しました。これらのキーは永続的ではなく、30日後に期限切れになることに注意することが重要です。 Content Management APIは、データのリアルタイム同期を目的としたものではなく、アドホックな一括挿入アクションを目的としています。インポート機能を作成するときは、有効期限が切れた場合に新しいキーを生成する必要がある可能性があるため、これを必ず考慮してください。
カスタムモジュールを作成する
Kentico Cloudプロジェクトの準備ができたので、新しいモジュールを追加する準備ができました。 Kentico EMSで、新しいCMSPageページを作成し、それにいくつかの基本的なコントロールを追加しました。 KenticoクラウドプロジェクトIDとAPIキーのフィールドを追加しました。管理が簡単な場合は、これらをモジュール設定にすることもできます。
また、エクスポート用のコンテンツを作成してシリアル化するのに役立ついくつかの簡単なクラスを追加しました。 Elementクラスを使用してカスタムテーブルレコードを保持することに注意してください。これは、REST APIに投稿されたときにデータが適切にシリアル化されるように、必要な特定の構造を作成するためです。
コンテンツ管理APIコード
次に、カスタム機能を追加しました。まず、カスタムテーブルAPIを使用してデータを抽出しました。コンテンツの一部である場合は、ページやその他のデータをエクスポートすることもできます。
カスタムテーブルのレコードごとに、詳細を保持する新しいElementオブジェクトを作成しました。それらをList
KenticoCloudへの投稿
次に、List
次に、すべてのコンテンツアイテムデータを保持する新しいExoplanetオブジェクトを作成しました。
ElementデータをExoplanetのelementsプロパティに割り当てることに注意してください。これは、 Exoplanetオブジェクトがシリアル化されるときに、要素のプロパティデータが、コンテンツ管理APIが期待するとおりに正確に構造化されるためです。
クライアントとデータが作成されたので、コンテンツをKenticoCloudに投稿する準備ができました。これには、挿入の2段階のプロセスが含まれていました。
まず、新しいオブジェクトを作成するためにAPIに投稿しました。 PostAsJsonAsync関数を使用して、シリアル化されたデータのPOSTを実行しました。このアクションにより、KenticoCloud内に新しいコンテンツアイテムが作成されます。
結果から新しいコンテンツアイテムIDを取得しました。
オブジェクトを作成したら、 PUTリクエストを実行して、新しいオブジェクトを要素やその他の詳細で更新しました。
次に、レポート用にエクスポートされた惑星のリストにアイテムを追加しました。
テスト
Kentico Cloudプロジェクトを構成してコードを作成した後、新しいモジュールをテストする準備が整いました。まず、KenticoEMSのカスタムテーブルにエクスポートするデータをいくつか作成しました。
次に、アプリケーションリストから新しいモジュールを開きました。
[送信]ボタンをクリックしました。レコードが表示されていることを確認しました。
次に、Kentico Cloudプロジェクトを開き、アイテムが作成されたことを確認しました。
いずれかのアイテムを選択し、詳細が正しいことを確認しました。
今後の計画
この例では、新しいAPIを使用して基本的なコンテンツのアップロードを行う方法を示しました。まだまだあります! APIは、アセット、複数選択コンテンツタイプ、およびこのブログでは取り上げなかったその他の高度な機能をサポートします。将来的には、メディアライブラリファイルをアセットとしてKentico Cloudに直接アップロードするなど、いくつかの機能でこのコードを更新する予定です。
Kenticoクラウドチームは引き続きコンテンツ管理APIに取り組んでおり、ニーズに合わせてフィードバックを受け付けています。
前進する
新しいKenticoクラウドコンテンツ管理APIは、既存のコンテンツの移行を検討している開発者に多くの扉を開きます。この新機能を活用することで、既存のコンテンツをクラウドに移動し、KenticoCloudが提供するすべての優れた機能を活用できます。アプリケーションを構築し、アプリケーションをKentico Cloudに移動するときは、この新しいリソースを必ず確認してください。がんばろう!