|
51 | 51 | " INFRASTRUCTURE.APPGW_APIM_PE,\n", |
52 | 52 | " INFRASTRUCTURE.SIMPLE_APIM\n", |
53 | 53 | "]\n", |
54 | | - "nb_helper = utils.NotebookHelper(\n", |
55 | | - " sample_folder,\n", |
56 | | - " rg_name,\n", |
57 | | - " rg_location,\n", |
58 | | - " deployment,\n", |
59 | | - " supported_infras,\n", |
60 | | - " index = index,\n", |
61 | | - " apim_sku = apim_sku\n", |
62 | | - ")\n", |
| 54 | + "nb_helper = utils.NotebookHelper(sample_folder, rg_name, rg_location, deployment, supported_infras, index = index, apim_sku = apim_sku)\n", |
63 | 55 | "\n", |
64 | 56 | "# API paths (2 per option, all coexisting side-by-side)\n", |
65 | 57 | "bl_products_path = f'{api_prefix}bl-products'\n", |
|
125 | 117 | "pol_baseline = utils.read_policy_xml('cors-baseline-native.xml', sample_name = sample_folder)\n", |
126 | 118 | "\n", |
127 | 119 | "apis_baseline: List[API] = [\n", |
128 | | - " API(bl_products_path, 'Baseline Products', bl_products_path,\n", |
129 | | - " 'Products API with native <cors> policy (static origins)',\n", |
| 120 | + " API(bl_products_path, 'Baseline Products', bl_products_path, 'Products API with native <cors> policy (static origins)',\n", |
130 | 121 | " pol_baseline, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
131 | | - " API(bl_analytics_path, 'Baseline Analytics', bl_analytics_path,\n", |
132 | | - " 'Analytics API with native <cors> policy (static origins)',\n", |
| 122 | + " API(bl_analytics_path, 'Baseline Analytics', bl_analytics_path, 'Analytics API with native <cors> policy (static origins)',\n", |
133 | 123 | " pol_baseline, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
134 | 124 | "]\n", |
135 | 125 | "\n", |
|
144 | 134 | "pol_api_opt1 = pol_api_opt1.replace('{fragment_id}', 'DynamicCorsHardcoded')\n", |
145 | 135 | "\n", |
146 | 136 | "apis_opt1: List[API] = [\n", |
147 | | - " API(opt1_products_path, 'Option 1 Products', opt1_products_path,\n", |
148 | | - " 'Products API with hard-coded CORS fragment',\n", |
| 137 | + " API(opt1_products_path, 'Option 1 Products', opt1_products_path, 'Products API with hard-coded CORS fragment',\n", |
149 | 138 | " pol_api_opt1, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
150 | | - " API(opt1_analytics_path, 'Option 1 Analytics', opt1_analytics_path,\n", |
151 | | - " 'Analytics API with hard-coded CORS fragment',\n", |
| 139 | + " API(opt1_analytics_path, 'Option 1 Analytics', opt1_analytics_path, 'Analytics API with hard-coded CORS fragment',\n", |
152 | 140 | " pol_api_opt1, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
153 | 141 | "]\n", |
154 | 142 | "\n", |
|
162 | 150 | "pol_api_opt2 = pol_api_opt2.replace('{fragment_id}', 'DynamicCorsNamedValues')\n", |
163 | 151 | "\n", |
164 | 152 | "apis_opt2: List[API] = [\n", |
165 | | - " API(opt2_products_path, 'Option 2 Products', opt2_products_path,\n", |
166 | | - " 'Products API with Named Values CORS fragment',\n", |
| 153 | + " API(opt2_products_path, 'Option 2 Products', opt2_products_path, 'Products API with Named Values CORS fragment',\n", |
167 | 154 | " pol_api_opt2, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
168 | | - " API(opt2_analytics_path, 'Option 2 Analytics', opt2_analytics_path,\n", |
169 | | - " 'Analytics API with Named Values CORS fragment',\n", |
| 155 | + " API(opt2_analytics_path, 'Option 2 Analytics', opt2_analytics_path, 'Analytics API with Named Values CORS fragment',\n", |
170 | 156 | " pol_api_opt2, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
171 | 157 | "]\n", |
172 | 158 | "\n", |
|
184 | 170 | "cache_key_param = [{'name': 'cacheKey', 'required': True, 'type': 'string', 'description': 'The cache key to operate on'}]\n", |
185 | 171 | "\n", |
186 | 172 | "apis_opt3: List[API] = [\n", |
187 | | - " API(opt3_products_path, 'Option 3 Products', opt3_products_path,\n", |
188 | | - " 'Products API with cache-backed CORS fragment',\n", |
| 173 | + " API(opt3_products_path, 'Option 3 Products', opt3_products_path, 'Products API with cache-backed CORS fragment',\n", |
189 | 174 | " pol_api_opt3, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
190 | | - " API(opt3_analytics_path, 'Option 3 Analytics', opt3_analytics_path,\n", |
191 | | - " 'Analytics API with cache-backed CORS fragment',\n", |
| 175 | + " API(opt3_analytics_path, 'Option 3 Analytics', opt3_analytics_path, 'Analytics API with cache-backed CORS fragment',\n", |
192 | 176 | " pol_api_opt3, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
193 | 177 | "]\n", |
194 | 178 | "\n", |
|
214 | 198 | "pol_api_opt4 = pol_api_opt4.replace('{fragment_id}', 'DynamicCorsCachedPerApi')\n", |
215 | 199 | "\n", |
216 | 200 | "apis_opt4: List[API] = [\n", |
217 | | - " API(opt4_products_path, 'Option 4 Products', opt4_products_path,\n", |
218 | | - " 'Products API with per-API cache-backed CORS fragment',\n", |
| 201 | + " API(opt4_products_path, 'Option 4 Products', opt4_products_path, 'Products API with per-API cache-backed CORS fragment',\n", |
219 | 202 | " pol_api_opt4, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
220 | | - " API(opt4_analytics_path, 'Option 4 Analytics', opt4_analytics_path,\n", |
221 | | - " 'Analytics API with per-API cache-backed CORS fragment',\n", |
| 203 | + " API(opt4_analytics_path, 'Option 4 Analytics', opt4_analytics_path, 'Analytics API with per-API cache-backed CORS fragment',\n", |
222 | 204 | " pol_api_opt4, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
223 | 205 | "]\n", |
224 | 206 | "\n", |
225 | 207 | "\n", |
226 | 208 | "# ---- Option 5: Per-API Named Value fragment ----\n", |
227 | 209 | "\n", |
228 | 210 | "pf_nv_per_api_xml = utils.read_policy_xml('pf-dynamic-cors-named-values-per-api.xml', sample_name = sample_folder)\n", |
229 | | - "\n", |
230 | 211 | "pol_api_nv = utils.read_policy_xml('cors-api-policy-named-values.xml', sample_name = sample_folder)\n", |
231 | | - "\n", |
232 | 212 | "pol_api_opt5_products = pol_api_nv.replace('{allowed_origins_nv}', f'{{{{{opt5_nv_products_name}}}}}')\n", |
233 | | - "\n", |
234 | 213 | "pol_api_opt5_analytics = pol_api_nv.replace('{allowed_origins_nv}', f'{{{{{opt5_nv_analytics_name}}}}}')\n", |
235 | 214 | "\n", |
236 | 215 | "apis_opt5: List[API] = [\n", |
237 | | - " API(opt5_products_path, 'Option 5 Products', opt5_products_path,\n", |
238 | | - " 'Products API with per-API Named Value CORS fragment',\n", |
| 216 | + " API(opt5_products_path, 'Option 5 Products', opt5_products_path, 'Products API with per-API Named Value CORS fragment',\n", |
239 | 217 | " pol_api_opt5_products, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
240 | | - " API(opt5_analytics_path, 'Option 5 Analytics', opt5_analytics_path,\n", |
241 | | - " 'Analytics API with per-API Named Value CORS fragment',\n", |
| 218 | + " API(opt5_analytics_path, 'Option 5 Analytics', opt5_analytics_path, 'Analytics API with per-API Named Value CORS fragment',\n", |
242 | 219 | " pol_api_opt5_analytics, [cors_get_op, cors_options_op], tags, subscriptionRequired = False),\n", |
243 | 220 | "]\n", |
244 | 221 | "\n", |
|
268 | 245 | "# Combine all APIs for a single deployment\n", |
269 | 246 | "all_apis = apis_baseline + apis_opt1 + apis_opt2 + apis_opt3 + apis_opt4 + apis_opt5 + [api_admin]\n", |
270 | 247 | "\n", |
271 | | - "\n", |
272 | 248 | "print_ok('Notebook initialized')" |
273 | 249 | ] |
274 | 250 | }, |
|
0 commit comments