为什么在HttpClient中没有对PATCH的开箱即用支持?

时间:2018-09-26 09:27:08

标签: c# asp.net-core .net-core

我正在使用内置的Httpclient通过PATCH请求来调用端点。

实施我们自己的扩展方法来做到这一点是微不足道的,并且这个问题已经问了很多遍了。

为什么框架团队没有在PatchAsync上添加HttpClient方法,甚至没有在Patch上添加HttpMethod属性?

我担心的是,Patch是当今非常普遍的用例,如果他们没有包含Patch,可能是我遗漏了某些东西,我真的不应该这样做吗?

为简单起见而道歉,但在请求API团队将PATCH端点更改为PUT以仅使用内置功能而不是为此创建扩展方法之间,我感到很痛苦。

我的问题不是关于如何实现这一点,这就是为什么它不是内置的,以及在实施扩展和使用PATCH而不是我在框架中内置的任何其他内容时是否可能给我带来一些警告。

1 个答案:

答案 0 :(得分:1)

由于HTTP方法集为open ended,因此它们不一定为每个HTTP方法都提供特定的.NET方法-例如也没有OptionsAsync。对于任何没有专用特定方法的方法,SendAsync就是 1 的意思。

如果PatchAsync是您的常用情况,您始终可以编写一个称为SendAsync的扩展方法来包装PATCH调用。


1 ,以及当您使用带有提供的.NET方法的HTTP方法时,通过专用方法的重载来指定您不可用的选项。