【rails】HTTPClientを用いて外部APIに接続する方法(QiitaAPIに接続してみた)
はじめに
railsで外部APIに接続する際にはgemのHTTPClientを使用します。
今回は例としてQiitaのAPIに接続して、記事一覧を取得(get)してみます。
HTTPClientをインストール
gem 'httpclient'
$ bundle install
route.rbに追加
エンドポイントは /api/qiita
とします。
Rails.application.routes.draw do
namespace :api do
get '/qiita' to: 'qiita#index'
end
end
QiitaAPIに接続する(Controller)
まず、最も基本的な形です。(headerやqueryを指定しないgetリクエスト)
class Api::QiitaController < ApplicationController
# HTTPClientを呼び出す
require 'httpclient'
def index
url = "https://qiita.com/api/v2/items" # URLを設定
client = HTTPClient.new # インスタンスを生成
response = client.get(url) # Getリクエスト
render json: JSON.parse(response.body) # 結果をjsonにパースして表示
end
end
http://localhost:3000/api/qiita にアクセスするとこんな感じでデータの一覧がjsonで返ってきます。
整形していないので非常に見づらいですね。
次にheaderやqueryを指定する場合です。
class Api::QiitaController < ApplicationController
# HTTPClientを呼び出す
require 'httpclient'
def index
url = "https://qiita.com/api/v2/items"
header = { Authorization: "Bearer xxxxx" } # 例) ヘッダーに"Bearer xxxxx"を付与
query = { page: 1, per_page: 20 } # 例) 1ページ目、1ページごとのデータ取得数を20件にするquery
client = HTTPClient.new
response = client.get(url, header: header, query: query) #headerとqueryを指定
render json: JSON.parse(response.body)
end
end
終わりに
今回はgetリクエストのみだけの説明にしましたが、HTTPClientではPostなど他のリクエストも送れるので調べてみてください。
QiitaのAPIの詳細は下記を参照しました。
Qiita API v2 documentation - Qiita:Developer
Qiita API v2 の概要(非公式)
Author And Source
この問題について(【rails】HTTPClientを用いて外部APIに接続する方法(QiitaAPIに接続してみた)), 我々は、より多くの情報をここで見つけました https://qiita.com/shungo_m/items/0a56610d944e4458dedd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .