Endpoints
Workflow
Path | Endpoint |
---|---|
GET /api/v1/workflow |
Gets workflow instances launched by current user |
GET /api/v1/workflow/{workflowId} |
Finds workflow instance by its ID |
GET /api/v1/workflow/{workflowInstanceId}/graph |
Gets JSON serialization of workflow instance graph |
GET /api/v1/id/{docId}/@workflow |
Gets workflow instances launched on given document |
GET /api/v1/path/{docPath}/@workflow |
Gets workflow instances launched on given document |
POST /api/v1/id/workflow |
Starts workflow instance |
POST /api/v1/id/{docId}/@workflow |
Starts workflow instance on given document |
POST /api/v1/path/{docPath}/@workflow |
Starts workflow instance on given document |
DELETE /api/v1/path/workflow/{workflowInstanceId} |
Deletes workflow instance by its ID |
Task
Path | Endpoint |
---|---|
GET /api/v1/task |
Queries tasks by user and workflow IDs |
GET /api/v1/task/{taskId} |
Gets task by its ID |
GET /api/v1/id/{docId}/@task |
Lists tasks of given document |
GET /api/v1/path/{docPath}/@task |
Lists tasks of given document |
PUT /api/v1/task/{taskId}/{action} |
Completes task |
PUT /api/v1/task/{taskId}/reassign |
Reassigns task |
PUT /api/v1/task/{taskId}/delegate |
Delegates task |
Workflow Model
Path | Endpoint |
---|---|
GET /api/v1/workflowModel/{modelName} |
Finds workflow model by name |
GET /api/v1/workflowModel/{modelName}/graph |
Gets JSON serialization of workflow model graph |
GET /api/v1/workflowModel |
Gets workflow models |
Parallel Review Example
Below is an example of how to start a Parallel Review Workflow and complete it with Nuxeo REST API.
To start a parallel review on a given document, POST to the workflow endpoint or the workflow adapter:
POST http://NUXEO_SERVER/nuxeo/api/v1/id/{documentId}/@workflow { "entity-type":"workflow", "workflowModelName":"ParallelDocumentReview", "attachedDocumentIds":["{documentId}"] }
A workflow object is returned with the
workflowId
, which can be used later. Each workflow is composed of a set of tasks which must be completed in order for the workflow to change its state and eventually come to an end.For each step, retrieve the respective task from the server, either via the
task
endpoint ortask
adapter.GET http://NUXEO_SERVER/nuxeo/api/v1/id/{documentId}/@task?userId={userId}&workflowInstanceId={workflowId}&workflowModelName=ParallelDocumentReview
A task object is returned, with the respective
taskId
. In our case, the first step would return a Choose Participants task, where the user that started the workflow must choose the participants involved in the review. The task can than be completed with a PUT request to thetask
endpoint, the respective action being supplied at the end of the path.To start the review, use the
start_review
action in the request.PUT http://NUXEO_SERVER/nuxeo/api/v1/task/{taskId}/start_review { "entity-type":"task", "id":"{taskId}", "variables":{ "comment":{initial_comment}, "participants":”{userIds}”, "assignees":"{userIds}", "end_date":”{end_date}” } }
Here, the
initial_comment
,userIds
, andend_date
variables must be supplied by the user, anduserIds
must be a string encoding an array containing the IDs of the participants. Supposing only John was selected for the review,userIds
would be represented as"[\"John\"]"
. The next task prompts the user to Approve, Reject or take No Action (N/A) in the review, and optionally leave a comment.The review could be approved via the following request:
PUT http://NUXEO_SERVER/nuxeo/api/v1/task/{taskId}/approve { "entity-type":"task", "id":"{taskId}", "comment":"{comment}" }
The next task requires the user to Validate or Reject the review, depending on the feedback provided by other participants. Completing this task will bring the workflow to an end.
Validating the review can be done as follows:
PUT http://NUXEO_SERVER/nuxeo/api/v1/task/{taskId}/validate { "entity-type":"task", "id":"{taskId}", "comment":"{comment}" }
Learn More
- Test these endpoints on your local instance with Nuxeo API Playground (see documentation to configure your local instance).
- Checkout the Nuxeo REST API explorer of your instance at
http://NUXEO_SERVER/nuxeo/api/v1/doc
. - A client sample nuxeo-travel-expenses (available on GitHub) based on Web Components and Polymer demonstrates how to use the workflow REST API.