QPR ProcessAnalyzer API: Difference between revisions
(92 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
QPR ProcessAnalyzer | QPR ProcessAnalyzer API can be used to build integrations with other applications and automate operations in the process mining system. | ||
QPR ProcessAnalyzer API is a JSON based API following the REST design principles. All methods (except the [[Web_API:_Token|token]] and [[Web_API:_Serverinfo|serverinfo]]) require a prior login to establish a session. The session is initialized with the [[Web_API:_Token|token]] call with username and password, and the access token is returned as a response for a successful login. The methods requiring prior authenticated session, need to have a HTTP request header ''Authorization'' with value ''Bearer <access token>'' to identify the session. | |||
Url for calling the API has the following form (replace the server hostname with a correct one): | |||
<pre> | <pre> | ||
// | https://customer.onqpr.com/qprpa/api/<methodName> | ||
</pre> | </pre> | ||
Following methods are available: | |||
{| class="wikitable" | |||
!'''Method''' | |||
! '''Description''' | |||
|- | |||
||[[Web_API:_Token|token]] | |||
||Login user using username and password and get a session token as a response. | |||
|- | |||
||[[Web_API:_Signout|api/signout]] | |||
||Logs out a user session. | |||
|- | |||
} | ||[[Web_API:_Expression|api/expression]] | ||
||Runs an expression. | |||
|- | |||
||[[Web_API:_Expression/query|api/expression/query]] | |||
||Runs query written using the expression language and returns result data as response. | |||
|- | |||
||[[Web_API:_Filters|api/filters]] | |||
||Get filters for all models or filters for a single model. | |||
|- | |||
||[[Web_API:_Serverinfo|api/serverinfo]] | |||
||Returns common system information needed by UI, such as the default UI language and in whether SSO has been configured. | |||
|- | |||
||[[Web_API:_Importfile|api/importfile]] | |||
||Import data into datatable from .csv, .xes or .pacm file. | |||
|- | |||
||[[Web_API:_Usersettings|api/usersettings]] | |||
||Save user specific settings to the server. | |||
|- | |||
||[[Web_API:_Operations/terminate|api/operations/terminate]] | |||
||Stops the defined tasks (by the task id) to save computing resources. | |||
|- | |||
||[[Web_API:_Cancel|api/analysis/cancel]] | |||
||Stops currently running tasks (by the task identifier) to save computing resources. | |||
|- | |||
||[[Web_API:_saml2/acs|api/saml2/acs]] | |||
||Identity provider (IdP) will send the SAML 2.0 assertion to this endpoint, which responses with 302 to redirect to QPR ProcessAnalyzer UI. | |||
|- | |||
||[[Web_API:_saml2|api/saml2]] | |||
||Returns the SAML 2.0 service provider (SP) metadata, if SAML 2.0 authentication has been configured. | |||
|} | |||
In addition, there are methods for | |||
* [[Web API for Workspace Elements|moving and deleting workspace elements]] | |||
* [[Web_API_for_Projects|projects]] | |||
* [[Web_API_for_Dashboards|dashboards]] | |||
* [[Web_API_for_Models|models]] | |||
* [[Web_API_for_Datatables|datatables]] | |||
* [[Web_API_for_Scripts|scripts]] | |||
* [[Web_API_for_User_Management|users, groups and roles]] | |||
== Examples == | |||
Following function written in Python starts a script in QPR ProcessAnalyzer by calling the REST API. The function does following: (1) login to QPR ProcessAnalyzer, (2) start the script, and (3) log out. The call just starts the script without waiting for it to complete (asynchronous behavior). | |||
=== | <syntaxhighlight lang="python" line> | ||
def startQprProcessAnalyzerScript(serverUrl: str, username: str, password: str, scriptId: int): | |||
= | loginData = { | ||
"grant_type": "password", | |||
"username": username, | |||
"password": password | |||
} | |||
loginResponse = requests.post( | |||
url = serverUrl + "/token", | |||
data = loginData | |||
) | |||
loginResponse.raise_for_status() | |||
sessionToken = loginResponse.json().get("access_token") | |||
startScriptResponse = requests.post( | |||
url = serverUrl + "/api/scripts/run/" + str(scriptId), | |||
headers = { | |||
"Authorization": "Bearer " + sessionToken, | |||
"Content-type": "application/json" | |||
} | |||
) | |||
startScriptResponse.raise_for_status() | |||
logOutResponse = requests.post( | |||
url = serverUrl + "/api/signout", | |||
headers = { | |||
"Authorization": "Bearer " + sessionToken, | |||
</ | "Content-type": "application/json" | ||
} | |||
) | |||
logOutResponse.raise_for_status() | |||
</syntaxhighlight> | |||
The function can be called as follows: | |||
< | <syntaxhighlight lang="python" line> | ||
startQprProcessAnalyzerScript( | |||
serverUrl = "https://server.onqpr.com/qprpa", | |||
username = "qpr", | |||
password = "demo", | |||
scriptId = 1 | |||
) | |||
</syntaxhighlight> | |||
The script id can be found in the scripts list in the Workspace. | |||
__NOTOC__ | |||
[[Category: QPR ProcessAnalyzer]] | |||
Revision as of 20:06, 14 December 2023
QPR ProcessAnalyzer API can be used to build integrations with other applications and automate operations in the process mining system.
QPR ProcessAnalyzer API is a JSON based API following the REST design principles. All methods (except the token and serverinfo) require a prior login to establish a session. The session is initialized with the token call with username and password, and the access token is returned as a response for a successful login. The methods requiring prior authenticated session, need to have a HTTP request header Authorization with value Bearer <access token> to identify the session.
Url for calling the API has the following form (replace the server hostname with a correct one):
https://customer.onqpr.com/qprpa/api/<methodName>
Following methods are available:
Method | Description |
---|---|
token | Login user using username and password and get a session token as a response. |
api/signout | Logs out a user session. |
api/expression | Runs an expression. |
api/expression/query | Runs query written using the expression language and returns result data as response. |
api/filters | Get filters for all models or filters for a single model. |
api/serverinfo | Returns common system information needed by UI, such as the default UI language and in whether SSO has been configured. |
api/importfile | Import data into datatable from .csv, .xes or .pacm file. |
api/usersettings | Save user specific settings to the server. |
api/operations/terminate | Stops the defined tasks (by the task id) to save computing resources. |
api/analysis/cancel | Stops currently running tasks (by the task identifier) to save computing resources. |
api/saml2/acs | Identity provider (IdP) will send the SAML 2.0 assertion to this endpoint, which responses with 302 to redirect to QPR ProcessAnalyzer UI. |
api/saml2 | Returns the SAML 2.0 service provider (SP) metadata, if SAML 2.0 authentication has been configured. |
In addition, there are methods for
- moving and deleting workspace elements
- projects
- dashboards
- models
- datatables
- scripts
- users, groups and roles
Examples
Following function written in Python starts a script in QPR ProcessAnalyzer by calling the REST API. The function does following: (1) login to QPR ProcessAnalyzer, (2) start the script, and (3) log out. The call just starts the script without waiting for it to complete (asynchronous behavior).
def startQprProcessAnalyzerScript(serverUrl: str, username: str, password: str, scriptId: int):
loginData = {
"grant_type": "password",
"username": username,
"password": password
}
loginResponse = requests.post(
url = serverUrl + "/token",
data = loginData
)
loginResponse.raise_for_status()
sessionToken = loginResponse.json().get("access_token")
startScriptResponse = requests.post(
url = serverUrl + "/api/scripts/run/" + str(scriptId),
headers = {
"Authorization": "Bearer " + sessionToken,
"Content-type": "application/json"
}
)
startScriptResponse.raise_for_status()
logOutResponse = requests.post(
url = serverUrl + "/api/signout",
headers = {
"Authorization": "Bearer " + sessionToken,
"Content-type": "application/json"
}
)
logOutResponse.raise_for_status()
The function can be called as follows:
startQprProcessAnalyzerScript(
serverUrl = "https://server.onqpr.com/qprpa",
username = "qpr",
password = "demo",
scriptId = 1
)
The script id can be found in the scripts list in the Workspace.