[RUBY] [Rails] Versuchen Sie, Faradays Middleware zu verwenden

Ich habe versucht, Faradays Middleware zu verwenden, daher werde ich es leicht zusammenfassen.

Was ist Faraday?

Eine in Ruby geschriebene HTTP-Client-Bibliothek Sie können dies verwenden, um von Ihrem Rails-Projekt aus auf externe APIs zuzugreifen.

Was ist Faradays Middleware?

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

Middleware anfordern

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

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

Noch bequemer mit faraday_middleware!

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'

Referenzdokument

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

Recommended Posts

[Rails] Versuchen Sie, Faradays Middleware zu verwenden
Versuchen Sie es mit libGDX
Versuchen Sie es mit powermock-mockito2-2.0.2
Versuchen Sie es mit GraalVM
Versuchen Sie es mit jmockit 1.48
Versuchen Sie es mit SwiftLint
Versuchen Sie es mit Log4j 2.0
Versuchen Sie es mit dem Axon Framework
Versuchen Sie es mit der REST-API von JobScheduler
Versuchen Sie es mit der Methode java.lang.Math
Versuchen Sie es mit der WhiteBox von PowerMock
Versuchen Sie es mit Talend Teil 2
Versuchen Sie es mit der F # -Liste
Versuchen Sie es mit der Methode each_with_index
Versuchen Sie es mit Spring JDBC
Versuchen Sie es mit dem Ruby on Rails-Abfrageattribut
Versuchen Sie es mit RocksDB mit Java
Suchfunktion mit [Rails] Ransack
Versuchen Sie es mit GloVe mit Deeplearning4j
SNS-Authentifizierung mit Rails Google
[Schienen] Speichern Sie Bilder mit Carrierwave
Versuchen Sie es mit Cocoa von Ruby
Japanisieren Sie mit i18n mit Rails
[Rails] Japanische Lokalisierung mit Rails-i18n
[Rails] Testcode mit Rspec
Versuchen Sie es mit IntelliJ IDEA, da Sie dies nur einmal tun müssen
Fehler bei der Verwendung von Schienen Capybara
Versuchen Sie es mit Spring Boot Security
[Verarbeitung] Versuchen Sie es mit GT Force.
Detaillierte Tipps zur Verwendung von Rails
[Vollständige Programmierung] §2 Versuchen Sie es mit Ruby
[Rails 6] Sternförmige Überprüfung mit Raty.js
[Hidden_field] Sende Informationen mit Rails hidden_field !!!!
[Ruby on Rails] Leseversuch (: [],: Schlüssel)
Holen Sie sich PV (Ansichten) mit Impressionist ~ Rails
[Rails] Tag-Verwaltungsfunktion (unter Verwendung von Acts-as-Taggable-On)
Probieren Sie Redmine auf dem Mac Docker aus
[Rails 6] API-Entwicklung mit GraphQL (Query)
Versuchen Sie es mit Redis mit Java (jar)
[Java] Versuchen Sie, mithilfe von Generika zu implementieren
Versuchen Sie es mit dem Nachrichtensystem Pulsar
[Schienen 6] zerstören mit der Ressourcenmethode
Versuchen Sie es mit der IBM Java-Methodenverfolgung
[Rails] Statusaktualisierung mithilfe der Rake-Task
Versuchen Sie es mit dem Java SDK von Hyperledger Iroha
[Java] Wo haben Sie versucht, Java zu verwenden?