Komsa.Camunda.Api.Client
2.8.0
Prefix Reserved
dotnet add package Komsa.Camunda.Api.Client --version 2.8.0
NuGet\Install-Package Komsa.Camunda.Api.Client -Version 2.8.0
<PackageReference Include="Komsa.Camunda.Api.Client" Version="2.8.0" />
paket add Komsa.Camunda.Api.Client --version 2.8.0
#r "nuget: Komsa.Camunda.Api.Client, 2.8.0"
// Install Komsa.Camunda.Api.Client as a Cake Addin #addin nuget:?package=Komsa.Camunda.Api.Client&version=2.8.0 // Install Komsa.Camunda.Api.Client as a Cake Tool #tool nuget:?package=Komsa.Camunda.Api.Client&version=2.8.0
Maintained Fork of Camunda.Api.Client
After Jan Lucansky stopped maintaining the orginal version we started maintaining our own fork. It is a drop-in-replacement for the original version. Just use Komsa.Camunda.Api.Client nuget package instead of Camunda.Api.Client.
Camunda 7 REST API Client
Camunda REST API Client for .NET platform
- .NET Framework 4.7.1
- .NET Standard 2.0
Covered API
Each part listed below is fully covered according to https://docs.camunda.org/manual/latest/reference/rest specification.
- Case Definition
- Case Execution
- Case Instance
- Decision Definition
- Decision Requirements Definition
- Deployment
- Execution
- External Task
- Filter
- Group
- History / Activity Instance
- History / Case Definition
- History / Case Instance
- History / Case Activity Instance
- History / Decision Instance
- History / Decision Requirements Definition
- History / Detail
- History / External Task Log
- History / Incident
- History / Job Log
- History / Process Definition
- History / Process Instance
- History / Task
- History / Variable Instance
- History / User Operation Log
- Incident
- Job
- Job Definition
- Message
- Migration
- Process Definition
- Process Instance
- Signal
- Task
- Tenant
- User
- Variable Instance
Install
The Camunda REST API Client is available on nuget.org
To install Camunda REST API Client, run the following command in the Package Manager Console
PM> Install-Package Komsa.Camunda.Api.Client
Usage
Initialize client
CamundaClient camunda = CamundaClient.Create("http://localhost:8080/engine-rest");
Basic Authentication
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://localhost:8080/engine-rest");
httpClient.DefaultRequestHeaders.Add("Authorization", "Basic ZGVtbzpkZW1v");
CamundaClient camunda = CamundaClient.Create(httpClient);
Filter external tasks
// build query
var externalTaskQuery = new ExternalTaskQuery() { Active = true, TopicName = "MyTask" };
// add some sorting
externalTaskQuery
.Sort(ExternalTaskSorting.TaskPriority, SortOrder.Descending)
.Sort(ExternalTaskSorting.LockExpirationTime);
// request external tasks according to query
List<ExternalTaskInfo> tasks = await camunda.ExternalTasks.Query(externalTaskQuery).List();
Get all external tasks
// get all external tasks without specifying query
List<ExternalTaskInfo> allTasks = await camunda.ExternalTasks.Query().List();
Set process variable
VariableResource vars = camunda.ProcessInstances["0ea218e8-9cfa-11e6-90a6-ac87a31e24fd"].Variables;
// set integer variable
await vars.Set("Var1", VariableValue.FromObject(123));
// set content of binary variable from file
await vars.SetBinary("DocVar", new BinaryDataContent(File.OpenRead("document.doc")), BinaryVariableType.Bytes);
Load typed variables
var executionId = "290a7fa2-8bc9-11e6-ab5b-ac87a31e24fd";
// load all variables of specified execution
Dictionary<string, VariableValue> allVariables = await camunda.Executions[executionId]
.LocalVariables.GetAll();
// obtain strongly typed variable with name Var1
int myVar1 = allVariables["Var1"].GetValue<int>();
Save content of variable to file
HttpContent fileContent = await camunda.Executions[executionId]
.LocalVariables.GetBinary("file1");
using (fileContent)
{
using (var outStream = File.OpenWrite("file1.doc"))
{
(await fileContent.ReadAsStreamAsync()).CopyTo(outStream);
}
}
Message correlation
var msg = new CorrelationMessage() { All = true, MessageName = "TestMsg" };
msg.ProcessVariables
.Set("Date", DateTime.Today)
.Set("ComplexVar", new { abc = "xyz", num = 123});
// correlate message with process variables
await camunda.Messages.DeliverMessage(msg);
Deploy resources
// deploy new bpmn diagram with some attachment
await camunda.Deployments.Create("My Deployment 1",
new ResourceDataContent(File.OpenRead("C:\\diagram.bpmn"), "diagram.bpmn"),
new ResourceDataContent(File.OpenRead("C:\\document.doc"), "document.doc"));
Conditional query
// get all jobs owned by Process_1 with DueDate in the future
var jobQuery = new JobQuery() { ProcessDefinitionKey = "Process_1" };
jobQuery.DueDates.Add(new ConditionQueryParameter()
{
Operator = ConditionOperator.GreaterThan, Value = DateTime.Now
});
var jobs = await camunda.Jobs.Query(jobQuery).List();
License
This project is made available under the MIT license. See LICENSE for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
- Refit (>= 8.0.0)
- Refit.Newtonsoft.Json (>= 8.0.0)
- Refit.Xml (>= 8.0.0)
- System.Net.Http (>= 4.3.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.8.0 | 750 | 11/11/2024 |
2.8.0-preview.2 | 41 | 11/8/2024 |
2.8.0-preview.1 | 49 | 11/8/2024 |
2.7.0 | 30,078 | 2/23/2022 |
2.6.1 | 2,479 | 11/19/2021 |
2.6.0 | 537 | 11/18/2021 |