RESTful API エンドポイント (search)

searchエンドポイントについて

プラグイン「SearchEstraier」が有効でそのスコープ、そのモデルに対して検索インデックスが作成されている時に全文検索を行います。

エンドポイント(entryモデルの例)

/api/v1/スコープID/モデル名/search
/api/v1/1/entry/search/

メソッド

GET または POST

パラメタ

  • query : キーワード(スペース区切りで複数指定可能)
  • limit : 取得する最大件数(省略時環境変数 api_list_limit : 初期値25)
  • offset : スキップする件数
  • sort_by : ソートするメタ情報のキー
  • sort_order : ascend(昇順) もしくは descend(降順)
  • and_or : AND もしくは OR
  • cols : 返却するキー

query は必須です。このエンドポイントは、インデックスされていて、URLマップが設定されて公開されているオブジェクトのみが検索対象となります。  
sort_by が省略されているとき、キーワードに対するマッチ順に表示されます。

?limit=件数&offset=スキップする件数&sort_by=メタ情報のキー&sort_order=昇順もしくは降順&cols=返却するキー1,返却するキー2&query=キーワード&and_or=AND

レスポンス(成功時)

totalResultには、limitに関わらず指定した条件にマッチするオブジェクトのトータル件数がセットされます。

{
    "totalResult": 10,
    "items": [
        {
            "id": 1,
            "title": "Welcome!",
            "text": "<h2>Our Story<\/h2>\n<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<\/p>\n<blockquote>\n<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<\/p>\n<\/blockquote>",
            "text_format": "richtext",
            "assets": [
                {
                    "id": 26,
                    "label": "powercmsx",
                    "file": {
                        "Url": "https:\/\/localhost\/01\/assets\/powercmsx.png",
                        "Label": null,
                        "Metadata": {
                            "file_size": 76618,
                            "image_width": 600,
                            "image_height": 600,
                            "class": "image",
                            "extension": "png",
                            "mime_type": "image\/png",
                            "uploaded": "2021-09-02 15:11:58",
                            "user_id": 1
                        }
                    },
                    "extra_path": "assets\/",
                    "file_name": "powercmsx.png",
                    "file_ext": "png",
                    "mime_type": "image\/png",
                    "tags": [],
                    "size": 76618,
                    "image_width": 600,
                    "image_height": 600,
                    "class": "image",
                    "status": 4,
                    "created_by": 1,
                    "modified_by": 1,
                    "created_on": "2021-09-02 15:11:58",
                    "modified_on": "2021-09-02 15:11:58",
                    "workspace_id": 1,
                    "published_on": "2021-09-02 15:11:58",
                    "rev_type": 0,
                    "user_id": 1,
                    "uuid": "a415ce51-5e70-4b1b-9413-8342f3e864ab",
                    "Permalink": "http:\/\/mt4local.alfasado.net\/01\/assets\/powercmsx.png",
                    "Thumbnail": "https:\/\/localhost\/powercmsx\/assets_c\/thumb-asset-128xauto-square-26-file.png"
                }
            ],
            "text_more": "",
            "excerpt": "Our StoryLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
            "keywords": "",
            "categories": [
                {
                    "id": 1,
                    "label": "Press Release",
                    "order": 1,
                    "basename": "press_release",
                    "workspace_id": 1,
                    "created_on": "2021-08-27 15:13:45",
                    "modified_on": "2021-08-27 15:13:45",
                    "created_by": 1,
                    "modified_by": 1,
                    "Permalink": "http:\/\/mt4local.alfasado.net\/01\/press_release\/index.html",
                    "Path": "press_release"
                }
            ],
            "tags": [
                {
                    "id": 6,
                    "name": "PowerCMS X",
                    "normalize": "powercmsx",
                    "class": "entry",
                    "order": 2,
                    "workspace_id": 1,
                    "created_on": "2021-09-02 15:09:57",
                    "modified_on": "2021-09-02 15:09:57",
                    "created_by": 1,
                    "modified_by": 1
                }
            ],
            "extra_path": "",
            "basename": "powercmsx",
            "status": 4,
            "has_deadline": 0,
            "published_on": "2021-09-01 12:47:46",
            "user_id": {
                "id": 1,
                "nickname": "Junnama Noda",
                "photo": "",
                "text_format": "",
                "space_order": "",
                "fix_spacebar": 1,
                "language": "ja",
                "control_border": "",
                "status": 2
            },
            "previous_owner": 0,
            "allow_comment": 0,
            "created_on": "2021-08-27 15:13:45",
            "modified_on": "2021-09-02 15:12:06",
            "created_by": 1,
            "modified_by": 1,
            "workspace_id": 1,
            "uuid": "d574478a-6762-434f-b002-723c835444ee",
            "Permalink": "http:\/\/mt4local.alfasado.net\/01\/press_release\/powercmsx.html"
        }
    ]
}

レスポンス・エラー

共通レスポンスエラーについてはこちら を参照ください。

許可されないリクエストメソッド

{
    "status": 400,
    "message": "Method リクエストメソッド not allowed."
}