1. stm32p103

    Posted

    stm32p103
Changes in title
+[Confluence] CQLでContent Propertyをまとめて取得する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,19 @@
+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](https://docs.atlassian.com/ConfluenceServer/rest/6.15.7/#api/content/{id}/property-findByKey) | 単一 | /rest/api/content/{id}/property/**{key}**|
+|[Content(GetById)](https://docs.atlassian.com/ConfluenceServer/rest/6.15.7/#api/content-getContentById)| 単一 | /rest/api/content/**{id}**?expand=metadata.properties.**{key}**|
+|[Content(Search)](https://docs.atlassian.com/ConfluenceServer/rest/6.15.7/#api/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](https://developer.atlassian.com/server/confluence/advanced-searching-using-cql/)」で書かれている条件式となる。「[Content properties in the REST API](https://developer.atlassian.com/server/confluence/content-properties-in-the-rest-api/)」によると、CQLでContent Propertyの値に対して`content.property[<KEY>].<PATH> <OPERATOR> value`という式で条件を設定することができるようだった。いくつかサンプルを作ってみて試してみようと思う。