Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@stm32p103

[Confluence] CQLでContent Propertyをまとめて取得する

ConfluenceはContent(ページ、コメントなどいろいろ)に、メタデータを保存することができる「Content Property」という機能がある。埋め込んだメタデータはREST APIから操作できるだけでなく、CQLで条件に該当する全部のメタデータを取得することも可能となっている。

この機能を使えば、各ページに埋め込んだ情報の統計データをすぐに収集できるので、WikiをただのWebサイトとしてではなく、情報収集にも活用することができるようになる。

もし、集計の実現を?expand=body.storageで内部保存形式を取得、解析してから行おうなんて考えているなら、ページごとにJavascriptを仕込んで、Content Propertyに保存することを考えた方が処理負荷的に賢明だと思う。

Content Propertyの取得方法

Content Propertyでキーがkeyの物を取得する方法は以下の3通りある。一括で複数取得できるのは、Content(Search)だけの模様。

API 対象 リクエストURI
Property 単一 /rest/api/content/{id}/property/{key}
Content(GetById) 単一 /rest/api/content/{id}?expand=metadata.properties.{key}
Content(Search) 複数 /rest/api/content/search?cql={cql}&expand=metadata.properties.{key}

備考: /rest/api/content/**{id}**?expand=metadata.propertiesを実行すると、metadata.properties._expandableに、利用可能なkeyが列挙される。

CQL

cqlに指定できる文字列は、「Advanced Searching using CQL」で書かれている条件式となる。「Content properties in the REST API」によると、CQLでContent Propertyの値に対してcontent.property[<KEY>].<PATH> <OPERATOR> valueという式で条件を設定することができるようだった。いくつかサンプルを作ってみて試してみようと思う。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?