【Rubyの基本】APIで記事を検索してみる

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

Qiitaの記事を検索できるプログラムを作ってみる

QiitaのAPIドキュメントには以下のように記載がある

投稿に関するAPIを取得、アクセスすると返ってくる情報が載っている

  • rendered_body
  • body
  • coediting
  • comments_count 等

記事の一覧を作成日時の降順で返す

GET /api/v2/items ←この部分がurlに入る

RubyのコードでAPIを読み込むための記述

# ↓はRubyで使えるクラスだが、読み込まないといけない
require 'uri'
require 'net/http'

# Qiitaの投稿情報を取得するAPIのurlを貼り付ける
url = "https://qiita.com/api/v2/items"

# URIクラスを使用する
uri = URI.parse(url)
# urlにアクセスする
res = Net::HTTP.get(uri)

puts res


実行すると、APIの情報がみっちり返ってくる

↓返ってきた「res」は文字列である

puts res.class
# String

配列に書き換えるための記述

require 'json'
res = JSON.parse(res)

puts res.class
# Array

文字列から配列に書き換わったので、データを抜き取ったり加工したり出来る!


データから必要な部分だけ抜き出す

情報が多すぎるので、↓だけ抜き出す

  • 記事のタイトル
  • 投稿者名
res.each do |item|
   puts "#{item['title']} by #{item['user']['name']}"
end
# 「タイトル by ユーザー名」の形ですべて返ってくる

検索できるようにする(検索クエリ)

query(検索クエリ)

 → プログラミングでの「検索ワード」という意味

QiitaのAPIドキュメントより↓

GET /api/v2/items?page=1&per_page=20&query=qiita+user%3AQiita HTTP/1.1
Host: api.example.com

上記コードの「query=qiita+user」の箇所が検索クエリとなる

例)「Ruby」に関わる記事を検索したい

# urlを↓に書き換えて実行
url = "https://qiita.com/api/v2/items?query=Ruby"

「items」以降に、「?query=Ruby」を追加する


#DAY30