python拥抱apireturn自定义http代码
python hug api return custom http code
找了好久,继续问:
https://gitter.im/timothycrosley/hug
我找不到解决方案。
我正在寻找的是一种 return 自定义 http 代码的方法,比如说 204,以防在 get
端点满足条件。
路由问题的解释是here
但我似乎无法找到一种方法来 return 除了 200 之外的任何其他代码,响应为空
在他们的回购中找到了一个例子 (https://github.com/berdario/hug/blob/5470661c6f171f1e9da609c3bf67ece21cf6d6eb/examples/return_400.py)
import hug
from falcon import HTTP_400
@hug.get()
def only_positive(positive: int, response):
if positive < 0:
response.status = HTTP_400
基于 jbasko 的回答,hugs 似乎期望状态是 HTTP 状态代码的文本表示。
因此,例如:
>> print (HTTP_400)
Bad Request
因此,对于更完整的示例,您可以使用所有响应的字典:
STATUS_CODES = {
100: "100 Continue",
101: "101 Switching Protocols",
102: "102 Processing",
200: "200 OK",
201: "201 Created",
...
}
response.status = STATUS_CODES.get(200) # 200 OK
response.status = STATUS_CODES.get(404) # 404 Not Found
# etc
...
我整理了一份清单,列出了所有 status_codes in this gist
您可以引发 falcon HTTPError,例如:
raise HTTPInternalServerError
查看更多详情:https://falcon.readthedocs.io/en/stable/api/errors.html
除了 jbasko 和 toast38coza 答案之外,falcon 中还有一个实用函数来获取数字状态代码的文本表示:
falcon.get_http_status(200)
https://falcon.readthedocs.io/en/stable/api/util.html#falcon.get_http_status
所以:
import hug
import falcon
@hug.get()
def only_positive(positive: int, response):
if positive < 0:
response.status = falcon.get_http_status(400)
找了好久,继续问: https://gitter.im/timothycrosley/hug 我找不到解决方案。
我正在寻找的是一种 return 自定义 http 代码的方法,比如说 204,以防在 get
端点满足条件。
路由问题的解释是here
但我似乎无法找到一种方法来 return 除了 200 之外的任何其他代码,响应为空
在他们的回购中找到了一个例子 (https://github.com/berdario/hug/blob/5470661c6f171f1e9da609c3bf67ece21cf6d6eb/examples/return_400.py)
import hug
from falcon import HTTP_400
@hug.get()
def only_positive(positive: int, response):
if positive < 0:
response.status = HTTP_400
基于 jbasko 的回答,hugs 似乎期望状态是 HTTP 状态代码的文本表示。
因此,例如:
>> print (HTTP_400)
Bad Request
因此,对于更完整的示例,您可以使用所有响应的字典:
STATUS_CODES = {
100: "100 Continue",
101: "101 Switching Protocols",
102: "102 Processing",
200: "200 OK",
201: "201 Created",
...
}
response.status = STATUS_CODES.get(200) # 200 OK
response.status = STATUS_CODES.get(404) # 404 Not Found
# etc
...
我整理了一份清单,列出了所有 status_codes in this gist
您可以引发 falcon HTTPError,例如:
raise HTTPInternalServerError
查看更多详情:https://falcon.readthedocs.io/en/stable/api/errors.html
除了 jbasko 和 toast38coza 答案之外,falcon 中还有一个实用函数来获取数字状态代码的文本表示:
falcon.get_http_status(200)
https://falcon.readthedocs.io/en/stable/api/util.html#falcon.get_http_status
所以:
import hug
import falcon
@hug.get()
def only_positive(positive: int, response):
if positive < 0:
response.status = falcon.get_http_status(400)