Page Fields REST API
This document provides REST API details for Page fields plugin.
Get Page Fields
GET http://localhost:8090/rest/pagefields/1.0/utility/list/fields
Query parameters:
pageId (Number) - Confluence Page ID
xhtml (Boolean) - True / False to convert value to XHTML (Optional)
search (String) - Filter fields by name (Optional)
Response: [Status: 200]
$ curl -u"user:pass" -XGET \
http://localhost:8090/rest/pagefields/1.0/utility/list/fields/?pageId=98372
{"pageId":98372,"fieldId":8,"fieldName":"customer.manager.name","fieldValue":\
"Swetha Venkat Prasad","lastUpdated":1525004706342}
$
GET http://localhost:8090/rest/pagefields/1.0/utility/list/field
Query parameters:
pageId (Number) - Confluence Page ID
fieldId (Number) - Confluence Page Field ID
Response: [Status: 200]
Get Page Fields History
GET http://localhost:8090/rest/pagefields/1.0/utility/list/history
Query parameters:
fieldId (Number) - Confluence Page Field ID
Add Page Field
POST http://localhost:8090/rest/pagefields/1.0/utility/add/field
Required Schema Fields:
pageId (Number) - Confluence Page ID
fieldName (String)
fieldValue (String)
history (Boolean) - Optional
Response: [Status: 200]
$ curl -u"user:pass" -XPOST -H "Content-Type: application/json" --data '{"pageId":342345, \
"fieldName":"confidential.agreement.receive.date", "fieldValue":"2017-05-02"}' \
http://localhost:8090/rest/pagefields/1.0/utility/add/field
{"field":10,"message":"[Info] Added New Page Field"}
$
Update Page Field
POST http://localhost:8090/rest/pagefields/1.0/utility/update/field
Required Schema Fields:
pageId (Number) - Confluence Page ID
fieldName (String)
fieldValue (String)
history (Boolean) - Optional
Response: [Status: 200]
$ curl -u"user:pass" -XPOST -H "Content-Type: application/json" --data '{"pageId":342345, \
"fieldName":"confidential.agreement.receive.date", "fieldValue":"2017-05-03"}' \
http://localhost:8090/rest/pagefields/1.0/utility/update/field
{"field":10,"message":"[Info] Updated Page Field"}
$Note. Update creates field if not exists.
Force Page Space Field
POST http://localhost:8090/rest/pagefields/1.0/utility/update/field/force
Required Schema Fields:
pageId (Number) - Confluence Page ID
fieldId (Number) - Confluence Page Field ID
fieldName (String)
fieldValue (String)
history (Boolean) - Optional
Response: [Status: 200]
Note. This API helps to rename field name.
$ curl -u"user:pass" -XPOST -H "Content-Type: application/json" --data '{"spaceKey":"DT", \
"fieldId":"5", "fieldName":"project.security.key", "fieldValue":"xxxxxxx"}' \
http://localhost:8090/rest/pagefields/1.0/utility/update/field/force
{"field":5,"message":"[Info] Updated Space Field"}
$
Delete Page Field
DELETE http://localhost:8090/rest/pagefields/1.0/utility/remove/fields/page/id/{pageId}/field/id/{fieldId}
DELETE http://localhost:8090/rest/pagefields/1.0/utility/remove/fields/bulk/page/id/{pageId}
$ curl -u"user:pass" -XDELETE \
http://localhost:8090/rest/pagefields/1.0/utility/remove/fields/page/id/98372/field/id/10
{"field":10,"message":"[Info] Removed Page Field"}
$Groovy Example
import org.apache.http.HttpEntity
import org.apache.http.HttpStatus
import org.apache.http.client.methods.CloseableHttpResponse
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.CloseableHttpClient
import org.apache.http.impl.client.HttpClients
import org.apache.http.util.EntityUtils
import org.apache.log4j.Level
log.setLevel(Level.DEBUG)
HttpGet method = new HttpGet("http://localhost:8090/rest/pagefields/1.0/utility/list/fields/page/id/3145752")
method.setHeader("Authorization", "Basic YWRtaW46YWRtaW4=")
try {
CloseableHttpClient client = HttpClients.custom().build()
CloseableHttpResponse response = client.execute(method)
log.debug("response code: " + response.getStatusLine().getStatusCode())
if(response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
log.warn("Method Failed: "+ response.getStatusLine().getStatusCode())
}else{
HttpEntity entity = response.getEntity()
String responseBody = EntityUtils.toString(entity)
log.debug("Response Body: "+ responseBody)
}
} catch (IOException ex) {
log.error(ex)
} finally {
method.releaseConnection()
}Output in atlassian-confluence.log
2018-05-18 21:14:23,127 DEBUG [http-nio-8090-exec-9] [onresolve.scriptrunner.runner.ScriptRunnerImpl] call response code: 200
2018-05-18 21:14:23,130 DEBUG [http-nio-8090-exec-9] [onresolve.scriptrunner.runner.ScriptRunnerImpl] call Response Body: [{"pageId":3145752,"fieldId":30,"fieldName":"xxxx","fieldValue":"xxxx","lastUpdated":1524997529545},{"pageId":3145752,"fieldId":28,"fieldName":"customer.source","fieldValue":"public static void main(String[] args) {\r\n System.out.println(\"Hello World!\");\r\n}","lastUpdated":1522299682381},{"pageId":3145752,"fieldId":29,"fieldName":"customer.feedback","fieldValue":"So far good.","lastUpdated":1522299674396},{"pageId":3145752,"fieldId":27,"fieldName":"customer.name","fieldValue":"Swetha Venkat Prasad","lastUpdated":1522299546648}]