我正在使用水管工在R中编写API ,理想情况下将使用在POST上接收到的JSON。但是我无法使端点POST示例以这种方式工作,因此我可能缺少明显的东西。
使用示例URL和Curl,我可以做到以下几点而不会出现问题:
curl -i -X POST http://plumber.tres.tl/append/append -d "val=50"
但是示例的呈现方式:
POST {val: 50} -> http://plumber.tres.tl/append/append
建议也允许使用JSON。所以我尝试了:
curl -H "Content-Type: application/json" -X POST -d '{"val":50}' http://plumber.tres.tl/append/append
为了确保UTF-8编码而进行的所有变体,"
主要基于我在Stackoverflow上有关帖子的内容,注释掉以及其他各种组合。例如:
curl -i -X POST -H "Content-Type: application/json" http://plumber.tres.tl/append/append -d '{"val":50}'
curl -i -X POST -H "Accept: application/json" -H "Content-Type: application/json" http://plumber.tres.tl/append/append -d '{\"val\":50}'
curl -i -X POST -H "Content-Type: application/json;charset=UTF-8" http://plumber.tres.tl/append/append -d '{"val":50}'
还使用文件并尝试将其发布为@my.json
无效。
也许这是Plumber
侧面:我希望给定工具集来序列化输出,我也可以陈述输入的期望序列化。但是我还没有找到该怎么做的方法。
事实证明,这是水管工一个相对简单的问题。该函数依次postBodyFilter
调用和,并且尚未检查JSON格式(例如,基于initial和end )。parseQS
&
=
{
}
由于jsonlite
已经由软件包导入,因此我提出了一个小小的更改,以在请求请求53中添加基本的JSON支持。
按照自述文件中的示例,添加此修补程序后,以下内容将起作用:
curl --data '{"a":4, "b":5}' http://localhost:8000/sum
由于调用已开始jsonlite
以解析查询字符串的内容,因此也应该可以使用更复杂的JSON,但我尚未对此进行测试。
更新:现在,该版本已合并到plumber项目中,如果您使用来从github安装该版本devtools::install_github("trestletech/plumber")
,或者在CRAN上获得0.3.1版本后通过传统安装进行安装,它将为您工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句