You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Bjorn Olsen (Jira)" <ji...@apache.org> on 2019/12/23 09:38:00 UTC

[jira] [Created] (AIRFLOW-6327) http_hook: Add json requests payload

Bjorn Olsen created AIRFLOW-6327:
------------------------------------

             Summary: http_hook: Add json requests payload
                 Key: AIRFLOW-6327
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-6327
             Project: Apache Airflow
          Issue Type: Improvement
          Components: hooks
    Affects Versions: 1.10.6
            Reporter: Bjorn Olsen
            Assignee: Bjorn Olsen


Python requests library allows a user to send json-encoded Python objects by making use of the "json=" parameter to a request.

This handles JSON encoding of the payload and setting the correct content type header.

Example:
{code:python}
response = requests.post('https://httpbin.org/post', json={'key':'value'})
json_response = response.json() 
json_response['data'] '{"key": "value"}' 
json_response['headers']['Content-Type'] 'application/json'
{code}
http_hook.run() does not yet have the json= parameter which is inconvenient as then we have to pass the "data=" parameter using json.dumps and specify the correct headers.

It would be better if we can just do something like the below and let the Requests library ensure the request is valid:
{code:python}
obj = {'a':1, 'b': 'abc', 'c': [1, 2, {"d":10}]}
response = hook.run(
     endpoint,
     json=obj)
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)