mirror of https://github.com/dapr/docs.git
				
				
				
			docs: Provide more structured API docs for Workflow API
Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com>
This commit is contained in:
		
							parent
							
								
									d0c107eb8a
								
							
						
					
					
						commit
						7bdefeb5eb
					
				|  | @ -5,39 +5,95 @@ linkTitle: "Workflow API" | ||||||
| description: "Detailed documentation on the workflow API" | description: "Detailed documentation on the workflow API" | ||||||
| weight: 900 | weight: 900 | ||||||
| --- | --- | ||||||
| ## Component format |  | ||||||
| 
 | 
 | ||||||
| A Dapr `workflow.yaml` component file has the following structure: | Dapr provides users with the ability to interact with workflows and comes with a built-in `dapr` component. | ||||||
| ```yaml |  | ||||||
| apiVersion: dapr.io/v1alpha1 |  | ||||||
| kind: Component |  | ||||||
| metadata: |  | ||||||
|   name: <NAME> |  | ||||||
| spec: |  | ||||||
|   type: workflow.<TYPE> |  | ||||||
|   version: v1.0-alpha1 |  | ||||||
|   metadata: |  | ||||||
|   - name: <NAME> |  | ||||||
|     value: <VALUE> |  | ||||||
|  ``` |  | ||||||
| | Setting | Description | |  | ||||||
| | ------- | ----------- | |  | ||||||
| | `metadata.name` | The name of the workflow component. | |  | ||||||
| | `spec/metadata` | Additional metadata parameters specified by workflow component | |  | ||||||
| 
 | 
 | ||||||
|  | ## Start workflow request | ||||||
| 
 | 
 | ||||||
|  | Start a workflow instance with the given name and instance id. | ||||||
| 
 | 
 | ||||||
| ## Supported workflow methods |  | ||||||
| 
 |  | ||||||
| ### POST start workflow request |  | ||||||
| ```bash | ```bash | ||||||
| POST http://localhost:3500/v1.0-alpha1/workflows/<workflowComponentName>/<workflowName>/<instanceId>/start | POST http://localhost:3500/v1.0-alpha1/workflows/<workflowComponentName>/<workflowName>/<instanceId>/start | ||||||
| ``` | ``` | ||||||
| ### POST terminate workflow request | 
 | ||||||
|  | ### URL parameters | ||||||
|  | 
 | ||||||
|  | Parameter | Description | ||||||
|  | --------- | ----------- | ||||||
|  | `workflowComponentName` | Current default is `dapr` for Dapr Workflows | ||||||
|  | `workflowName` | Identify the workflow type | ||||||
|  | `instanceId` | Unique value created for each run of a specific workflow | ||||||
|  | 
 | ||||||
|  | ### Request Contents | ||||||
|  | 
 | ||||||
|  | In the request you can pass along headers: | ||||||
|  | 
 | ||||||
|  | ```json | ||||||
|  | { | ||||||
|  |   "input": // argument(s) to pass to the workflow which can be any valid JSON data type (such as objects, strings, numbers, arrays, etc.) | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### HTTP Response codes | ||||||
|  | 
 | ||||||
|  | Code | Description | ||||||
|  | ---- | ----------- | ||||||
|  | `202`  | Accepted | ||||||
|  | `400`  | Request was malformed | ||||||
|  | `500`  | Request formatted correctly, error in dapr code or underlying component | ||||||
|  | 
 | ||||||
|  | ### Response Contents | ||||||
|  | 
 | ||||||
|  | The API call will provide a response similar to this: | ||||||
|  | 
 | ||||||
|  | ```json | ||||||
|  | { | ||||||
|  |   "WFInfo": { | ||||||
|  |     "instance_id": "SampleWorkflow" | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ## Terminate workflow request | ||||||
|  | 
 | ||||||
|  | Terminate a running workflow instance with the given name and instance id. | ||||||
|  | 
 | ||||||
| ```bash | ```bash | ||||||
| POST http://localhost:3500/v1.0-alpha1/workflows/<workflowComponentName>/<instanceId>/terminate | POST http://localhost:3500/v1.0-alpha1/workflows/<workflowComponentName>/<instanceId>/terminate | ||||||
| ``` | ``` | ||||||
| ### GET workflow request | 
 | ||||||
|  | ### URL parameters | ||||||
|  | 
 | ||||||
|  | Parameter | Description | ||||||
|  | --------- | ----------- | ||||||
|  | `workflowComponentName` | Current default is `dapr` for Dapr Workflows | ||||||
|  | `workflowName` | Identify the workflow type | ||||||
|  | `instanceId` | Unique value created for each run of a specific workflow | ||||||
|  | 
 | ||||||
|  | ### HTTP Response codes | ||||||
|  | 
 | ||||||
|  | Code | Description | ||||||
|  | ---- | ----------- | ||||||
|  | `202`  | Accepted | ||||||
|  | `400`  | Request was malformed | ||||||
|  | `500`  | Request formatted correctly, error in dapr code or underlying component | ||||||
|  | 
 | ||||||
|  | ### Response Contents | ||||||
|  | 
 | ||||||
|  | The API call will provide a response similar to this: | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | HTTP/1.1 202 Accepted | ||||||
|  | Server: fasthttp | ||||||
|  | Date: Thu, 12 Jan 2023 21:31:16 GMT | ||||||
|  | Traceparent: 00-e3dedffedbeb9efbde9fbed3f8e2d8-5f38960d43d24e98-01 | ||||||
|  | Connection: close  | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Get workflow request | ||||||
|  | 
 | ||||||
|  | Get information about a given workflow instance. | ||||||
|  | 
 | ||||||
| ```bash | ```bash | ||||||
| GET http://localhost:3500/v1.0-alpha1/workflows/<workflowComponentName>/<workflowName>/<instanceId> | GET http://localhost:3500/v1.0-alpha1/workflows/<workflowComponentName>/<workflowName>/<instanceId> | ||||||
| ``` | ``` | ||||||
|  | @ -50,15 +106,7 @@ Parameter | Description | ||||||
| `workflowName` | Identify the workflow type | `workflowName` | Identify the workflow type | ||||||
| `instanceId` | Unique value created for each run of a specific workflow | `instanceId` | Unique value created for each run of a specific workflow | ||||||
| 
 | 
 | ||||||
| 
 | ### HTTP Response codes | ||||||
| ### Headers |  | ||||||
| 
 |  | ||||||
| As part of the start HTTP request, the caller can optionally include one or more `dapr-workflow-metadata` HTTP request headers. The format of the header value is a list of `{key}={value}` values, similar to the format for HTTP cookie request headers. These key/value pairs are saved in the workflow instance’s metadata and can be made available for search (in cases where the workflow implementation supports this kind of search). |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ## HTTP responses |  | ||||||
| 
 |  | ||||||
| ### Response codes  |  | ||||||
| 
 | 
 | ||||||
| Code | Description | Code | Description | ||||||
| ---- | ----------- | ---- | ----------- | ||||||
|  | @ -66,31 +114,9 @@ Code | Description | ||||||
| `400`  | Request was malformed | `400`  | Request was malformed | ||||||
| `500`  | Request formatted correctly, error in dapr code or underlying component | `500`  | Request formatted correctly, error in dapr code or underlying component | ||||||
| 
 | 
 | ||||||
| ### Examples of response body for each method | ### Response Contents | ||||||
| 
 | 
 | ||||||
| #### POST start workflow response body | The API call will provide a response similar to this: | ||||||
| 
 |  | ||||||
| ```bash |  | ||||||
|   "WFInfo": { |  | ||||||
|     "instance_id": "SampleWorkflow" |  | ||||||
|   } |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| #### POST terminate workflow response body |  | ||||||
| 
 |  | ||||||
| ```bash |  | ||||||
| HTTP/1.1 202 Accepted |  | ||||||
| Server: fasthttp |  | ||||||
| Date: Thu, 12 Jan 2023 21:31:16 GMT |  | ||||||
| Content-Type: application/json |  | ||||||
| Content-Length: 139 |  | ||||||
| Traceparent: 00-e3dedffedbeb9efbde9fbed3f8e2d8-5f38960d43d24e98-01 |  | ||||||
| Connection: close  |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ### GET workflow response body |  | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| HTTP/1.1 202 Accepted | HTTP/1.1 202 Accepted | ||||||
|  | @ -113,6 +139,29 @@ Connection: close  | ||||||
|  } |  } | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | ## Component format | ||||||
|  | 
 | ||||||
|  | A Dapr `workflow.yaml` component file has the following structure: | ||||||
|  | 
 | ||||||
|  | ```yaml | ||||||
|  | apiVersion: dapr.io/v1alpha1 | ||||||
|  | kind: Component | ||||||
|  | metadata: | ||||||
|  |   name: <NAME> | ||||||
|  | spec: | ||||||
|  |   type: workflow.<TYPE> | ||||||
|  |   version: v1.0-alpha1 | ||||||
|  |   metadata: | ||||||
|  |   - name: <NAME> | ||||||
|  |     value: <VALUE> | ||||||
|  |  ``` | ||||||
|  | 
 | ||||||
|  | | Setting | Description | | ||||||
|  | | ------- | ----------- | | ||||||
|  | | `metadata.name` | The name of the workflow component. | | ||||||
|  | | `spec/metadata` | Additional metadata parameters specified by workflow component | | ||||||
|  | 
 | ||||||
|  | However, Dapr comes with a built-in `dapr` workflow component that is built on Dapr Actors. No component file is required to use the built-in Dapr workflow component. | ||||||
| 
 | 
 | ||||||
| ## Next Steps | ## Next Steps | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue