PATCH 方法将 NULL 设置为值而不是值

Posted

技术标签:

【中文标题】PATCH 方法将 NULL 设置为值而不是值【英文标题】:PATCH method set NULL to values instead of the value 【发布时间】:2021-06-26 11:48:55 【问题描述】:

如何通过 Postman 在 json 中插入多行?

我试过这个:

[
    "name": "Choix 1",
    "question": "Question 1"
,

    "name": "Choix 3",
    "question": "Question 44"

]

编辑。 我在文档中看到这是不可能的。

我在我的 API 中添加了一个非规范化组,现在我可以同时添加多个数据,这要归功于 PATCH 方法。但是现在的问题是,当我第二次添加时,它会删除之前的一部分数据。

示例:在“question_study”中,我的“question_id”156、157、160 没有任何“study_ID”,而在我向他发送一个具有其 ID 号的新问题 (161) 之前他们有一些。 ..如果我一次给他发几个,他们都有一个study_id,但是如果我重试,“study_id”就会消失....

axios
        .patch('http://127.0.0.1:8000/api/studies/' + this.idStudy, 
             data, 
              headers:  'Content-Type': 'application/merge-patch+json' )
        .then((result)=>
          console.log(result)
        )
        .catch(error => 
          console.log("ERRRR:: ",error.result.data);
        );

在我的控制台 console.log(result) 中:标头内容类型为“application/ld+json; charset=utf-8”,而我将“application/merge-patch+json”放入我的请求中。

这是我的数据库的一部分:

【问题讨论】:

请为您正在与之交互的资源提供@ApiResource 配置。 有一个issue about batch operations 对不起,我是初学者,所以我不明白它如何帮助我解决我的问题... 【参考方案1】:

如何通过 Postman [into ApiPlatform] 在 json 中插入多行?

不是。

至少,不使用从 ApiPlatform 生成的默认路由作为其资源。文档在这里:https://api-platform.com/docs/core/operations/

任何生成的 POST 路由都只会接受一个资源。

如果您希望能够进行批量插入,则必须创建一个自定义端点,并且可能还需要一个集合反规范化器。

【讨论】:

是的,我尝试使用非规范化组,但仍然有问题。我编辑了我的第一条消息以了解 我编辑了我的第一条消息,因为问题很奇怪 你有什么想法吗?

以上是关于PATCH 方法将 NULL 设置为值而不是值的主要内容,如果未能解决你的问题,请参考以下文章

当未设置可选字段时,大象鸟库生成字段的默认值而不是 null

猫鼬返回默认值而不是空值

使用viewData值而不是ModelData手动设置表单数据

在 Spring MVC 中将值设置为 NULL 而不是空字符串

查找唯一 ID 的最早日期,然后将单独的因子设置为值

SQL-Server:继续最后一个值而不是 NULL,分区不正确