Introduction
Now it is possible for 3rd party apps to can get and edit lookup tables with the newly added REST endpoints
...
Expand |
---|
title | Get information for all the tables (GET) |
---|
|
METHOD | URL | DataSample Code |
---|
GET | /rest/lookuprestresource/1.0/lookup/table | Return an array of table information Example Code Block |
---|
[
{
"columns":[
{
"id":4,
"name":"Application"
},
{
"id":5,
"name":"App Owner"
}
],
"name":"App Mapping",
"id":2
}
] |
|
Sample code Code Block |
---|
//Get information for all the tables
def data = sendGetRequest("/rest/lookuprestresource/1.0/lookup/table/")
data.each{val ->
//TODO
} |
|
Expand |
---|
title | Add a new table (POST) |
---|
|
METHOD | URL | DataSample Code |
---|
POST | /rest/lookuprestresource/1.0/lookup/table | The data should be a valid JSON string containing the following information: Example Code Block |
---|
{
"name":"New_Table",
"columns": ["Column_1, Column_2"]
} |
|
Sample code Code Block |
---|
def bodyData = 'data={"name":"New_Table","columns":["Column_1","Column_2"]}'
def responseData = sendPostRequest("/rest/lookuprestresource/1.0/lookup/table",bodyData)
//{columns=[{id=22, name=Column_1}, {id=23, name=Column_2}], name=New_Table, id=11} |
|
Expand |
---|
title | Update an existing table (PUT) |
---|
|
Expand |
---|
title | Get rows information for a table (GET) |
---|
|
METHOD | URL | Data | Sample Code |
---|
GET | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/entries | Return the an array of rows information for a table Example Code Block |
---|
[
{
"4":"Confuence",
"5":"Leon",
"id":7,
"tableid":2
},
{
"4":"Jira",
"5":"admin",
"id":15,
"tableid":2
}
] |
Code Block | //Get the rows informationMETHOD | URL | DataSample Code |
---|
PUT | /rest/lookuprestresource/1.0/lookup/table/{TABLE_NAME} |
|
Expand |
---|
title | Delete an existing table (DELETE) |
---|
|
METHOD | URL | Data | Sample Code |
---|
DELETE | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID} | Code Block |
---|
//Delete the data for table id 2
sendDeleteRequest("/rest/lookuprestresource/1.0/lookup/table/2") |
|
Table row
The data should be a valid JSON string containing the following information: Example Code Block |
---|
{
"name":"New_Table",
"columns": ["Column_1, Column_2"],
"mode": "overwrite",
"result":[["Column_1","Column_2"],["admin","This is a message"]]
} |
|
Sample code Code Block |
---|
def bodyData = '{"name":"New_Table","columns":["Column_1","Column_2"],"mode":"overwrite","result":[["Column_1","Column_2"],["admin","This is a message"]]}';
def responseData = sendPutRequest("/rest/lookuprestresource/1.0/lookup/table/New_Table",bodyData) |
|
Expand |
---|
title | Delete an existing table (DELETE) |
---|
|
METHOD | URL | Data |
---|
DELETE | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID} | - |
Sample code Code Block |
---|
//Delete the data for table id 2
| def data = sendGetRequest(sendDeleteRequest("/rest/lookuprestresource/1.0/lookup/table/2 | /entries")
data.each{val ->
//TODO
}
|
Table row
Expand |
---|
title | Add a new row in Get rows information for a table (POSTGET) |
---|
|
Sample Code | POSTGET | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/entries |
The row data should be a valid JSON string containing the following information: KEY: column id VALUE: cell data
Return the an array of rows information for a table Example | Jira 8admin
} Code Block |
---|
def bodyData = '{"4":"Jira 8","5":"admin"}'
def responseData = sendPostRequest("/rest/lookuprestresource/1.0/lookup/table/2/entries", bodyData)
//Sample responseData: {4=Jira, 5=admin, id=20, tableid=2} |
| |
Expand |
---|
title | Update an existing row in a table (PUT) |
---|
|
METHOD | URL | Data | Sample Code |
---|
PUT | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/entries/{ROW_ID} | The data should be a valid JSON string containing the following information: KEY: column id VALUE: cell data
Example Code Block |
---|
{
"4":"Jira",
"5":"admin1"
} |
| Code Block | //Update the data for row id 20
def bodyData = '{"4":"Jira","5":"admin1"}'
def responseData = sendPutRequest("/rest/,
"id":7,
"tableid":2
},
{
"4":"Jira",
"5":"admin",
"id":15,
"tableid":2
}
] |
|
Sample code Code Block |
---|
//Get the rows information for table id 2
def data = sendGetRequest("/rest/lookuprestresource/1.0/lookup/table/2/entries | /20",bodyData)
//Sample responseData: {4=Jira, 5=admin1, id=20, tableid=2")
data.each{val ->
//TODO
} |
|
Expand |
---|
title | Delete an existing Add a new row in a table (DELETEPOST) |
---|
|
DELETEPOST | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/entries | /{ROW_ID} Code Block |
---|
//Delete the data for row id 20
sendDeleteRequest("/rest/lookuprestresource/1.0/lookup/table/2/entries/20") |
| |
Table Column
Expand |
---|
title | Get columns information for a table (GET) |
---|
|
METHOD | URL | Data | Sample Code |
---|
GET | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/columns | Return the columns information for a table Example Code Block | { | The row data should be a valid JSON string containing the following information: KEY: column id VALUE: cell data
Example Code Block |
---|
{
"4":"Jira 8",
" |
| columns[
{
"id":4,
"name":"Application"
},
{
"id":5,
"name":"App Owner"
}
],
"name":"App Mapping",
"id":2
} Code Block | //Get the columns information for table id 2
def data = sendGetRequest | Code Block |
---|
def bodyData = 'data={"4":"Jira 8","5":"admin"}'
def responseData = sendPostRequest("/rest/lookuprestresource/1.0/lookup/table/2/entries", bodyData)
//Sample responseData: {4=Jira, 5=admin, id=20, tableid=2} |
|
Sample code Code Block |
---|
def bodyData = 'data={"4":"Jira 8","5":"admin"}'
def responseData = sendPostRequest("/rest/lookuprestresource/1.0/lookup/table/2/entries", bodyData)
//Sample responseData: {4=Jira, 5=admin, id=20, tableid=2} |
|
Expand |
---|
title | Update an existing row in a table (PUT) |
---|
|
METHOD | URL | Data |
---|
PUT | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/entries/{ROW_ID} | The data should be a valid JSON string containing the following information: KEY: column id VALUE: cell data
Example Code Block |
---|
{
"4":"Jira",
"5":"admin1"
} |
|
Sample code Code Block |
---|
//Update the data for row id 20
def bodyData = 'data={"4":"Jira","5":"admin1"}'
def responseData = sendPutRequest("/rest/lookuprestresource/1.0/lookup/table/2/entries/20",bodyData)
//Sample responseData: {4=Jira, 5=admin1, id=20, tableid=2} |
|
Expand |
---|
title | Delete an existing row in a table (DELETE) |
---|
|
METHOD | URL | Data |
---|
DELETE | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/entries/{ROW_ID} | |
Sample code Code Block |
---|
//Delete the data for row id 20
sendDeleteRequest("/rest/lookuprestresource/1.0/lookup/table/2/entries/20") |
|
Table Column
Expand |
---|
title | Get columns information for a table (GET) |
---|
|
METHOD | URL | Data |
---|
GET | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/columns | Return the columns information for a table Example Code Block |
---|
{
"columns":[
{
"id":4,
"name":"Application"
},
{
"id":5,
"name":"App Owner"
}
],
"name":"App Mapping",
"id":2
} |
|
Sample code Code Block |
---|
//Get the columns information for table id 2
def data = sendGetRequest("/rest/lookuprestresource/1.0/lookup/table/2/columns")
data.each{val ->
//TODO
} |
|
Expand |
---|
title | Add a new column in a table (POST) |
---|
|
METHOD | URL | Data |
---|
POST | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/column | The column name Example: |
Sample code Code Block |
---|
def bodyData = 'columnName=COLUMN_NAME'
def responseData = sendPostRequest("/rest/lookuprestresource/1.0/lookup/table/2/column",bodyData) |
|
Expand |
---|
title | Update an existing column in a table (PUT) |
---|
|
METHOD | URL | Data |
---|
PUT | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/column/{COLUMN_ID} | The new column name Example: Code Block |
---|
NEW_COLUMN_NAME |
|
Sample code Code Block |
---|
def bodyData = 'newColumnName=NEW_COLUMN_NAME'
def responseData = sendPutRequest("/rest/lookuprestresource/1.0/lookup/table/2/column/6",bodyData) |
|
Expand |
---|
title | Delete an existing column in a table (DELETE) |
---|
|
METHOD | URL | Data |
---|
DELETE | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/column/{COLUMN_ID} | - |
Sample code Code Block |
---|
def responseData = sendDeleteRequest("/rest/lookuprestresource/1.0/lookup/table | /2/columns")
data.each{val ->
//TODO
} |
...
Useful Methods
Expand |
---|
|
Code Block |
---|
import org.apache.log4j.Logger;
import org.apache.log4j.Level;
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.ContentType.*
import static groovyx.net.http.Method.* |
|
Expand |
---|
|
Code Block |
---|
def sendGetRequest(url) {
def log = Logger.getLogger("LookupManager")
log.setLevel(Level.DEBUG)
//Step 1: Set base URL, E.g. http://localhost:2990/jira
def baseUrl = "http://localhost:2990/jira";
//Step 2: Set username and password
def userName = "admin"
def password = "admin"
def http = new HTTPBuilder(baseUrl + url)
http.request(GET) {
headers.
'Authorization' = "Basic " + ((userName + ":" + password).bytes.encodeBase64().toString())
headers.
'X-Atlassian-Token' = 'no-check';
requestContentType = URLENC
response.success = {resp, data ->
log.debug("SUCCESS: " + resp.status)
log.debug(data)
}
response.failure = { resp,data ->
log.error("ERROR: " + resp.status)
log.error(data)
}
}
} |
|
Expand |
---|
title | Send POST request with data |
---|
|
Code Block |
---|
def sendPostRequest(url, bodyData) {
def log = Logger.getLogger("LookupManager")
log.setLevel(Level.DEBUG)
def json = new groovy.json.JsonBuilder()
//Step 1: Set base URL, E.g. http://localhost:2990/jira
def baseUrl = "http://localhost:2990/jira";
//Step 2: Set username and password
def userName = "admin"
def password = "admin"
def http = new HTTPBuilder(baseUrl + url)
http.request(POST) {
headers.
'Authorization' = "Basic " + ((userName + ":" + password).bytes.encodeBase64().toString())
headers.
'X-Atlassian-Token' = 'no-check';
requestContentType = URLENC
body = "data=" + bodyData
response.success = {resp, data ->
log.debug("SUCCESS: " + resp.status)
log.debug(data)
return data
}
response.failure = { resp,data ->
log.error("ERROR: " + resp.status)
log.error(data)
return null
}
}
} |
|
Expand |
---|
title | Send PUT request with data |
---|
|
Code Block |
---|
def sendPostRequestsendPutRequest(url, bodyData) {
def log = Logger.getLogger("LookupManager")
log.setLevel(Level.DEBUG)
def json = new groovy.json.JsonBuilder()
//Step 1: Set base URL, E.g. http://localhost:2990/jira
def baseUrl = "http://localhost:2990/jira";
//Step 2: Set username and password
def userName = "admin"
def password = "admin"
def http = new HTTPBuilder(baseUrl + url)
http.request(PUT) {
headers.
'Authorization' = "Basic " + ((userName + ":" + password).bytes.encodeBase64().toString())
headers.
'X-Atlassian-Token' = 'no-check';
requestContentType = URLENC
body = "data=" + bodyData
response.success = {resp, data ->
log.debug("SUCCESS: " + resp.status)
log.debug(data)
return data
}
response.failure = { resp,data ->
log.error("ERROR: " + resp.status)
log.error(data)
return null
}
}
} |
|
...