Skip to content

Commit fcbb2a1

Browse files
committed
Add bulk redirects examples (TODO)
1 parent cd90c69 commit fcbb2a1

File tree

1 file changed

+99
-73
lines changed

1 file changed

+99
-73
lines changed

src/content/docs/rules/url-forwarding/bulk-redirects/create-api.mdx

Lines changed: 99 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ sidebar:
77
description: Learn how to create Bulk Redirects using the Cloudflare API.
88
---
99

10-
import { Render } from "~/components";
10+
import { Render, APIRequest } from "~/components";
1111

1212
To create Bulk Redirects via API, you must:
1313

@@ -24,16 +24,15 @@ To create Bulk Redirects via API, you must:
2424

2525
Use the [Create a list](/api/resources/rules/subresources/lists/methods/create/) operation to create a new Bulk Redirect List. The list `kind` must be `redirect`.
2626

27-
```bash
28-
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rules/lists \
29-
--header "Authorization: Bearer <API_TOKEN>" \
30-
--header "Content-Type: application/json" \
31-
--data '{
32-
"name": "my_redirect_list",
33-
"description": "My redirect list.",
34-
"kind": "redirect"
35-
}'
36-
```
27+
<APIRequest
28+
path="/accounts/{account_id}/rules/lists"
29+
method="POST"
30+
json={{
31+
name: "my_redirect_list",
32+
description: "My redirect list.",
33+
kind: "redirect",
34+
}}
35+
/>
3736

3837
```json output {3}
3938
{
@@ -61,6 +60,33 @@ For more information on list operations, refer to the [Lists API](/waf/tools/lis
6160

6261
Use the [Create list items](/api/resources/rules/subresources/lists/subresources/items/methods/create/) operation to add URL redirect items to the list. Enter the list ID from the previous step in the endpoint URL:
6362

63+
TODO Fix example.
64+
65+
<APIRequest
66+
path="/accounts/{account_id}/rules/lists/{list_id}/items"
67+
method="POST"
68+
parameters={{
69+
list_id: "f848b6ccb07647749411f504d6f88794",
70+
}}
71+
json={{
72+
remove_me: [
73+
{
74+
redirect: {
75+
source_url: "example.com/blog/",
76+
target_url: "https://example.com/blog/latest",
77+
},
78+
},
79+
{
80+
redirect: {
81+
source_url: "example.net/",
82+
target_url: "https://example.net/under-construction.html",
83+
status_code: 307,
84+
},
85+
},
86+
],
87+
}}
88+
/>
89+
6490
```bash
6591
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rules/lists/f848b6ccb07647749411f504d6f88794/items \
6692
--header "Authorization: Bearer <API_TOKEN>" \
@@ -95,10 +121,13 @@ curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rules/lists/f848
95121

96122
This is an asynchronous operation. The response will contain an `operation_id` which you will use to check if the operation completed successfully using the [Get bulk operation status](/api/resources/rules/subresources/lists/subresources/bulk_operations/methods/get/) operation:
97123

98-
```bash
99-
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rules/lists/bulk_operations/92558f8b296d4dbe9d0419e0e53f6622 \
100-
--header "Authorization: Bearer <API_TOKEN>"
101-
```
124+
<APIRequest
125+
path="/accounts/{account_identifier}/rules/lists/bulk_operations/{operation_id}"
126+
method="GET"
127+
parameters={{
128+
operation_id: "92558f8b296d4dbe9d0419e0e53f6622",
129+
}}
130+
/>
102131

103132
Once the operation has completed successfully, the response will be similar to the following:
104133

@@ -128,29 +157,28 @@ A Bulk Redirect Rule must have:
128157

129158
The following request of the [Create an account ruleset](/api/resources/rulesets/methods/create/) operation creates a phase entry point ruleset for the `http_request_redirect` phase at the account level, and defines a single redirect rule. Use this operation if you have not created a phase entry point ruleset for the `http_request_redirect` phase yet.
130159

131-
```bash
132-
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets \
133-
--header "Authorization: Bearer <API_TOKEN>" \
134-
--header "Content-Type: application/json" \
135-
--data '{
136-
"name": "My redirect ruleset",
137-
"kind": "root",
138-
"phase": "http_request_redirect",
139-
"rules": [
140-
{
141-
"expression": "http.request.full_uri in $my_redirect_list",
142-
"description": "Bulk Redirect rule.",
143-
"action": "redirect",
144-
"action_parameters": {
145-
"from_list": {
146-
"name": "my_redirect_list",
147-
"key": "http.request.full_uri"
148-
}
149-
}
150-
}
151-
]
152-
}'
153-
```
160+
<APIRequest
161+
path="/accounts/{account_id}/rulesets"
162+
method="POST"
163+
json={{
164+
name: "My redirect ruleset",
165+
kind: "root",
166+
phase: "http_request_redirect",
167+
rules: [
168+
{
169+
expression: "http.request.full_uri in $my_redirect_list",
170+
description: "Bulk Redirect rule.",
171+
action: "redirect",
172+
action_parameters: {
173+
from_list: {
174+
name: "my_redirect_list",
175+
key: "http.request.full_uri",
176+
},
177+
},
178+
},
179+
],
180+
}}
181+
/>
154182

155183
```json output
156184
{
@@ -186,41 +214,39 @@ curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets \
186214

187215
If there is already a phase entry point ruleset for the `http_request_redirect` phase, use the [Update an account ruleset](/api/resources/rulesets/methods/update/) operation instead, like in the following example:
188216

189-
```bash
190-
curl --request PUT \
191-
"https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/{ruleset_id}" \
192-
--header "Authorization: Bearer <API_TOKEN>" \
193-
--header "Content-Type: application/json" \
194-
--data '{
195-
"name": "My redirect ruleset",
196-
"kind": "root",
197-
"phase": "http_request_redirect",
198-
"rules": [
199-
{
200-
"expression": "http.request.full_uri in $my_redirect_list_2",
201-
"description": "Bulk Redirect rule 1",
202-
"action": "redirect",
203-
"action_parameters": {
204-
"from_list": {
205-
"name": "my_redirect_list_1",
206-
"key": "http.request.full_uri"
207-
}
208-
}
209-
},
210-
{
211-
"expression": "http.request.full_uri in $my_redirect_list_2",
212-
"description": "Bulk Redirect rule 2",
213-
"action": "redirect",
214-
"action_parameters": {
215-
"from_list": {
216-
"name": "my_redirect_list_2",
217-
"key": "http.request.full_uri"
218-
}
219-
}
220-
}
221-
]
222-
}'
223-
```
217+
<APIRequest
218+
path="/accounts/{account_id}/rulesets/{ruleset_id}"
219+
method="PUT"
220+
json={{
221+
name: "My redirect ruleset",
222+
kind: "root",
223+
phase: "http_request_redirect",
224+
rules: [
225+
{
226+
expression: "http.request.full_uri in $my_redirect_list_2",
227+
description: "Bulk Redirect rule 1",
228+
action: "redirect",
229+
action_parameters: {
230+
from_list: {
231+
name: "my_redirect_list_1",
232+
key: "http.request.full_uri",
233+
},
234+
},
235+
},
236+
{
237+
expression: "http.request.full_uri in $my_redirect_list_2",
238+
description: "Bulk Redirect rule 2",
239+
action: "redirect",
240+
action_parameters: {
241+
from_list: {
242+
name: "my_redirect_list_2",
243+
key: "http.request.full_uri",
244+
},
245+
},
246+
},
247+
],
248+
}}
249+
/>
224250

225251
```json output
226252
{

0 commit comments

Comments
 (0)