J'ai essayé d'utiliser le middleware de Faraday, donc je vais le résumer facilement.
Une bibliothèque client HTTP écrite en ruby Vous pouvez l'utiliser pour accéder aux API externes de votre projet Rails.
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
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
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
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'
https://lostisland.github.io/faraday/ https://lostisland.github.io/faraday/middleware/list
Recommended Posts