Ability to set custom interceptor on client via additionalSettings (HttpClientFactoryAdditionalSettings) or another clean way.
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Beginne mit dem Lesen von ApiClient und HttpClientFactoryAdditionalSettings und konzentriere dich darauf, wie der Client pro Aufruf erstellt wird und wie Logger- und Retry-Interceptor bereitgestellt werden. Die Arbeit ist abgeschlossen, wenn Aufrufer eine unterstützte Möglichkeit haben, ohne Reflection einen wiederverwendbaren benutzerdefinierten Interceptor hinzuzufügen, einschließlich des angeforderten Zugriffs- oder Injection-Pfads.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Hi,
previously in 0.81 and lower versions it was possible to do something like so
apiClient.setHttpClient(
apiClient
.getHttpClient()
.newBuilder()
.addInterceptor(new ApiClientDebugModeInterceptor())
.build());
add a custom interceptor and use that to gather debug info etc (not just logging to logger/or retry metrics etc)..
since 0.82 client creation is per call level and it has change to only allow
HttpClientFactoryAdditionalSettings to set a http logger and one for retry interceptor
and also this additionalSettings is a private field in ApiClient
so there is no way to pass in a custom interceptor to be added to the client builder phase (per request or as a class field to be re used).
I would like to request support to allow ApiClient users to
have access to this additionalSettings via a getter or have a way to pass in a vanilla Interceptor to be added to the call chain to do other custom work outside of logging/retry (in our case for example we have a debug mode where we gather headers/request body/response body and store it in some fields and do some debug logic from said object).
I can technically use reflections and access this additionalSettings and then instead of the custom retry interceptor use my own interceptor but that is not clean.
- Vorherrschende Sprache
- Java
- Sterne
- 29
- Forks
- 50
- Ø Merge
- 1 Std. 30 Min.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus CyberSource/cybersource-rest-client-java
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 58/100
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 42/100
CyberSource/cybersource-rest-client-java#235 · 1 Kommentar ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
CyberSource/cybersource-rest-client-java#218 · 1 Kommentar ·
Alle Issues in CyberSource/cybersource-rest-client-java
Ähnliche Issues
-
BindingServiceProperties.bindings regressed to a non-thread-safe TreeMap in GH-3158: concurrent first use of binding names corrupts itEvtl. vergeben @AkashB23 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
spring-cloud/spring-cloud-stream#3321 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Bug] 资源包列表 与 模组/数据包/世界 列表排列顺序不一致Evtl. vergeben @fishdry1000 hat das vor 4 Tagen übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
ai-driven-fuzzing bug claude Minor
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
linagora/twake-calendar-side-service#1333 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
AtlasOfLivingAustralia/species-lists#882 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Type/Bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
ballerina-platform/ballerina-library#9458 ·
Maintainer antworten meist innerhalb von 1 Tag