【发布时间】:2017-08-01 21:53:58
【问题描述】:
在一个被注解为一个 hug api 调用的函数中,我怎样才能获得该调用的标头?
【问题讨论】:
在一个被注解为一个 hug api 调用的函数中,我怎样才能获得该调用的标头?
【问题讨论】:
简单、正常和最快的方法:如果 request 和 body (POST) 作为参数 (https://github.com/timothycrosley/hug/issues/120) 存在,Hug 会提供它们。
@hug.get('/headers', output=hug.output_format.json)
def headers(request, header_name: hug.types.text=None):
if header_name is None:
return request.headers
return {header_name: request.get_header(header_name)}
【讨论】:
创建自定义指令 [1]:
@hug.directive()
def headers(request=None, **kwargs):
"""Returns the request"""
return request and request.headers
要使用它,请在前面加上魔术hug_ 前缀:
@hug.post('/sns/test')
def sns_test(hug_headers):
message_type = 'X-AMZ-SNS-MESSAGE-TYPE'
is_subscription = message_type in hug_headers \
and hug_headers[message_type] == 'SubscriptionConfirmation'
return {'is_sub': is_subscription}
【讨论】: