Verwenden Sie den HTTP-Client von gem, wenn Sie mit Rails eine Verbindung zu externen APIs herstellen. Dieses Mal werde ich als Beispiel eine Verbindung zur Qiita-API herstellen und die Artikelliste abrufen.
Gemfile
gem 'httpclient'
Terminal
$ bundle install
Der Endpunkt ist "/ api / qiita".
routes.rb
Rails.application.routes.draw do
namespace :api do
get '/qiita' to: 'qiita#index'
end
end
Erstens die grundlegendste Form. (Anfrage abrufen, ohne Header oder Abfrage anzugeben)
controllers/api/qiita_controller.rb
class Api::QiitaController < ApplicationController
#Rufen Sie HTTPClient auf
require 'httpclient'
def index
url = "https://qiita.com/api/v2/items" #URL festlegen
client = HTTPClient.new #Erstellen Sie eine Instanz
response = client.get(url) #Anfrage erhalten
render json: JSON.parse(response.body) #Analysieren Sie das Ergebnis und zeigen Sie es in json an
end
end
Wenn Sie auf http: // localhost: 3000 / api / qiita zugreifen, wird eine Liste von Daten in json wie folgt zurückgegeben. Es ist sehr schwer zu sehen, weil es nicht geformt ist.
Als nächstes wird der Header und die Abfrage angegeben.
controllers/api/qiita_controller.rb
class Api::QiitaController < ApplicationController
#Rufen Sie HTTPClient auf
require 'httpclient'
def index
url = "https://qiita.com/api/v2/items"
header = { Authorization: "Bearer xxxxx" } #Beispiel)In der Kopfzeile"Bearer xxxxx"Gewähren
query = { page: 1, per_page: 20 } #Beispiel)1. Seite, Abfrage, um die Anzahl der Datenerfassungen pro Seite auf 20 zu erhöhen
client = HTTPClient.new
response = client.get(url, header: header, query: query) #Geben Sie den Header und die Abfrage an
render json: JSON.parse(response.body)
end
end
Dieses Mal habe ich erklärt, dass nur Anfragen angefordert werden, der HTTP-Client jedoch auch andere Anfragen wie Post senden kann. Überprüfen Sie dies daher bitte.
Einzelheiten zur Qiita-API finden Sie im Folgenden. Qiita API v2 documentation - Qiita:Developer Übersicht über Qiita API v2 (inoffiziell)