Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BCDA-7867: Add 429 recommendations #193

Merged
merged 5 commits into from
Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions _includes/build/best_practices_429.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<div>
<p>A status code of <code>429</code> indicates “Too Many Requests.” This can occur due to two reasons:</p>
<ol>
<li>Making too many HTTP requests within a period of time</li>
<li>Trying to recreate jobs already marked as "In-Progress.” For reference, you can view both existing and past jobs using the /jobs endpoint. See <a href=build.html#jobs-history>Request Jobs History</a> for more details.</li>
</ol>
<p>Regardless of the reason, you will see a <strong>Retry-After</strong> response in the header. Wait until the period of time specified in the header has passed before making any more requests. This makes sure your client can adapt without manual intervention, even if the rate-limiting parameters change.</p>
</div>
7 changes: 4 additions & 3 deletions _includes/build/requesting_data_runouts.html
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,10 @@ <h4>Start a Job using 'runout' with /Group Explanation</h4>
<p>
If the request was successful, a 202 Accepted response code will be returned and the response will include a Content-Location header. The value of the Content-Location header indicates the location to check for job status and outcome. In the example header above, the number 42 in the URL represents the ID of the export job. The claims returned in the job will be filtered to have a serviceDate of 12/31/2020 or before.
</p>
<p>
If you're already requesting data from one endpoint and try to request data from that endpoint again while the first request is processing, you'll receive a 429 Too Many Requests error.
</p>
<p>
If you're already requesting data from one endpoint and try to request data from that endpoint again while the first request is processing, you'll receive a 429 Too Many Requests error. For guidance on how to handle 429 errors, refer to our <a href="#handling-429-error">best practices</a>.
</p>


<h3>Step 3: Check the job status</h3>
<p>See <a href="#checkJob" class="in-text__link"><em>Step 3: Check the job status</em></a> in the Request Data section above.</p>
Expand Down
28 changes: 28 additions & 0 deletions build.html
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,20 @@
</li>
</ul>
</li>


<li class="ds-c-vertical-nav__item">
<a class="ds-c-vertical-nav__label ds-c-vertical-nav__label" href="#bulk-best-practices">
Best Practices
</a>
<ul class="ds-c-vertical-nav__subnav">
<li class="ds-c-vertical-nav__subnav">
<a class="ds-c-vertical-nav__label ds-c-vertical-nav__label" href="#handling-429-error">
Handling 429 status codes
</a>
</li>
</ul>
</li>
</ul>
</aside>
<!-- Table of Contents END -->
Expand Down Expand Up @@ -266,6 +280,20 @@ <h2>
</div>
</div>
</div>

<div id="bulk-best-practices" class="guide-content">
<h1>
Best Practices
</h1>
<div id="handling-429-error">
<h2>
Handling 429 status codes
</h2>
<div class="ds-u-font-size--base">
{% include build/best_practices_429.html %}
</div>
</div>
</div>
</main>
</div>
</div>
Loading