From 0567a7afe813854c36e20a0d796853c2749f30da Mon Sep 17 00:00:00 2001 From: aadimch Date: Fri, 21 Mar 2025 13:00:24 -0700 Subject: [PATCH 1/6] feat: add retry strategy for api-rest category --- .../rest-api/delete-data/index.mdx | 5 ++- .../rest-api/fetch-data/index.mdx | 9 ++-- .../rest-api/post-data/index.mdx | 5 ++- .../rest-api/set-up-http-api/index.mdx | 42 +++++++++++++----- .../rest-api/set-up-rest-api/index.mdx | 44 +++++++++++++------ .../rest-api/update-data/index.mdx | 5 ++- 6 files changed, 79 insertions(+), 31 deletions(-) diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/delete-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/delete-data/index.mdx index 9875dea4afc..41aa8607d73 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/delete-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/delete-data/index.mdx @@ -37,7 +37,10 @@ async function deleteItem() { try { const restOperation = del({ apiName: 'myRestApi', - path: 'items/1' + path: 'items/1', + retryStrategy: { + strategy: 'no-retry' + }, }); await restOperation.response; console.log('DELETE call succeeded'); diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx index 4f3fa60a015..c89f6434e78 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx @@ -36,9 +36,12 @@ import { get } from 'aws-amplify/api'; async function getItem() { try { const restOperation = get({ - apiName: 'myRestApi', - path: 'items' - }); + apiName: 'myRestApi', + path: 'items' + retryStrategy: { + strategy: 'no-retry' + }, + }); const response = await restOperation.response; console.log('GET call succeeded: ', response); } catch (error) { diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/post-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/post-data/index.mdx index 35ec19cefdc..66dc89171e9 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/post-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/post-data/index.mdx @@ -42,7 +42,10 @@ async function postItem() { body: { message: 'Mow the lawn' } - } + }, + retryStrategy: { + strategy: 'no-retry' + }, }); const { body } = await restOperation.response; diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx index cd4e0d0d0cc..e096f12658c 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx @@ -233,13 +233,22 @@ import outputs from '../amplify_outputs.json'; const amplifyConfig = parseAmplifyConfig(outputs); -Amplify.configure({ - ...amplifyConfig, - API: { - ...amplifyConfig.API, - REST: outputs.custom.API, +Amplify.configure( + { + ...amplifyConfig, + API: { + ...amplifyConfig.API, + REST: outputs.custom.API, + }, }, -}); + { + API: { + retryStrategy: { + strategy: 'no-retry' + }, + }, + } +); ``` @@ -251,13 +260,22 @@ import outputs from '@/amplify_outputs.json'; const amplifyConfig = parseAmplifyConfig(outputs); -Amplify.configure({ - ...amplifyConfig, - API: { - ...amplifyConfig.API, - REST: outputs.custom.API, +Amplify.configure( + { + ...amplifyConfig, + API: { + ...amplifyConfig.API, + REST: outputs.custom.API, + }, }, -}); + { + API: { + retryStrategy: { + strategy: 'no-retry' + }, + } + } +); ``` diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx index 834ec6f070f..2bbfc202f13 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx @@ -216,13 +216,22 @@ import outputs from '../amplify_outputs.json'; const amplifyConfig = parseAmplifyConfig(outputs); -Amplify.configure({ - ...amplifyConfig, - API: { - ...amplifyConfig.API, - REST: outputs.custom.API, +Amplify.configure( + { + ...amplifyConfig, + API: { + ...amplifyConfig.API, + REST: outputs.custom.API, + }, }, -}); + { + API: { + retryStrategy: { + strategy: 'no-retry' + }, + } + } +); ``` @@ -234,13 +243,22 @@ import outputs from '@/amplify_outputs.json'; const amplifyConfig = parseAmplifyConfig(outputs); -Amplify.configure({ - ...amplifyConfig, - API: { - ...amplifyConfig.API, - REST: outputs.custom.API, - }, -}); +Amplify.configure( + { + ...amplifyConfig, + API: { + ...amplifyConfig.API, + REST: outputs.custom.API, + }, + }, + { + API: { + retryStrategy: { + strategy: 'no-retry' + }, + } + } +); ``` diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/update-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/update-data/index.mdx index c3a61583d3a..5ef3dad60ca 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/update-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/update-data/index.mdx @@ -41,7 +41,10 @@ async function updateItems() { path: 'items/1', options: { body: Item - } + }, + retryStrategy: { + strategy: 'no-retry' + }, }); const response = await restOperation.response; console.log('PUT call succeeded: ', response); From 15fb0a65658211b2b750554b2838913c4bf26cc6 Mon Sep 17 00:00:00 2001 From: aadimch Date: Mon, 24 Mar 2025 11:09:11 -0700 Subject: [PATCH 2/6] fix: pull retryStrategy inside REST --- .../rest-api/set-up-http-api/index.mdx | 16 ++++++++++------ .../rest-api/set-up-rest-api/index.mdx | 16 ++++++++++------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx index e096f12658c..d162f3155b9 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx @@ -243,9 +243,11 @@ Amplify.configure( }, { API: { - retryStrategy: { - strategy: 'no-retry' - }, + REST: { + retryStrategy: { + strategy: 'no-retry' + }, + } }, } ); @@ -270,9 +272,11 @@ Amplify.configure( }, { API: { - retryStrategy: { - strategy: 'no-retry' - }, + REST: { + retryStrategy: { + strategy: 'no-retry' + }, + } } } ); diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx index 2bbfc202f13..2283efe087b 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx @@ -226,9 +226,11 @@ Amplify.configure( }, { API: { - retryStrategy: { - strategy: 'no-retry' - }, + REST: { + retryStrategy: { + strategy: 'no-retry' + }, + } } } ); @@ -253,9 +255,11 @@ Amplify.configure( }, { API: { - retryStrategy: { - strategy: 'no-retry' - }, + REST: { + retryStrategy: { + strategy: 'no-retry' + }, + } } } ); From 55b3beab403724386ee787fc5e61d0233af788a0 Mon Sep 17 00:00:00 2001 From: aadimch Date: Thu, 27 Mar 2025 11:31:14 -0700 Subject: [PATCH 3/6] chore: address feedbacks --- .../add-aws-services/rest-api/delete-data/index.mdx | 3 --- .../add-aws-services/rest-api/fetch-data/index.mdx | 4 ++-- .../add-aws-services/rest-api/post-data/index.mdx | 3 --- .../add-aws-services/rest-api/set-up-http-api/index.mdx | 4 ++-- .../add-aws-services/rest-api/set-up-rest-api/index.mdx | 4 ++-- .../add-aws-services/rest-api/update-data/index.mdx | 3 --- 6 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/delete-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/delete-data/index.mdx index 41aa8607d73..2e23defa8ea 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/delete-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/delete-data/index.mdx @@ -38,9 +38,6 @@ async function deleteItem() { const restOperation = del({ apiName: 'myRestApi', path: 'items/1', - retryStrategy: { - strategy: 'no-retry' - }, }); await restOperation.response; console.log('DELETE call succeeded'); diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx index c89f6434e78..458657b0d71 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx @@ -39,9 +39,9 @@ async function getItem() { apiName: 'myRestApi', path: 'items' retryStrategy: { - strategy: 'no-retry' + strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy }, - }); + }); const response = await restOperation.response; console.log('GET call succeeded: ', response); } catch (error) { diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/post-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/post-data/index.mdx index 66dc89171e9..6d6b2eb1051 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/post-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/post-data/index.mdx @@ -43,9 +43,6 @@ async function postItem() { message: 'Mow the lawn' } }, - retryStrategy: { - strategy: 'no-retry' - }, }); const { body } = await restOperation.response; diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx index d162f3155b9..8b3cb538446 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx @@ -245,7 +245,7 @@ Amplify.configure( API: { REST: { retryStrategy: { - strategy: 'no-retry' + strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy }, } }, @@ -274,7 +274,7 @@ Amplify.configure( API: { REST: { retryStrategy: { - strategy: 'no-retry' + strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy }, } } diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx index 2283efe087b..96f5bd5e9fb 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx @@ -228,7 +228,7 @@ Amplify.configure( API: { REST: { retryStrategy: { - strategy: 'no-retry' + strategy: 'no-retry', // Overrides default jittered exponential backoff retry strategy }, } } @@ -257,7 +257,7 @@ Amplify.configure( API: { REST: { retryStrategy: { - strategy: 'no-retry' + strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy }, } } diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/update-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/update-data/index.mdx index 5ef3dad60ca..8ebfa5b3abb 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/update-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/update-data/index.mdx @@ -42,9 +42,6 @@ async function updateItems() { options: { body: Item }, - retryStrategy: { - strategy: 'no-retry' - }, }); const response = await restOperation.response; console.log('PUT call succeeded: ', response); From c35f5b10c805cff559d7a098f87570edd0a01877 Mon Sep 17 00:00:00 2001 From: aadimch Date: Fri, 28 Mar 2025 10:11:24 -0700 Subject: [PATCH 4/6] fix: placement of retryStrategy --- .../add-aws-services/rest-api/fetch-data/index.mdx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx index 458657b0d71..6339d3eb67b 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx @@ -38,9 +38,11 @@ async function getItem() { const restOperation = get({ apiName: 'myRestApi', path: 'items' - retryStrategy: { - strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy - }, + options: { + retryStrategy: { + strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy + }, + } }); const response = await restOperation.response; console.log('GET call succeeded: ', response); From 516d9bdeabc99fa92c43466cd16598a98e4cc349 Mon Sep 17 00:00:00 2001 From: aadimch Date: Mon, 31 Mar 2025 11:18:13 -0700 Subject: [PATCH 5/6] chore: add clarifying block --- .../add-aws-services/rest-api/fetch-data/index.mdx | 6 +++++- .../add-aws-services/rest-api/set-up-http-api/index.mdx | 4 ++-- .../add-aws-services/rest-api/set-up-rest-api/index.mdx | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx index 6339d3eb67b..37ad99ce632 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx @@ -40,7 +40,7 @@ async function getItem() { path: 'items' options: { retryStrategy: { - strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy + strategy: 'no-retry' // Overrides default retry strategy }, } }); @@ -52,6 +52,10 @@ async function getItem() { } ``` +The `retryStrategy` can be configured with: +- `no-retry`: Single attempt, fails immediately on error +- `jitteredExponentialBackoff`: Default strategy that retries with increasing delays, maximum 3 attempts + ## Accessing response payload You can consume the response payload by accessing the `body` property of the response object. Depending on the use case and the content type of the body, you can consume they payload in string, blob, or JSON. diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx index 8b3cb538446..fab1db808fd 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx @@ -245,7 +245,7 @@ Amplify.configure( API: { REST: { retryStrategy: { - strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy + strategy: 'no-retry' // Overrides default retry strategy }, } }, @@ -274,7 +274,7 @@ Amplify.configure( API: { REST: { retryStrategy: { - strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy + strategy: 'no-retry' // Overrides default retry strategy }, } } diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx index 96f5bd5e9fb..1090077c797 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx @@ -228,7 +228,7 @@ Amplify.configure( API: { REST: { retryStrategy: { - strategy: 'no-retry', // Overrides default jittered exponential backoff retry strategy + strategy: 'no-retry', // Overrides default retry strategy }, } } @@ -257,7 +257,7 @@ Amplify.configure( API: { REST: { retryStrategy: { - strategy: 'no-retry' // Overrides default jittered exponential backoff retry strategy + strategy: 'no-retry' // Overrides default retry strategy }, } } From 2100cb6fcde8a40688dc9ce3460e346f0df4f5ac Mon Sep 17 00:00:00 2001 From: aadimch Date: Tue, 1 Apr 2025 10:37:02 -0700 Subject: [PATCH 6/6] chore: spelling mistake --- .../add-aws-services/rest-api/fetch-data/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx index 37ad99ce632..b755aa517f2 100644 --- a/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx +++ b/src/pages/[platform]/build-a-backend/add-aws-services/rest-api/fetch-data/index.mdx @@ -54,7 +54,7 @@ async function getItem() { The `retryStrategy` can be configured with: - `no-retry`: Single attempt, fails immediately on error -- `jitteredExponentialBackoff`: Default strategy that retries with increasing delays, maximum 3 attempts +- `jittered-exponential-backoff`: Default strategy that retries with increasing delays, maximum 3 attempts ## Accessing response payload