Hi
I'd like to call a Confluence Custom REST endpoint (built using Scriptrunner for Confluence) from within a JIRA Custom REST Endpoint?
(How) can this be done?
Kind regards
Koen Gillard
Community moderators have prevented the ability to post new answers.
In the body of your Confluence REST endpoint method, you can use any valid Java/Groovy methods to call any external REST API, including those in JIRA.
The Groovy HttpBuilder library is particularly handy for making web requests, and has a RESTClient class that makes rest operations pretty simple.
Note that in most of the examples in the HttpBuilder documentation use @Grab to pull in HttpBuilder as a dependency, but you won't need to. ScriptRunner already pulls it in, so you can just import it.
Example code:
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.json.JsonBuilder
import groovy.transform.BaseScript
import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response
import groovyx.net.http.RESTClient
@BaseScript CustomEndpointDelegate delegate
doSomething(
httpMethod: "GET", groups: ["jira-users"]
) { MultivaluedMap queryParams, String body ->
def confluence = new RESTClient( 'https://my.confluence.suf/rest/api/myCustomEndPoint')
def response = confluence.get([:]) //simple empty get call, could replace with post, etc.
//You'll probably need to process the data you get back from the endpoint for your return code. Here, I'll just return it "as-is"
return Response.ok(response.data).build()
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.