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] [Updated] (AIRFLOW-6327) http_hook: Accept json= parameter for payload

     [ https://issues.apache.org/jira/browse/AIRFLOW-6327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bjorn Olsen updated AIRFLOW-6327:
---------------------------------
    Summary: http_hook: Accept json= parameter for payload  (was: http_hook: Add json requests payload)

> http_hook: Accept json= parameter for 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
>            Priority: Minor
>
> 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)