用于指定CSV分隔符和选项的HTTP标头

时间:2014-06-25 10:45:10

标签: rest csv http-headers content-type

除了JSON和XML之外,我希望我的REST服务能够接受CSV文件。

我会接受HTTP PUT请求,例如:

PUT /myservice/user
Content-Type: text/csv; charset=utf-8

"tomas";"1980-01-01"
"george";"1981-02-02"

我希望能够为我的CSV文件接受不同的分隔符和其他格式选项。最好不使用查询字符串,这似乎不是适当的工具。我知道我可以创建自己的标题,例如:

PUT /myservice/user
Content-Type: text/csv; charset=utf-8
CSV-Delimiter: ,
CSV-Options: merge-duplicates, no-header-row

或者我可以将自己的参数发明给Content-Type(如果允许的话)(毕竟它是内容类型的一部分,就像使用的字符集一样):

PUT /myservice/user
Content-Type: text/csv; charset=utf-8; delimiter=,; options=no-header-row

处理此问题的正确方法是什么?是否有传统上使用的HTTP标头?

1 个答案:

答案 0 :(得分:1)

对于" no-header-row"参数already exists:[header =" present" |"缺席"]。

至于向内容类型标题添加新参数:

  

新参数不应被定义为引入新参数的方式      标准树中注册的类型的功能,虽然是新的      可以添加参数以传达其他信息      否则不会改变现有功能。这方面的一个例子      将是一个"版本"用于指示修订级别的参数      外部规范,如JPEG。鼓励类似的行为      对于在供应商或个人树中注册的媒体类型,但不是      必需的。