A simple library for simple connecting to DecisionRules API
Project description
DecisionRulesPy
VERSION 3 CONTAINS MAJOR CHANGES IN API INTERFACES AND NOW SUPPORTS RULEFLOWS CRUD
A simple library that allows you to easily connect to DecisionRules.io from your application.
Usage
- Solver (DecisionTables, ScriptRules, RuleFlow)
- Management API (CRUD operations on DecisionTables and RuleFlows)
1 - Solver
Solver is designed for solving rules made in DecisionRules application.
1.1 - Defining solver init
Before you start solving rules you need to setup an SolverAPI instance. How to do so is shown below.
import decisionrules
async def solver_test():
solver = decisionrules.SolverAPI(solver_api_key)
1.2 - Defining solver method with data
Solver method expects 5 arguments
- SolverType - enum value - mandatory
- RuleId - str - mandatory
- Data - dict or json str - mandatory
- SolverStrategy - enum value - mandatory
- Version - str - optional
async def solver_test():
data = {"say": "Hello from python"}
solver = decisionrules.SolverAPI(api_key)
# SolverType enum defines type of solver (Rule or Compostion)
response = await solver.solve(decisionrules.SolverType.RULE, get_rule, data, decisionrules.SolverStrategies.STANDARD)
response2 = await solver.solve(decisionrules.SolverType.RULEFLOW, compo_rule, data, decisionrules.SolverStrategies.STANDARD)
1.3 Solver with custom domain
For using custom domain just add CustomDomain
instance to the init method
with url
and protocol
parameters.
async def solver_test():
data = {"say": "Hello from python"}
solver = decisionrules.SolverAPI(api_key, decisionrules.CustomDomain("YOUR_URL", decisionrules.Protocols.HTTPS))
response = await solver.solve(decisionrules.SolverType.RULE, get_rule, data, decisionrules.SolverStrategies.STANDARD)
response2 = await solver.solve(decisionrules.SolverType.RULEFLOW, compo_rule, data, decisionrules.SolverStrategies.STANDARD)
2 - Management API
Management api is accessible via ManagementApi
and required management api key that you can obtain in api key section in DecisionRules app.
Data for ruleflow import methods are represented as an array where index0 = RF, and index1...indexn are DTs
async def management_api_test():
manager = decisionrules.ManagementApi(mng_key)
#Or with custom domain
manager = decisionrules.ManagementApi(mng_key, decisionrules.CustomDomain("YOUR_URL", decisionrules.Protocols.HTTPS))
2.1 Management API usage example
async def management_api_test():
manager = decisionrules.ManagementApi(mng_key)
await manager.get_rule(get_rule)
await manager.get_rule(get_rule, "1")
await manager.get_space(get_space)
await manager.update_rule(put_rule, "1", put_data)
await manager.create_rule(post_rule, post_data)
await manager.delete_rule(delete_rule, "1")
await manager.create_ruleflow(new_ruleflow)
await manager.get_ruleflow(id)
await manager.get_ruleflow(id, 1)
await manager.update_ruleflow(id, 1, ruleflow)
await manager.export_ruleflow(id, 1)
await manager.export_ruleflow(id)
await manager.import_ruleflow([new_ruleflow_with_dt], 1,)
await manager.import_ruleflow(id, 1, [new_ruleflow_with_dt])
await manager.import_ruleflow([new_ruleflow_with_dt])
await manager.delele_ruleflow(id)
2.3 All available methods in management API
- GetRuleById - Search for single rule by its ID
- GetRuleByIdAndVersion - Search for single rule by its ID and version
- GetSpace - Search for space by its ID
- PostRuleForSpace - Post new rule to the space
- PutRule - Update existing rule
- DeleteRule - Delete existing rule
- Create Ruleflow - Creates empty rule flow
- Get Ruleflow - Returns RuleFlow
- Update RuleFlow - Updates RuleFlow
- Import RuleFlow - Imports RuleFlow (as a new RuleFLow, as a new version or replace existing version) and all RelatedDecisionTables (see chapter 2 on how to compose requests)
- Export RuleFlow - Exports RuleFlow and related DecisionTables
- Delete RuleFlow - Deletes existing RuleFlow
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for decisionrulespy-3.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf4861c8c8e88117155b3463f2b432bc0774602a9e43842744b54b3a762d6c94 |
|
MD5 | 0486fea2ce0b8e8831ec930ae72aa2ed |
|
BLAKE2b-256 | dee46cc0347361490fe903e7cbf068f5a3cb083d21e1156f8c658d6ad9161928 |