QPR ProcessAnalyzer API: Difference between revisions
No edit summary |
|||
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
QPR ProcessAnalyzer API can be used to | 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 | 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 | 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> | https://customer.onqpr.com/qprpa/api/<methodName> | ||
Line 16: | Line 16: | ||
||Login user using username and password and get a session token as a response. | ||Login user using username and password and get a session token as a response. | ||
|- | |- | ||
||[[Web_API:_Signout|signout]] | ||[[Web_API:_Signout|api/signout]] | ||
||Logs out a user session. | ||Logs out a user session. | ||
|- | |- | ||
||[[Web_API:_Expression|expression]] | ||[[Web_API:_Expression|api/expression]] | ||
||Runs an expression. | ||Runs an expression. | ||
|- | |- | ||
||[[Web_API:_Expression/query|expression/query]] | ||[[Web_API:_Expression/query|api/expression/query]] | ||
||Runs query written using the expression language and returns result data as response. | ||Runs query written using the expression language and returns result data as response. | ||
|- | |- | ||
||[[Web_API:_Filters|filters]] | ||[[Web_API:_Filters|api/filters]] | ||
||Get filters for all models or filters for a single model. | ||Get filters for all models or filters for a single model. | ||
|- | |- | ||
||[[Web_API:_Serverinfo|serverinfo]] | ||[[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. | ||Returns common system information needed by UI, such as the default UI language and in whether SSO has been configured. | ||
|- | |- | ||
||[[Web_API:_Importfile|importfile]] | ||[[Web_API:_Importfile|api/importfile]] | ||
||Import data into datatable from .csv, .xes or .pacm file. | ||Import data into datatable from .csv, .xes or .pacm file. | ||
|- | |- | ||
||[[Web_API:_Usersettings|usersettings]] | ||[[Web_API:_Usersettings|api/usersettings]] | ||
||Save user specific settings to the server. | ||Save user specific settings to the server. | ||
|- | |- | ||
||[[Web_API:_Operations/terminate|operations/terminate]] | ||[[Web_API:_Operations/terminate|api/operations/terminate]] | ||
||Stops the defined tasks (by the task id) to save computing resources. | ||Stops the defined tasks (by the task id) to save computing resources. | ||
|- | |- | ||
||[[Web_API:_Cancel|analysis/cancel]] | ||[[Web_API:_Cancel|api/analysis/cancel]] | ||
||Stops currently running tasks (by the task identifier) to save computing resources. | ||Stops currently running tasks (by the task identifier) to save computing resources. | ||
|- | |- | ||
||[[Web_API:_saml2/ | ||[[Web_API:_saml2/acs|api/saml2/acs]] | ||
||Identity | ||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. | |||
|} | |} | ||
Line 55: | Line 58: | ||
* [[Web_API_for_Scripts|scripts]] | * [[Web_API_for_Scripts|scripts]] | ||
* [[Web_API_for_User_Management|users, groups and roles]] | * [[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__ | __NOTOC__ | ||
[[Category: QPR ProcessAnalyzer]] | [[Category: QPR ProcessAnalyzer]] |
Latest 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.