当前位置: 首页 > 知识库问答 >
问题:

POST/补丁工作在环回资源管理器,但不是邮递员

丌官瀚
2023-03-14

我正在构建一个Angular应用程序,它使用由NodeJS和LoopBack构建的REST应用程序接口。当试图创建新记录时,我从我的应用程序和邮递员中都得到了一个奇怪的错误。(属性名称已更改以保护无辜)

The `ObjectName` instance is not valid. 
Details: `id` can't be blank (value: undefined); 
`property2` can't be blank (value: undefined); 
`property3` can't be blank (value: undefined).

以下是我发布的内容:

{
    "id":0,
    "property2":"foo",
    "property3":"bar",
    "property4":"R"
}

最奇怪的是,当我试图通过环回API资源管理器运行它时,它运行得很好。我对补丁方法也有同样的问题。

有什么想法吗?

谢谢

共有1个答案

燕翔飞
2023-03-14

我找到了原因。在我之前使用过的API中,后端是用一个模型绑定器设置的,该绑定器将应用它需要的属性,并丢弃它没有的属性。所以我通常用POSTs/put/etc发送整个对象。在本例中,我们没有这个,所以它抛出了这个奇怪的错误。一旦我在我的角度自动映射器中添加了一种方法,可以将对象剥离到仅需要的部分,它就工作得很好。

最后,我本可以找出错误信息是否更好。

 类似资料:
  • 我正在使用Gmail Api获取收件箱中所有未读邮件,对其进行一些操作,然后将邮件标记为已读。 但是,当我做以下任何事情时: 我收到错误: 权限不足[403]错误[消息[权限不足]位置[-]原因[不足权限]域[全局]] 问题是,我打开Api explorer并运行相同的请求,它运行得很好。所以我不确定我做错了什么。 这可以工作并将电子邮件标记为未读。

  • 使用JSONAPI1.0标准设计API,没有PUT方法。只有用于创建资源的POST方法和用于部分更新的修补程序。我们有这样的用例:用户可以向服务器发送请求,如果资源不存在,则必须创建资源,否则必须更新资源。RFC将这种方法描述为PUT。接下来引用提到的RFC5789标准补丁有信息: “如果Request-URI没有指向现有资源,服务器可能会创建一个新资源,具体取决于补丁文档类型(是否可以在逻辑上修

  • 我试图完全清理资源组在Azure。 删除资源组不是选项(访问权限:参与者,而不是所有者) 做到这一点的最优雅和明显的方法(也在一些文章中描述)是使用“空”部署模板执行完整的部署: 删除SQL Server开始“...”接受“...”失败“...”开始“...”接受“...”失败“... 你想到主意了。 其他时候效果很好。 您将得到数据库删除的无限循环“开始..接受..失败..开始..接受..失败.

  • 资源管理器 是我们用来访问和管理项目资源的工作区域。在开始制作游戏时,添加资源到这里通常是必须的步骤。您可以使用 HelloWorld 模板新建一个项目,就可以看到 资源管理器 中包含了一些基本资源类型。 界面介绍 资源管理器 将项目资源文件夹中的内容以树状结构展示出来,注意只有放在项目文件夹的 assets 目录下的资源才会显示在这里。关于项目文件夹结构说明请阅读 项目结构 一节。下面我们介绍各

  • 资源管理器 面板是我们用来访问和管理项目资源的重要工具。 在开始制作游戏时,导入资源 通常是必须的步骤。您可以在新建项目时使用模板项目,新建步骤完成后会自动打开项目,默认布局中包含了 资源管理器 面板,里面有两个资源库,简称 DB,assets 和 internal, internal 属于默认的内置资源,内置资源可以复制出来,但不能直接修改。 面板操作预览 面板介绍 资源管理器 面板上主要有 头

  • 我试图击中一个登录API,这也需要一些头部和主体。在最新版本的改版中,我尝试用注释或编程方式两种方式发送标题,但每次它都说错误代码417,异常失败,错误主体为空,但在邮递员中,我得到了正确的修改。