Utilisez le client HTTP de gem lors de la connexion à des API externes avec des rails. Cette fois, à titre d'exemple, je vais me connecter à l'API de Qiita et obtenir la liste des articles.
Gemfile
gem 'httpclient'
Terminal
$ bundle install
Le point final est / api / qiita
.
routes.rb
Rails.application.routes.draw do
namespace :api do
get '/qiita' to: 'qiita#index'
end
end
Premièrement, la forme la plus élémentaire. (Obtenir la demande sans spécifier d'en-tête ou de requête)
controllers/api/qiita_controller.rb
class Api::QiitaController < ApplicationController
#Appeler HTTPClient
require 'httpclient'
def index
url = "https://qiita.com/api/v2/items" #Définir l'URL
client = HTTPClient.new #Créer une instance
response = client.get(url) #Obtenir la demande
render json: JSON.parse(response.body) #Analyser et afficher le résultat dans json
end
end
Lorsque vous accédez à http: // localhost: 3000 / api / qiita, une liste de données sera renvoyée dans json comme ceci. C'est très difficile à voir car il n'a pas de forme.
Vient ensuite le cas de la spécification de l'en-tête et de la requête.
controllers/api/qiita_controller.rb
class Api::QiitaController < ApplicationController
#Appeler HTTPClient
require 'httpclient'
def index
url = "https://qiita.com/api/v2/items"
header = { Authorization: "Bearer xxxxx" } #Exemple)Dans l'en-tête"Bearer xxxxx"Subvention
query = { page: 1, per_page: 20 } #Exemple)1ère page, requête pour augmenter le nombre d'acquisitions de données par page à 20
client = HTTPClient.new
response = client.get(url, header: header, query: query) #Spécifiez l'en-tête et la requête
render json: JSON.parse(response.body)
end
end
Cette fois, j'ai expliqué uniquement obtenir une demande, mais le client HTTP peut envoyer d'autres demandes telles que Post, alors veuillez le vérifier.
Pour plus de détails sur l'API de Qiita, reportez-vous à ce qui suit. Qiita API v2 documentation - Qiita:Developer Présentation de l'API Qiita v2 (non officielle)
Recommended Posts