Ich habe versucht, Faradays Middleware zu verwenden, daher werde ich es leicht zusammenfassen.
Eine in Ruby geschriebene HTTP-Client-Bibliothek Sie können dies verwenden, um von Ihrem Rails-Projekt aus auf externe APIs zuzugreifen.
Faraday verfügt über Middleware, mit der Sie die Verarbeitung von Anfragen und Antworten anpassen können. Es gibt zwei Arten: Anforderungs-Middleware und Antwort-Middleware. Auf diese Weise können Sie zum Zeitpunkt der Anforderung Authentifizierungsinformationen hinzufügen und die Kommunikation in das Protokoll schreiben.
Sie können es mit den folgenden Symbolen verwenden.
api_client.rb
Faraday.new(url: 'https://test.com') do |builder|
#Verwenden Sie Middleware
builder.request :url_encoded
builder.response :logger, Config.logger if Config.enable_logger
end
Die Anforderungs-Middleware kann die Details der Anforderung festlegen, bevor die Anforderung gesendet wird. Hier werden wir zwei Middleware vorstellen. Die Authentifizierungs-Middleware kann den Autorisierungsheader festlegen. UrlEncoded Middleware kann den Hash eines Schlüssel / Wert-Paares in einen URL-codierten Anforderungshauptteil konvertieren.
Anwendungsbeispiel
api_client.rb
#Zertifizierte Middleware
builder.request :basic_auth, "username", "password"
builder.request : authorization :Basic, "aut_key"
#UrlEncodierte Middleware
builder.request :url_encoded
Antwort Middleware kann die Details der Antwort festlegen, wenn sie die Antwort empfängt. Hier stellen wir die Logger Middleware vor. Mit der Logger-Middleware können Sie den Anforderungs- und Antworttext sowie die Header protokollieren. Es gibt auch eine Filterfunktion, mit der Sie vertrauliche Informationen mithilfe regulärer Ausdrücke filtern können.
Anwendungsbeispiel
api_client.rb
#Logger Middleware
builder.response :logger
#Filter
builder.response :logger do | logger |
logger.filter(/(password=)(\w+)/, '\1[REMOVED]')
end
Wenn Sie ein Juwel namens faraday_middleware hinzufügen, können Sie mehr Middleware verwenden.
Sie können beispielsweise die ParseJson-Klasse verwenden und parser_options und content_type angeben, um den Hash-Schlüssel als Symbol zu analysieren.
Anwendungsbeispiel
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