REST method type
The REST method that the app provides. REST methods can be used by other objects in this manifest, including dashboard items, GUI actions, and metadata providers.
IBM® QRadar® expects the response of a REST method to be RFC 4627-compliant JSON (https://www.ietf.org/rfc/rfc4627.txt). Arguments are passed to the method either as a query string argument or URI encoded parameters in the PUT or POST body.
REST methods are typically implemented in Python by using the Flask framework.
The following implementation of a REST method retrieves a type of metadata:
@app.route('/getMetaData', methods=['GET'])
def getMetaData():
ip = request.args.get("ip")
#Do something with this IP and populate a variable called 'value'
return json.dumps({'key':'myMetaData','label':'Item Label','value':value})
This method is then exposed in the manifest in the following way:
...
rest_methods: [
{
"name":"getMetaData",
"url":"/getMetaData",
"method":"GET",
"argument_names":["context"]
}
],
...
The following table describes the Rest_methods
block fields in the
manifest.json
file.
Field | Required | Type | Description |
---|---|---|---|
name | Yes | String | A unique name for this REST method within the app. |
method | Yes | String | An HTTP method on named endpoint (GET/POST/DELETE/PUT). |
url | Yes | String | The URL to access the REST method, relative to the app root. Only URLs within the app are supported. |
argument_names | No | String | The names of arguments that this method expects. Arguments that are passed to the method are URL-encoded, as either query string parameters or in the PUT or POST body. |
required_capabilities | No | Array of String | A set of capabilities that a user must affiliate with their user role to access this method. |