在 Postman 中使用 HTTP PATCH 动词更新数据库表

use*_*874 5 c# http azure http-patch postman

我正在开发一个 Azure 移动服务,其中包含一个带有 Patch 方法的表控制器:

public Task<User> PatchUser(string id, Delta<User> patch)
{
    return UpdateAsync(id, patch);
}
Run Code Online (Sandbox Code Playgroud)

我在本地托管我的移动服务并想测试 Patch 的工作方式。我正在使用 Postman 来做到这一点,但我不断收到 HTTP 错误 400,并显示以下响应:

{ "message": "HTTP 请求不包含有效的实体主体。请确保请求中存在实体主体和关联的 Content-Type 标头。" }

这些是我附加到 HTTP PATCH 请求的标头: 在此处输入图片说明

这是请求正文: 在此处输入图片说明

我在这个网站上读到POST 请求需要包含这样的正文:[ { "op": "replace", "path": "/email", "value": "new.email@example.org" } ]

如果我提供您可以在下面的屏幕截图中看到的请求正文,我仍然会得到相同的响应:

在此处输入图片说明

这是表控制器所基于的类 User:

public class User : EntityData
{
    public string Gender { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我应该如何通过 Postman 正确发送补丁请求?

ast*_*kov 2

您应该使用第二个请求,但使用小写的g而不是大写的G发送“性别”属性。这就是您在模型中定义此属性的方式,JSON 序列化器/反序列化器默认区分大小写。