【rails】HTTPClient를 사용해 외부 API에 접속하는 방법(QiitaAPI에 접속해 보았다)
5261 단어 HttpClientRailsHTTP젬Qiita
소개
rails로 외부 API에 접속할 때는 gem의 HTTPClient를 사용합니다.
이번에는 예로 Qiita의 API에 연결하여 기사 목록을 가져옵니다.
HTTPClient 설치
Gemfile
gem 'httpclient'
터미널
$ bundle install
route.rb에 추가
엔드포인트는
/api/qiita
입니다.routes.rb
Rails.application.routes.draw do
namespace :api do
get '/qiita' to: 'qiita#index'
end
end
QiitaAPI에 연결(Controller)
첫째, 가장 기본적인 형태입니다. (header 나 query를 지정하지 않는 get 요청)
controllers/api/qiita_controller.rb
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를 지정하는 경우입니다.
controllers/api/qiita_controller.rb
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 개요(비공식)
Reference
이 문제에 관하여(【rails】HTTPClient를 사용해 외부 API에 접속하는 방법(QiitaAPI에 접속해 보았다)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shungo_m/items/0a56610d944e4458dedd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)