- Created by Cao Liang on May 04, 2022
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
Version 1 Next »
Introduction
Now it is possible for 3rd party apps to get and edit lookup tables with the newly added REST endpoints
Resources
Table
METHOD | URL | Data | Sample Code |
---|---|---|---|
GET | /rest/lookuprestresource/1.0/lookup/table | Return an array of table information Example [ { "columns":[ { "id":4, "name":"Application" }, { "id":5, "name":"App Owner" } ], "name":"App Mapping", "id":2 } ]
| //Get information for all the tables def data = sendGetRequest("/rest/lookuprestresource/1.0/lookup/table/") data.each{val -> //TODO } |
METHOD | URL | Data | Sample Code |
---|---|---|---|
POST | /rest/lookuprestresource/1.0/lookup/table | The data should be a valid JSON string containing the following information:
Example { "name":"New_Table", "columns": ["Column_1, Column_2"] } | def bodyData = '{"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} |
METHOD | URL | Data | Sample Code |
---|---|---|---|
PUT | /rest/lookuprestresource/1.0/lookup/table/{TABLE_NAME} |
|
|
METHOD | URL | Data | Sample Code |
---|---|---|---|
DELETE | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID} |
| //Delete the data for table id 2 sendDeleteRequest("/rest/lookuprestresource/1.0/lookup/table/2") |
Table row
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 [ { "4":"Confuence", "5":"Leon", "id":7, "tableid":2 }, { "4":"Jira", "5":"admin", "id":15, "tableid":2 } ]
| //Get the rows information for table id 2 def data = sendGetRequest("/rest/lookuprestresource/1.0/lookup/table/2/entries") data.each{val -> //TODO } |
METHOD | URL | Data | Sample Code |
---|---|---|---|
POST | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/entries | The row data should be a valid JSON string containing the following information:
Example { "4":"Jira 8", "5":"admin" } | 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} |
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:
Example { "4":"Jira", "5":"admin1" } | //Update the data for row id 20 def bodyData = '{"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} |
METHOD | URL | Data | Sample Code |
---|---|---|---|
DELETE | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/entries/{ROW_ID} |
| //Delete the data for row id 20 sendDeleteRequest("/rest/lookuprestresource/1.0/lookup/table/2/entries/20") |
Table Column
METHOD | URL | Data | Sample Code |
---|---|---|---|
GET | /rest/lookuprestresource/1.0/lookup/table/{TABLE_ID}/columns | Return the columns information for a table Example { "columns":[ { "id":4, "name":"Application" }, { "id":5, "name":"App Owner" } ], "name":"App Mapping", "id":2 }
| //Get the columns information for table id 2 def data = sendGetRequest("/rest/lookuprestresource/1.0/lookup/table/2/columns") data.each{val -> //TODO } |
Useful Methods
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) } } }
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 } } }
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(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 } } }
def sendDeleteRequest(url) { 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(DELETE) { 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) return data } response.failure = { resp,data -> log.error("ERROR: " + resp.status) log.error(data) return null } } }
def convertMapToJson(data) { return JsonOutput.prettyPrint(JsonOutput.toJson(data)) }
- No labels