microCMS

コンテンツ取得時にAND条件やOR条件を指定してフィルタリングできるようになりました

更新情報
2019/12/23 松田 承一

いつもmicroCMSをご利用いただきありがとうございます。
今日はコンテンツ取得の際に使用するAPIの機能追加のお知らせです。

ANDに加えてORで条件指定できるようになりました

microCMSではコンテンツ取得時にfiltersパラメータを指定することで一部のコンテンツを取得することができます。
このとき、複数の条件を指定したい場合はこれまではAND条件のみが使用できました。
例えば、タイトルに"特集"が含まれている「かつ」公開日が昨日、といった条件です。

今回の機能追加によりOR条件を指定することが可能になりました。
つまりタイトルに"特集"が含まれている「または」公開日が昨日といった条件が指定できるようになったということですね!

ANDやORの指定方法

それでは使い方を確認してみましょう。
これから説明する内容はAPIリファレンスにも記載されていますのでそちらも合わせてご確認ください。

画像)APIリファレンスのfilters項目

まず、filtersには指定できる条件がいくつかあります。
[equals][not_equals][less_than][greater_than][contains][exists][not_exists]などです。
これについての詳細は以前の更新情報をご確認ください。

今回、ANDだけでなくORが追加になったためこれらの条件を複数指定する際のコントロールがより柔軟になりました。
それではパラメータとして指定する際の例をいくつか見てみましょう。
なお、実際のプロジェクトでは正しいドメインやX-API-KEYの指定、フィールド名を合わせるなど適宜調整してください。

タイトルに"特集"を含む記事を取得

/api/v1/articles?filters=title[contains]特集

まずは基本的な例です。記事(articles)からtitleに特集という文字を含む記事を抽出しています。これについては今回の更新には関係なく以前から実現できた指定方法です。

タイトルに"特集"を含む「もしくは」今月公開された記事を取得

/api/v1/articles?filters=title[contains]特集[or]publishedAt[begins_with]2019-12

さっそく[or]を使ってみました。
ユーザーに特に見て欲しい記事が特集記事や最新の記事の場合、といった想定です。
2つの条件式の間に[or]を置くことでOR条件を指定しています。

/api/v1/articles?filters=title[contains]特集[and]publishedAt[begins_with]2019-12

[or]と同じように条件式を[and]で繋ぐこともできます。この場合はAND条件ですね。
※なお今回のアップデート以前は条件式間をカンマ( , )でつなぐことのみができました。今回のアップデート以降、カンマは[and]を指定したのと同等とさせていただきます。

より複雑なフィルタリング

[and][or]は組み合わせて使用できます。
例えばタイトルに"特集"と含まれている「かつ」公開日が今月中またはタイトルに"キャンペーン"と含まれている、といった条件は以下の通りです。

/api/v1/articles?filters=title[contains]特集[and]publishedAt[begins_with]2019-12[or]title[contains]キャンペーン


式の評価の優先順位は重要なポイントです。
microCMSでは基本的には左から右に順に評価していきますが、[and][or]が混在している場合は[and]が優先的に評価されるので注意してください。
なお、括弧())をfiltersの値として指定することもでき、これによって[or]を優先して評価するなど柔軟なコントロールも可能です。

/api/v1/articles?filters=title[contains]特集[and](publishedAt[begins_with]2019-12[or]title[contains]キャンペーン)


まとめ

今回の更新により今まで以上に柔軟にコンテンツを取得・活用できるようになりました!
お使いのサイトやアプリでぜひご活用ください。

-----

microCMSは日々改善を進めています。
ご意見・ご要望は管理画面右下のチャット、公式Twitterメールからお気軽にご連絡ください!
引き続きmicroCMSをよろしくお願いいたします!

ABOUT ME

松田 承一
ウォンタ株式会社の代表 / 家族=👨‍👩‍👧 / ヤフー→大学教員など→現職 / 管理画面付きAPIがすぐに作れるmicroCMSというサービス作ってます。