Kyle Brooks created AIRFLOW-3331:
------------------------------------

             Summary: Add JsonHttpOperator to push JSON HTTP responses to xcoms
                 Key: AIRFLOW-3331
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-3331
             Project: Apache Airflow
          Issue Type: New Feature
          Components: operators
            Reporter: Kyle Brooks


For HTTP REST APIs that return JSON, it would be nice to be able to push the 
decoded dictionary to xcoms instead of the undecoded JSON string.

I'm thinking something like this would work:

 
{code:java}
from airflow.operators.http_operator import SimpleHttpOperator
import json

class JsonHttpOperator(SimpleHttpOperator):
    def execute(self, context):
        response = super(JsonHttpOperator, self).execute(self, context)
        if response is not None:
            return json.loads(response){code}
Then, in a template you could use the dictionary instead of having to decode 
the JSON first:

{\{ task_instance.xcom_pull(task_ids='dict_xcom')['key'] }}

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to