Web services 输入可选参数

Web services 输入可选参数,web-services,rest,http,put,Web Services,Rest,Http,Put,我必须使用PUT作为发送更改的方法来实现web服务。此服务用于更改配置。因此,例如,如果我将{“varA”:true}发送到url/configurationchage它会设置相应的变量,如果我发送{“varB”:true}它会在不影响varA的情况下更改varB 我一直认为,PUT(在谷歌上搜索,似乎我是对的)只是覆盖了资源(如果不存在,则创建资源)。我认为这意味着我必须发送所有变量,否则未发送的变量将被删除。那么,这个web服务的行为正确吗 举例说明 PUT {"varA":true} Re

我必须使用
PUT
作为发送更改的方法来实现web服务。此服务用于更改配置。因此,例如,如果我将
{“varA”:true}
发送到
url/configurationchage
它会设置相应的变量,如果我发送
{“varB”:true}
它会在不影响
varA
的情况下更改
varB

我一直认为,
PUT
(在谷歌上搜索,似乎我是对的)只是覆盖了资源(如果不存在,则创建资源)。我认为这意味着我必须发送所有变量,否则未发送的变量将被删除。那么,这个web服务的行为正确吗

举例说明

PUT {"varA":true}
Resource content: {"varA": true}

PUT {varB:true}
  • 发生:
    资源内容:{“varA”:true,“varB”:true}

  • 我认为应该发生什么:
    资源内容:{“varB”:true}


  • 不,不是。您可能想看看PATCH方法(请参见)

    您自己说过“如果不存在,则创建它”。基本上,对SETVARB的第二次调用是查找用第一次PUT设置的对象(即varA),这样服务器对象就不会同时包含这两个值。