【问题标题】:Questions with making calls to an API调用 API 的问题
【发布时间】:2019-11-25 05:53:29
【问题描述】:

我一直致力于为工作板创建 CLI gem。我一直在设置我的 API 类,但我一直在努力让它在成功调用方面正常工作;我正在使用 HTTParty 进行解析。当我对此进行测试时,它不断给我一个“[]”的方法错误。我已经检查了所有内容,确保语法正确,但在找出似乎破坏这一点的过程中遇到了困难。这是我创建的列出特定板上所有工作的方法:

def all_jobs_call
  url = "https://boards-api.greenhouse.io/v1/boards/flatironschoolcareers/jobs"
  response = HTTParty.get(url)
  response["absolute_url"]["location"]["metadata"]["id"]["title"].each do |job|
    absolute_url = job["absolute_url"]
    location = job["location"]
    metadata = job["metadata"]
    id = job["id"]
    title = job["title"]
  end
end

我将不胜感激任何关于我可能做错了什么或我是否遗漏了一些明显的事情的见解。谢谢!

【问题讨论】:

    标签: ruby httparty


    【解决方案1】:

    您从https://boards-api.greenhouse.io/v1/boards/flatironschoolcareers/jobs 获得的 JSON 响应如下所示:

    {
      "jobs": [
        {
          "absolute_url": "https://boards.greenhouse.io/flatironschoolcareers/jobs/4460392002",
          "internal_job_id": 4375855002,
          "location": {
            "name": "New York, NY"
          },
          "metadata": [
            {
              "id": 4019377002,
              "name": "Employment Type",
              "value": "Full-time",
              "value_type": "single_select"
            },
          ...
    

    HTTParty 将该响应转换为 Ruby 对象。所以就像在那个 JSON 响应中一样,response 有一个顶级的 "jobs" 键,其中包含一组作业。

    为了获得你将使用的第一份工作:

    response["jobs"][0]
    #=> {"absolute_url"=>"https://boa...", "internal_job_id"=>4375855002, ...}
    

    得到它是absolute_url:

    response["jobs"][0]["absolute_url"]
    #=> "https://boards.greenhouse.io/flatironschoolcareers/jobs/4460392002"
    

    并遍历您在数组上调用each 的所有作业,即:

    response["jobs"].each do |job|
      puts job["absolute_url"]
    end
    

    输出:

    https://boards.greenhouse.io/flatironschoolcareers/jobs/4460392002
    https://boards.greenhouse.io/flatironschoolcareers/jobs/4460383002
    https://boards.greenhouse.io/flatironschoolcareers/jobs/4472889002
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-10
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 2019-10-31
      相关资源
      最近更新 更多