こんばんは。
今日は「MicroCMS:microcms-js-sdkを使ってデータを並び替える方法方法」について説明します。
microCMS では、取得するデータをクエリパラメータや SDK のオプションで並び替える(ソート)ことが可能です。以下では代表的な方法や書き方を紹介します。
REST API でのソート
書式
GET https://[YOUR_SERVICE].microcms.io/api/v1/[ENDPOINT]?orders=[フィールド名]
- 昇順:
orders=title
のようにフィールド名をそのまま指定 - 降順:
orders=-title
のように先頭に-
を付与
使用例
-
publishedAt
昇順:
GET https://example.microcms.io/api/v1/blog?orders=publishedAt
-
publishedAt
降順:
GET https://example.microcms.io/api/v1/blog?orders=-publishedAt
- 複数フィールドで並び替え(最初に指定したフィールドを優先):
GET https://example.microcms.io/api/v1/blog?orders=title,-publishedAt
microCMS JS SDK でのソート
もしJS SDK(microcms-js-sdk)
を利用している場合は、以下のようにqueries.orders
オプションを指定できます。
import { createClient } from 'microcms-js-sdk';
const client = createClient({
serviceDomain: 'YOUR_SERVICE_DOMAIN',
apiKey: 'YOUR_API_KEY',
});
(async () => {
// 例: publishedAt を降順で取得
const data = await client.get({
endpoint: 'blog',
queries: {
orders: '-publishedAt',
},
});
console.log(data);
})();
その他の注意点
- 使用できるフィールド名:
フィールド設定(スキーマ)で作成したフィールドやデフォルトのid, createdAt, updatedAt, publishedAt
などを指定可能です。 - 複数ソート:
orders=フィールドA,-フィールドB
のようにカンマ区切りで複数指定できます。 - 絞り込みやその他オプションとの併用:
ソートに加えて、limit, offset, filters
などのクエリパラメータを同時に利用できます。
以上が microCMS でデータをソートする基本的な方法です。
必要に応じて、昇順・降順の指定や複数フィールドの組み合わせなどを使って、目的の並び順を実現できると思います。
今日は以上です。
ありがとうございました。
よろしくお願いいたします。