Этот вызов curl работает для создания новой капли в Digital Ocean.
curl -X POST "https://api.digitalocean.com/v2/droplets" \
-d '{"name":"test3","region":"nyc2","size":"512mb","image":5562742,"ssh_keys":[89103]}' \
-H "Authorization: Bearer $TOKEN"
-H "Content-Type: application/json"
Однако у меня возникли проблемы с тем, чтобы запрос httr::POST()
работал только тогда, когда задан параметр ssh_keys
. В приведенном выше методе параметр ssh_keys
, если он задан, должен быть массивом.
Я предположил, что список параметров может быть передан в тело, например, где параметр ssh_keys
находится внутри списка
args <- list(name="test3", region="nyc2", size="512mb", image="5562742", ssh_keys=list(891111))
POST(url, config=auth, body=args)
Я предполагаю, что это то, что происходит внутри:
jsonlite::toJSON(args)
[1] "{ \"name\" : [ \"test3\" ], \"region\" : [ \"nyc2\" ], \"size\" : [ \"512mb\" ], \"image\" : [ \"5562742\" ], \"ssh_keys\" : [ [ 89103 ] ] }"
Что, я думаю, сработает, но, возможно, это не то, что происходит? Игра с параметром encode
в POST
не помогает.
Вызов curl работает с терминала, но с помощью httr::POST()
я продолжаю получать сообщение об ошибке
Вы указали неверные идентификаторы ключа ssh для создания дроплета.