在 R 中为 curl -X POST 编写一个正确的 API 请求

Writing a proper API request in R for curl -X POST

我是这个话题的新手,以前看过几个SO答案,但还是想不通。

正在尝试访问 API,使用 R:

curl -X POST "http://api.spending.gov.ua/api/rest/1.0/transactions" -H "accept: application/json" -H 
"Content-Type: application/json" -d "{ \"payers_edrpous\": [ \"string\" ], \"recipt_edrpous\": [ 
\"string\" ], \"startdate\": \"string\", \"enddate\": \"string\", \"regions\": [ 0 ]}"

我现在的阶段

library(httr)
r <- GET("http://api.spending.gov.ua/api/rest/1.0/transactions")

status_code(r)

这有效,我有 200 回复。 但是如何编写查询来获取 json 格式的数据呢?感谢任何提示。

来自@dcruvolo 的 link 很有帮助。

为了让它起作用,您需要从一些有效值开始。从问题中的 API link 中,有一个测试页面可以用来测试提交:

可以替换测试值,然后按 "Execute" 按钮提交值。上面评论中的尝试值,足够有效不会导致错误,但也没有 return 任何有效结果。

要在 R 中执行 POST,这里有一个示例:

posting<-'{
  "payers_edrpous": [
    "00013534"
  ],
  "recipt_edrpous": [
    ""
  ],
  "startdate": "2020-03-01",
  "enddate": "2020-03-28",
  "regions": [
    0
  ]
}'

library(httr)
r <- POST("http://api.spending.gov.ua/api/rest/1.0/transactions", body=posting, 
          httr::add_headers(`accept` = 'application/json'), 
          httr::content_type('application/json')) #encode="json"
content(r)

发布是要传递的 JSON 正文,请根据需要进行编辑。所有变量都是字符串,除了 "regions" 它是一个整数,不确定有效范围是多少。

抱歉,我已经尽力了。祝你好运。