代码之家  ›  专栏  ›  技术社区  ›  Ian Mackinnon

HTTP:部分更新资源的模式(接受空字符串)?

  •  2
  • Ian Mackinnon  · 技术社区  · 14 年前

    如果位置处有唯一ID为36的foo类型资源:

    http://example.com/foo/36
    

    一个foo包含几个变量数据( var1 , var2 等等),其中一些是字符串;

    通过HTTP更新部分资源变量集的首选模式是什么(假定我们希望将某些变量设置为空字符串)?

    (问题是空字符串的表单值是 not considered "successful" by the W3C standard 不需要由浏览器提交。如果没有发送空值,服务器不知道我们想将该变量设置为空字符串。)

    我考虑过以下选项:

    1. POST http://example.com/foo/36 对于具有“successful”值的变量,有一个名称/值对列表和一个额外参数,其中的值是一个逗号分隔的值列表,我们希望将其设置为空字符串。

    2. PUT http://example.com/foo/36/var1;var2;var3 ,指定要作为URI一部分更新的完整值集。任何未作为Put参数接收的指定名称都将设置为空字符串。

    3. 分开发送 对每个变量的请求 http://example.com/foo/36/var1 , http://example.com/foo/36/var2 等等。将每个变量公开为单独的资源(非常明确,但涉及大量请求)。

    但这些对我来说似乎都不是直观的、优雅的或标准的。

    2 回复  |  直到 14 年前
        1
  •  2
  •   manuel aldana    14 年前

    
    POST /foo
    ...
    {"var1":"x","var2":2,"var3":"hello"}
    

    
    PUT /foo/123
    ...
    {"var1":"y","var2":null}
    

        2
  •  0
  •   Diego Sevilla    14 年前