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

如何使用补丁方法更新文件

谯德佑
2023-03-14

我有一个包含一些图像实体,我想使用HttpPatch方法更新它。

要创建新样式,我使用以下方法:

[HttpPost]
public async Task<IActionResult> CreateStyleAsync([FromForm] StyleFiles styleFiles, [FromForm] StyleDTO style)

现在我正在尝试创建一个方法来使用HttpPatch方法更新这个样式。我试过了,但是没有选择在Swagger上上传文件:

[HttpPatch("{styleId}")]
public async Task<IActionResult> PatchStyleAsync([FromForm] StyleFiles styleFiles, Guid styleId, [FromBody] JsonPatchDocument styleDto)
public class StyleDTO
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string PreviewImage { get; set; }
}

这是StyleFiles类:

public class StyleFiles
{
    public IFormFile Image { get; set; }
}

我正在考虑制作两个单独的endpoint,一个用于更新文件,另一个用于更新实体本身。但我不想那样做。

共有1个答案

微生承业
2023-03-14

[FromForm][FromBody]不能同时用作参数。因为它们的内容类型不同。[FromForm]将序列化表单中的值,但[FromBody]将传递json数据。因此,您必须制作两个单独的endpoint。

我不知道stylefilesstyledto之间是否存在冲突。您还可以创建单独类来集成它们。

public class ViewModel
{
    public StyleDTO styleDTO { get; set; }
    public StyleFiles styleFiles { get; set; }
}

控制器

    [HttpPatch("{styleId}")]
    public async Task<IActionResult> PatchStyleAsync([FromForm] ViewModel viewModel)
    {
        return Ok();
    }
 类似资料:
  • 我有一个项目,我正在使用Spring MVC Jackson构建REST服务。假设我有以下java实体 有时候,我只是想更新布尔值,我不认为发送带有大字符串的整个对象只是为了更新一个简单的布尔值是个好主意。所以,我考虑过使用PATCH HTTP方法只发送需要更新的字段。所以,我在我的控制器中声明了以下方法: 问题是:我如何知道哪些字段需要更新?例如,如果客户端只想更新布尔值,我将得到一个带有空“a

  • 问题内容: 我正在尝试使用富有想象力的Mock测试库测试Django应用程序时模拟某些东西。我似乎无法完全正常工作,我正在尝试这样做: 我究竟做错了什么? 问题答案: 啊,我对在哪里应用该补丁装饰感到困惑。固定:

  • Git 中的一些命令是以引入的变更即提交这样的概念为中心的,这样一系列的提交,就是一系列的补丁。 这些命令以这样的方式来管理你的分支。 git cherry-pick git cherry-pick 命令用来获得在单个提交中引入的变更,然后尝试将作为一个新的提交引入到你当前分支上。 从一个分支单独一个或者两个提交而不是合并整个分支的所有变更是非常有用的。 在 变基与拣选工作流 一节中描述和演示了

  • 如何使用补丁方法更新FOS用户的详细信息。所以当我在Json中传递部分细节时,只更新这些细节。 用户实体 我的实体没有更新。我做错了什么?

  • 之前各个章节版本库间的交互都是通过git push和/或git pull命令实现的,这是Git最主要的交互模式,但并不是全部。使用补丁文件是另外一种交互方式,适用于参与者众多的大型项目进行分布式开发。例如Git项目本身的代码提交就主要由贡献者通过邮件传递补丁文件实现的。作者在写书过程中发现了Git的两个bug,就是以补丁形式通过邮件贡献给Git项目的,下面两个链接就是相关邮件的存档。 关于Git文

  • 当我尝试点击具有方法的请求时,我收到以下错误:PATCH 使用JMeter版本:-apache-JMeter-5.4.1 如果我能得到专家的帮助来解决他们的问题,那将会很有帮助。 谢谢