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
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.