[RUBY] [Rails] Essayez d'utiliser le middleware de Faraday

J'ai essayé d'utiliser le middleware de Faraday, donc je vais le résumer facilement.

Qu'est-ce que Faraday?

Une bibliothèque client HTTP écrite en ruby Vous pouvez l'utiliser pour accéder aux API externes de votre projet Rails.

Quel est le middleware de Faraday?

Faraday dispose d'un middleware qui vous permet de personnaliser le traitement des demandes et des réponses. Il existe deux types, le middleware de requête et le middleware de réponse, qui peuvent être utilisés pour ajouter des informations d'authentification au moment de la requête et écrire des journaux de communication.

Vous pouvez l'utiliser avec les symboles comme suit.

api_client.rb


Faraday.new(url: 'https://test.com') do |builder|
  #Utiliser un middleware
  builder.request :url_encoded
  builder.response :logger, Config.logger if Config.enable_logger
end

Demander un middleware

L'intergiciel de requête peut définir les détails de la requête avant d'envoyer la requête. Ici, nous allons introduire deux middleware. L'intergiciel d'authentification peut définir l'en-tête d'autorisation, L'intergiciel UrlEncoded peut convertir le hachage d'une paire clé / valeur en un corps de requête encodé en URL.

Exemple d'utilisation

api_client.rb


#Intergiciel certifié
builder.request :basic_auth, "username", "password"
builder.request : authorization :Basic, "aut_key"

#Intergiciel UrlEncoded
builder.request :url_encoded

Intergiciel de réponse

response Middleware peut définir les détails de la réponse lorsqu'il reçoit la réponse. Ici, nous allons présenter le middleware Logger. L'intergiciel Logger vous permet de consigner le corps et les en-têtes des requêtes et réponses. Il existe également une fonction de filtrage qui vous permet de filtrer les informations sensibles à l'aide d'expressions régulières.

Exemple d'utilisation

api_client.rb


#Intergiciel Logger
builder.response :logger
#filtre
builder.response :logger do | logger |
  logger.filter(/(password=)(\w+)/, '\1[REMOVED]')
end

Encore plus pratique avec faraday_middleware!

Si vous ajoutez une gemme appelée faraday_middleware, vous pouvez utiliser plus de middleware.

Par exemple, vous pouvez utiliser la classe ParseJson et spécifier parser_options et content_type pour analyser la clé de hachage en tant que symbole.

Exemple d'utilisation

api_client.rb


builder.response :json, parser_options: { symbolize_names: true }, content_type: 'application/json'

Document de référence

https://lostisland.github.io/faraday/ https://lostisland.github.io/faraday/middleware/list

Recommended Posts

[Rails] Essayez d'utiliser le middleware de Faraday
Essayez d'utiliser libGDX
Essayez d'utiliser powermock-mockito2-2.0.2
Essayez d'utiliser GraalVM
Essayez d'utiliser jmockit 1.48
Essayez d'utiliser SwiftLint
Essayez d'utiliser Log4j 2.0
Essayez d'utiliser le Framework Axon
Essayez d'utiliser l'API REST de JobScheduler
Essayez d'utiliser la méthode java.lang.Math
Essayez d'utiliser la WhiteBox de PowerMock
Essayez d'utiliser Talend Part 2
Essayez d'utiliser la liste F #
Essayez d'utiliser la méthode each_with_index
Essayez d'utiliser Spring JDBC
Essayez d'utiliser l'attribut de requête Ruby on Rails
Essayez d'utiliser RocksDB avec Java
Fonction de recherche à l'aide de [rails] ransack
Essayez d'utiliser GloVe avec Deeplearning4j
Authentification SNS à l'aide de Rails google
[Rails] Enregistrez des images à l'aide de carrierwave
Essayez d'utiliser Cocoa de Ruby
Japaneseize en utilisant i18n avec Rails
[Rails] Localisation japonaise à l'aide de rails-i18n
[Rails] Code de test à l'aide de Rspec
Essayez d'utiliser IntelliJ IDEA car vous ne devez le faire qu'une seule fois
Erreur lors de l'utilisation des rails capybara
Essayez d'utiliser Spring Boot Security
[Traitement] Essayez d'utiliser GT Force.
Conseils détaillés lors de l'utilisation de Rails
[Programmation complète] §2 Essayez d'utiliser Ruby
[Rails 6] Revue en forme d'étoile utilisant Raty.js
[Hidden_field] Envoyez des informations en utilisant les rails hidden_field !!!!
[Ruby on Rails] Read try (: [] ,: key)
Obtenez PV (vues) en utilisant impressionniste ~ Rails
[Rails] Fonction de gestion des balises (en utilisant des actes comme des balises)
Essayez Redmine sur le docker Mac
[Rails 6] Développement d'API à l'aide de GraphQL (Query)
Essayez d'utiliser Redis avec Java (jar)
[Java] Essayez de mettre en œuvre à l'aide de génériques
Essayez d'utiliser le système de messagerie Pulsar
[Rails 6] détruit en utilisant la méthode des ressources
Essayez d'utiliser le traçage de méthode IBM Java
[Rails] Mise à jour de l'état à l'aide de la tâche Rake
Essayez d'utiliser le SDK Java d'Hyperledger Iroha
[Java] Où avez-vous essayé d'utiliser java