Запросить использование HTTParty с ключом API - PullRequest
1 голос
/ 15 марта 2020

Я пытаюсь сделать запрос GET к этому API , который прекрасно работает в POSTMAN. В моем приложении я использую HTTParty для выполнения того же запроса, и мне не удается правильно структурировать запрос, что приводит к возвращению {"statusCode"=>404, "error"=>"Not Found", "message"=>"Not Found"}. Я пробовал много вариантов, но не нашел правильную структуру или наименование параметров. Это для справки, где ENV ["X-CMC_PRO_API_KEY"] - это переменная окружения, в которой хранится мой ключ API.

url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest/'

request = HTTParty.get(url,
  {
    headers: {
    "key": ENV["X-CMC_PRO_API_KEY"],
    "Accept": "application/json"
    },
    data: {
      id: 1
    },
    params: {
      slug: self.slug
    }
  }
)
response = JSON.parse(request.body)

именно так в документации API указывается, что cURL должен быть

curl -H "X-CMC_PRO_API_KEY: apikey" -H "Accept: application/json" -d "id=1" -G https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest

это экраны от POSTMAN, где запрос возвращает правильный ответ. image1 image2

Я благодарен за любой вклад в помощь мне с этим запросом. Я новичок ie, и документы HTTParty не помогли, и я не нашел других подобных примеров.

1 Ответ

1 голос
/ 31 марта 2020

Это сработало для меня

headers = {
  'X-CMC_PRO_API_KEY' => "xxxxxxxxxxxxxxxxxxxxx"
}

url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest'
params = '?&slug=bitcoin'
response = HTTParty.get(url+params,
  :headers => headers
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...