gpt4 book ai didi

rest - 为什么warp对于错误键入的参数返回“HTTP 405方法不允许”?

转载 作者:行者123 更新时间:2023-12-03 11:43:51 26 4
gpt4 key购买 nike

考虑以下经纱中的路线规范:

let read_book_route = warp::path!("book" / Address)
.and(warp::get())
.and(warp::any().map(move || read_book_state.clone()))
.and_then(handler::read_book_handler);
如果URL中提供了非 Address,warp会自动返回HTTP 405 Method Not Allowed状态码:
$ curl -i http://example.com/book/not_a_valid_address
HTTP/1.1 405 Method Not Allowed
content-type: text/plain; charset=utf-8
content-length: 23
date: Thu, 25 Feb 2021 06:22:20 GMT

HTTP method not allowed
为什么使用HTTP 405?为什么不使用HTTP 400或任何其他客户端错误?

最佳答案

path! 可以理解为 path() param() 的序列,由 end() 覆盖(默认情况下),并且根据param()的文档:

If the value could not be parsed, rejects with a 404 Not Found.


但是 AFAIK这是 Rejection ,这意味着warp然后将尝试使用此过滤器的下一个 or过滤器,并获得其拒绝。
由于您没有提供最小的复制示例并且也不显示所有代码,因此我希望还有其他过滤器,而且我也不知道扭曲处理是如何组合拒绝的,也不知道您是否拥有例如一个中间 recover ,它可以拦截 not_found将产生的 param(),并让其他拒绝优先。

关于rest - 为什么warp对于错误键入的参数返回“HTTP 405方法不允许”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66363454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com