From 056f8de5d6a4c640f4e0de4dbe560a911041c3ee Mon Sep 17 00:00:00 2001 From: Roman Cinis <52065414+tsinis@users.noreply.github.com> Date: Tue, 6 May 2025 11:35:39 +0200 Subject: [PATCH 1/6] docs(dart-dio): add example for dio configuration https://github.com/getsentry/sentry-dart/pull/2912 --- includes/dart-integrations/dio.mdx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/includes/dart-integrations/dio.mdx b/includes/dart-integrations/dio.mdx index e6f85f0e821c15..7379a56032ad39 100644 --- a/includes/dart-integrations/dio.mdx +++ b/includes/dart-integrations/dio.mdx @@ -40,6 +40,12 @@ Future main() async { final dio = Dio(); +/* Optional: Configure custom components before adding Sentry, e.g.: +dio.transformer = BackgroundTransformer(); +dio.httpClientAdapter = YourCustomHttpClientAdapter(); +dio.interceptors.add(RetryInterceptor()); +*/ + // This *must* be the last initialization step of the Dio setup. dio.addSentry(...); ``` From dade9e1d7e41075cb9670900916ace7ec6d3c3f4 Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 7 May 2025 13:21:21 +0200 Subject: [PATCH 2/6] Update dio.mdx --- includes/dart-integrations/dio.mdx | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/includes/dart-integrations/dio.mdx b/includes/dart-integrations/dio.mdx index 7379a56032ad39..1a90d93308e766 100644 --- a/includes/dart-integrations/dio.mdx +++ b/includes/dart-integrations/dio.mdx @@ -22,32 +22,23 @@ dependencies: ## Configure -Configuration should happen as early as possible in your application's lifecycle. - +To instrument Dio with Sentry, call `addSentry()` on your `Dio` instance as the very last step. +Perform any other configuration e.g., adding interceptors, transformers, or a custom HTTP client adapter before `addSentry()`. ```dart import 'package:sentry_dio/sentry_dio.dart'; -import 'package:sentry/sentry.dart'; - -Future main() async { - await Sentry.init( - (options) { - options.dsn = '___PUBLIC_DSN___'; - }, - appRunner: initApp, // Init your App. - ); -} +import 'package:dio/dio.dart'; +// 1. Create your Dio instance final dio = Dio(); -/* Optional: Configure custom components before adding Sentry, e.g.: -dio.transformer = BackgroundTransformer(); -dio.httpClientAdapter = YourCustomHttpClientAdapter(); -dio.interceptors.add(RetryInterceptor()); -*/ +// 2. (Optional) Customize Dio as needed +// dio.transformer = ExampleTransformer(); +// dio.httpClientAdapter = ExampleHttpClientAdapter(); +// dio.interceptors.add(ExampleInterceptor()); -// This *must* be the last initialization step of the Dio setup. -dio.addSentry(...); +// 3. Add Sentry – always LAST +dio.addSentry(); ``` ## Reporting Bad HTTP Requests as Errors From 746d46e0b0c643c0909575b1d263908bd4c753bc Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 7 May 2025 13:24:48 +0200 Subject: [PATCH 3/6] Update dio.mdx --- includes/dart-integrations/dio.mdx | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/includes/dart-integrations/dio.mdx b/includes/dart-integrations/dio.mdx index 1a90d93308e766..6365ccddf49a1d 100644 --- a/includes/dart-integrations/dio.mdx +++ b/includes/dart-integrations/dio.mdx @@ -22,7 +22,7 @@ dependencies: ## Configure -To instrument Dio with Sentry, call `addSentry()` on your `Dio` instance as the very last step. +To instrument Dio with Sentry, call `addSentry()` on your Dio instance as the very last step. Perform any other configuration e.g., adding interceptors, transformers, or a custom HTTP client adapter before `addSentry()`. ```dart @@ -47,6 +47,7 @@ The `Interceptors` can also catch exceptions that may occur during requests — ```dart import 'package:sentry_dio/sentry_dio.dart'; +import 'package:dio/dio.dart'; final dio = Dio(); @@ -83,24 +84,13 @@ Before starting, ensure: 1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure). 2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). -### Configure - -Call `addSentry()` on your instance of `Dio: - -```dart -import 'package:sentry_dio/sentry_dio.dart'; - -final dio = Dio(); - -dio.addSentry(); -``` - ### Verify #### 1. Execute the Code ```dart import 'package:sentry_dio/sentry_dio.dart'; +import 'package:dio/dio.dart'; Future makeWebRequestWithDio() async { final dio = Dio(); From 192956c0bcc36d4b5e9913a946de666aa6b31bd5 Mon Sep 17 00:00:00 2001 From: Roman Cinis <52065414+tsinis@users.noreply.github.com> Date: Thu, 8 May 2025 09:23:27 +0200 Subject: [PATCH 4/6] docs: address @coolguyzone code-review feedback Co-authored-by: Alex Krawiec --- includes/dart-integrations/dio.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/dart-integrations/dio.mdx b/includes/dart-integrations/dio.mdx index 6365ccddf49a1d..8f15262cdb4b89 100644 --- a/includes/dart-integrations/dio.mdx +++ b/includes/dart-integrations/dio.mdx @@ -23,7 +23,7 @@ dependencies: ## Configure To instrument Dio with Sentry, call `addSentry()` on your Dio instance as the very last step. -Perform any other configuration e.g., adding interceptors, transformers, or a custom HTTP client adapter before `addSentry()`. +Perform any other configurations such as adding interceptors, transformers, or a custom HTTP client adapter before calling `addSentry()`. ```dart import 'package:sentry_dio/sentry_dio.dart'; From 5fcf2c3617bc7b0eab74cea1b04be3e6348558b7 Mon Sep 17 00:00:00 2001 From: Roman Cinis <52065414+tsinis@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:34:31 +0200 Subject: [PATCH 5/6] fix(docs): captureMessage method should be awaited --- platform-includes/user-feedback/sdk-api-example/dart.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-includes/user-feedback/sdk-api-example/dart.mdx b/platform-includes/user-feedback/sdk-api-example/dart.mdx index 755c2ec54acc6f..a665de6eac94dd 100644 --- a/platform-includes/user-feedback/sdk-api-example/dart.mdx +++ b/platform-includes/user-feedback/sdk-api-example/dart.mdx @@ -10,7 +10,7 @@ await Sentry.init((options) { }); // Option 2: Retrieving SentryId from the method capturing the event -SentryId sentryId = Sentry.captureMessage("My message"); +SentryId sentryId = await Sentry.captureMessage("My message"); // Option 3: Retrieving SentryId from the beforeSend callback SentryId sentryId = Sentry.lastEventId; From 3a9edcde939c92437a70e442cdf31cca50d8b170 Mon Sep 17 00:00:00 2001 From: Roman Cinis <52065414+tsinis@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:34:57 +0200 Subject: [PATCH 6/6] fix(docs): captureMessage method should be awaited Flutter --- .../user-feedback/sdk-api-example/dart.flutter.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-includes/user-feedback/sdk-api-example/dart.flutter.mdx b/platform-includes/user-feedback/sdk-api-example/dart.flutter.mdx index 5de2897512b304..2ce6b88152cb4c 100644 --- a/platform-includes/user-feedback/sdk-api-example/dart.flutter.mdx +++ b/platform-includes/user-feedback/sdk-api-example/dart.flutter.mdx @@ -10,7 +10,7 @@ await SentryFlutter.init((options) { }); // Option 2: Retrieving SentryId from the method capturing the event -SentryId sentryId = Sentry.captureMessage("My message"); +SentryId sentryId = await Sentry.captureMessage("My message"); // Option 3: Retrieving SentryId from the beforeSend callback SentryId sentryId = Sentry.lastEventId;