首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让R管道工API在POST上使用JSON

让R管道工API在POST上使用JSON
EN

Stack Overflow用户
提问于 2016-07-21 14:08:05
回答 1查看 6.2K关注 0票数 4

我正在使用水管工编写R中的JSON和API,理想情况下,它将在POST中使用它收到的JSON。但是我不能让端点POST示例那样工作,所以我可能遗漏了一些显而易见的东西。

使用示例URL和Curl,我可以在没有问题的情况下执行以下操作:

代码语言:javascript
运行
复制
curl -i -X POST http://plumber.tres.tl/append/append -d "val=50" 

但是,给出的例子是:

代码语言:javascript
运行
复制
POST {val: 50} -> http://plumber.tres.tl/append/append

建议也允许使用JSON。所以我试过:

代码语言:javascript
运行
复制
 curl -H "Content-Type: application/json" -X POST -d '{"val":50}' http://plumber.tres.tl/append/append

和所有的变化,以确保UTF-8编码,注释掉"和其他各种组合,主要是基于我在这里发现的关于Stackoverflow关于post。例如:

代码语言:javascript
运行
复制
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方面:我希望在给定工具集来序列化输出的情况下,我也可以声明预期的输入序列化。但我还没找到怎么做的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-24 20:43:14

对于水管工来说,这是一个相对简单的问题。函数postBodyFilter调用parseQS,该函数依次在&=上拆分,并且尚未检查JSON格式(例如,基于初始{和结束})。

由于jsonlite已经由包导入,所以我建议在拉动请求#53中添加基本的JSON支持。

按照自述文件中的示例,添加此修补程序后,以下内容将工作:

代码语言:javascript
运行
复制
 curl --data '{"a":4, "b":5}' http://localhost:8000/sum

由于调用是在jsonlite上解析查询字符串的内容,所以也可以使用更复杂的JSON,但我还没有对其进行测试。

Update:它现在已经合并到水管工工程中,如果您使用devtools::install_github("trestletech/plumber")从github安装该版本,或者在0.3.1版本在CRAN上可用时通过传统安装安装,它将为您工作。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38506519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档