HTTP

Task shell.

class pydolphinscheduler.tasks.http.Http(name: str, url: str, http_method: str | None = 'GET', http_params: dict | None = None, http_check_condition: str | None = 'STATUS_CODE_DEFAULT', condition: str | None = None, connect_timeout: int | None = 60000, socket_timeout: int | None = 60000, *args, **kwargs)[source]

Bases: BatchTask

Task HTTP object, declare behavior for HTTP task to dolphinscheduler.

param name:

The name or identifier for the HTTP task.

param url:

The URL endpoint for the HTTP request.

param http_method:

The HTTP method for the request (GET, POST, etc.). Defaults to HttpMethod.GET.

param http_params:

Parameters for the HTTP request. Defaults to None.

param http_check_condition:

Condition for checking the HTTP response status. Defaults to HttpCheckCondition.STATUS_CODE_DEFAULT.

param condition:

Additional condition to evaluate if http_check_condition is not STATUS_CODE_DEFAULT.

param connect_timeout:

Connection timeout for the HTTP request in milliseconds. Defaults to 60000.

param socket_timeout:

Socket timeout for the HTTP request in milliseconds. Defaults to 60000.

Attributes:
_task_custom_attr (set): A set containing custom attributes specific to the Http task,

including ‘url’, ‘http_method’, ‘http_params’, and more.

Raises:

PyDSParamException: Exception raised for invalid parameters, such as unsupported HTTP methods or conditions.

Example:

Usage example for creating an HTTP task: http_task = Http(name=”http_task”, url=”https://api.example.com”, http_method=”POST”, http_params={“key”: “value”})

_downstream_task_codes: set[int]
_task_custom_attr: set = {'condition', 'connect_timeout', 'http_check_condition', 'http_method', 'http_params', 'socket_timeout', 'url'}
_task_relation: set[TaskRelation]
_timeout: timedelta | int
_upstream_task_codes: set[int]
property http_params

Property to convert http_params using ParameterHelper when accessed.

class pydolphinscheduler.tasks.http.HttpCheckCondition[source]

Bases: object

Constant of HTTP check condition.

For now it contain four value: - STATUS_CODE_DEFAULT: when http response code equal to 200, mark as success. - STATUS_CODE_CUSTOM: when http response code equal to the code user define, mark as success. - BODY_CONTAINS: when http response body contain text user define, mark as success. - BODY_NOT_CONTAINS: when http response body do not contain text user define, mark as success.

BODY_CONTAINS = 'BODY_CONTAINS'
BODY_NOT_CONTAINS = 'BODY_NOT_CONTAINS'
STATUS_CODE_CUSTOM = 'STATUS_CODE_CUSTOM'
STATUS_CODE_DEFAULT = 'STATUS_CODE_DEFAULT'
class pydolphinscheduler.tasks.http.HttpMethod[source]

Bases: object

Constant of HTTP method.

DELETE = 'DELETE'
GET = 'GET'
HEAD = 'HEAD'
POST = 'POST'
PUT = 'PUT'

YAML file example

# Define the workflow
workflow:
  name: "Http"

# Define the tasks within the workflow
tasks:
  - name: task
    task_type: Http
    url: "https://httpbin.org/get"
    http_method: "GET"
    http_params:
      - { "prop": "a", "httpParametersType": "PARAMETER", "value": "1" }
      - { "prop": "b", "httpParametersType": "PARAMETER", "value": "2" }
      - {
          "prop": "Content-Type",
          "httpParametersType": "header",
          "value": "test",
        }
    http_check_condition: "STATUS_CODE_CUSTOM"
    condition: "404"