commit 99e3821d02532c08c212358f32566f40af0381ff Author: Cristiano Hoshikawa Date: Fri Oct 20 22:52:01 2023 -0300 first commit diff --git a/images/Connect_Rest_3.png b/images/Connect_Rest_3.png new file mode 100644 index 0000000..cc2a9b0 Binary files /dev/null and b/images/Connect_Rest_3.png differ diff --git a/images/Connection_Apigateway_Rest_Api.png b/images/Connection_Apigateway_Rest_Api.png new file mode 100644 index 0000000..092e242 Binary files /dev/null and b/images/Connection_Apigateway_Rest_Api.png differ diff --git a/images/Connection_Rest_2.png b/images/Connection_Rest_2.png new file mode 100644 index 0000000..15c29e4 Binary files /dev/null and b/images/Connection_Rest_2.png differ diff --git a/images/Create_Integration_1.png b/images/Create_Integration_1.png new file mode 100644 index 0000000..517e7f3 Binary files /dev/null and b/images/Create_Integration_1.png differ diff --git a/images/Excel_api_migration_source.png b/images/Excel_api_migration_source.png new file mode 100644 index 0000000..bdc5b8c Binary files /dev/null and b/images/Excel_api_migration_source.png differ diff --git a/images/Integration_1.png b/images/Integration_1.png new file mode 100644 index 0000000..89b5feb Binary files /dev/null and b/images/Integration_1.png differ diff --git a/images/Integration_1a.png b/images/Integration_1a.png new file mode 100644 index 0000000..979d478 Binary files /dev/null and b/images/Integration_1a.png differ diff --git a/images/Integration_1b.png b/images/Integration_1b.png new file mode 100644 index 0000000..f1d926e Binary files /dev/null and b/images/Integration_1b.png differ diff --git a/images/Integration_1c.png b/images/Integration_1c.png new file mode 100644 index 0000000..9158136 Binary files /dev/null and b/images/Integration_1c.png differ diff --git a/images/Integration_1d.png b/images/Integration_1d.png new file mode 100644 index 0000000..c18a474 Binary files /dev/null and b/images/Integration_1d.png differ diff --git a/images/Integration_2.png b/images/Integration_2.png new file mode 100644 index 0000000..abe9a13 Binary files /dev/null and b/images/Integration_2.png differ diff --git a/images/Integration_2a.png b/images/Integration_2a.png new file mode 100644 index 0000000..30c03c6 Binary files /dev/null and b/images/Integration_2a.png differ diff --git a/images/Integration_3.png b/images/Integration_3.png new file mode 100644 index 0000000..982f9e9 Binary files /dev/null and b/images/Integration_3.png differ diff --git a/images/Integration_3a.png b/images/Integration_3a.png new file mode 100644 index 0000000..12ae343 Binary files /dev/null and b/images/Integration_3a.png differ diff --git a/images/Integration_4.png b/images/Integration_4.png new file mode 100644 index 0000000..cdb9e32 Binary files /dev/null and b/images/Integration_4.png differ diff --git a/images/Integration_4a.png b/images/Integration_4a.png new file mode 100644 index 0000000..1c7ec7a Binary files /dev/null and b/images/Integration_4a.png differ diff --git a/images/Integration_4b.png b/images/Integration_4b.png new file mode 100644 index 0000000..556c344 Binary files /dev/null and b/images/Integration_4b.png differ diff --git a/images/Integration_4c.png b/images/Integration_4c.png new file mode 100644 index 0000000..461c6d2 Binary files /dev/null and b/images/Integration_4c.png differ diff --git a/images/Integration_5.png b/images/Integration_5.png new file mode 100644 index 0000000..51f1cd4 Binary files /dev/null and b/images/Integration_5.png differ diff --git a/images/Integration_5a.png b/images/Integration_5a.png new file mode 100644 index 0000000..a1bb417 Binary files /dev/null and b/images/Integration_5a.png differ diff --git a/images/Integration_5b.png b/images/Integration_5b.png new file mode 100644 index 0000000..0f5a691 Binary files /dev/null and b/images/Integration_5b.png differ diff --git a/images/Integration_5c.png b/images/Integration_5c.png new file mode 100644 index 0000000..91c6e98 Binary files /dev/null and b/images/Integration_5c.png differ diff --git a/images/Integration_5d.png b/images/Integration_5d.png new file mode 100644 index 0000000..2b17853 Binary files /dev/null and b/images/Integration_5d.png differ diff --git a/images/Integration_5e.png b/images/Integration_5e.png new file mode 100644 index 0000000..5c2ede9 Binary files /dev/null and b/images/Integration_5e.png differ diff --git a/images/Integration_5f.png b/images/Integration_5f.png new file mode 100644 index 0000000..e9c5828 Binary files /dev/null and b/images/Integration_5f.png differ diff --git a/images/Integration_6.png b/images/Integration_6.png new file mode 100644 index 0000000..fba6f1e Binary files /dev/null and b/images/Integration_6.png differ diff --git a/images/Integration_6a.png b/images/Integration_6a.png new file mode 100644 index 0000000..6468c02 Binary files /dev/null and b/images/Integration_6a.png differ diff --git a/images/Integration_6b.png b/images/Integration_6b.png new file mode 100644 index 0000000..993ab63 Binary files /dev/null and b/images/Integration_6b.png differ diff --git a/images/Integration_6c.png b/images/Integration_6c.png new file mode 100644 index 0000000..51d0d9f Binary files /dev/null and b/images/Integration_6c.png differ diff --git a/images/Integration_6d.png b/images/Integration_6d.png new file mode 100644 index 0000000..2f0f05d Binary files /dev/null and b/images/Integration_6d.png differ diff --git a/images/Test_1.png b/images/Test_1.png new file mode 100644 index 0000000..bcc888b Binary files /dev/null and b/images/Test_1.png differ diff --git a/images/Test_1a.png b/images/Test_1a.png new file mode 100644 index 0000000..3a643ed Binary files /dev/null and b/images/Test_1a.png differ diff --git a/images/Test_1aa.png b/images/Test_1aa.png new file mode 100644 index 0000000..7a6503b Binary files /dev/null and b/images/Test_1aa.png differ diff --git a/images/Test_2.png b/images/Test_2.png new file mode 100644 index 0000000..69c9d0a Binary files /dev/null and b/images/Test_2.png differ diff --git a/images/connection_rest_1.png b/images/connection_rest_1.png new file mode 100644 index 0000000..f3a4469 Binary files /dev/null and b/images/connection_rest_1.png differ diff --git a/index.md b/index.md new file mode 100644 index 0000000..6a11147 --- /dev/null +++ b/index.md @@ -0,0 +1,299 @@ +# Migrate your APIs to Oracle Cloud API Gateway + +## Introduction + +## Objectives + +## Prerequisites + +## Task 1: Understand your Source API data structure + +![Excel_api_migration_source.png](images%2FExcel_api_migration_source.png) + + [ { + "API_NAME" : "cep", + "TYPE" : "REST", + "METHOD" : "GET", + "PATH_PREFIX" : "/okecep", + "PATH" : "/cep", + "ENDPOINT" : "http://129.153.138.208/cep", + "QUERY_PARAMETERS" : "cep", + "GROOVY_SCRIPT" : "", + "AUTHENTICATION_TYPE" : "BASIC", + "ENVIRONMENT" : "QA", + "HEADER" : "", + "HEADER_VALUE" : "" + }, { + "API_NAME" : "calculator", + "TYPE" : "SOAP", + "METHOD" : "POST", + "PATH_PREFIX" : "/dneonline", + "PATH" : "/calculator", + "ENDPOINT" : "http://www.dneonline.com/calculator.asmx", + "QUERY_PARAMETERS" : "", + "GROOVY_SCRIPT" : "", + "AUTHENTICATION_TYPE" : "BASIC", + "ENVIRONMENT" : "DEV", + "HEADER" : "", + "HEADER_VALUE" : "" + } ] + + +## Task : Understand the OCI API Gateway Deployment Data + + { + "requestPolicies": { + "authentication": { + "type": "CUSTOM_AUTHENTICATION", + "tokenHeader": "", + "tokenQueryParam": "", + "tokenAuthScheme": "authentication-scheme", + "isAnonymousAccessAllowed": false, + "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaac2______kg6fq", + "maxClockSkewInSeconds": 0, + "validationPolicy": { + "type": "REMOTE_DISCOVERY", + "clientDetails": { + "type": "CUSTOM", + "clientId": "client-id", + "clientSecretId": "secret-ocid", + "clientSecretVersionNumber": 0 + }, + "sourceUriDetails": { + "type": "DISCOVERY_URI", + "uri": "well-known-uri" + }, + "isSslVerifyDisabled": true, + "maxCacheDurationInHours": 0, + "additionalValidationPolicy": { + "issuers": ["issuer-url", "issuer-url"], + "audiences": ["intended-audience"], + "verifyClaims": [{ + "key": "claim-name", + "values": ["acceptable-value", "acceptable-value"], + "isRequired": true + }] + } + }, + "tokenHeader": "Authorization", + "validationPolicy": { + "type": "REMOTE_DISCOVERY", + "clientDetails": { + "type": "CUSTOM", + "clientId": "5hsti38yhy5j2a4tas455rsu6ru8yui3wrst4n1", + "clientSecretId": "ocid1.vaultsecret.oc1.iad.amaaaaaa______cggit3q", + "clientSecretVersionNumber": 1 + }, + "sourceUriDetails": { + "type": "DISCOVERY_URI", + "uri": "https://my-idp/oauth2/default/.well-known/openid-configuration" + }, + "isSslVerifyDisabled": false, + "maxCacheDurationInHours": 2, + "additionalValidationPolicy": { + "issuers": ["https://identity.oraclecloud.com/"], + "audiences": ["api.dev.io"], + "verifyClaims": [{ + "key": "is_admin", + "values": ["service:app", "read:hello"], + "isRequired": true + }] + } + } + }, + "mutualTls":{ + "isVerifiedCertificateRequired": true, + "allowedSans": ["api.weather.com"] + } + }, + "routes": [ + { + "path": "/weather", + "methods": ["GET"], + "backend": { + "type": "HTTP_BACKEND", + "url": "https://api.weather.gov/${request.auth[region]}" + }, + "requestPolicies": { + "authorization": { + "type": "ANY_OF", + "allowedScope": [ "weatherwatcher" ] + }, + "headerValidations": { + "headers": { + "name": "header-name", + "required": true + }, + "validationMode": "ENFORCING|PERMISSIVE|DISABLED" + }, + "queryParameterValidations": { + "parameters": { + "name": "query-parameter-name", + "required": true + }, + "validationMode": "ENFORCING|PERMISSIVE|DISABLED" + }, + "bodyValidation": { + "required": true, + "content": { + "media-type-1": { + "validationType": "NONE" + }, + "media-type-2": { + "validationType": "NONE" + } + }, + "validationMode": "ENFORCING|PERMISSIVE|DISABLED" + }, + "headerTransformations": { + "renameHeaders": { + "items": [ + { + "from": "original-name", + "to": "new-name" + } + ] + }, + "setHeaders": { + "items": [ + { + "name": "header-name", + "values": ["header-value"], + "ifExists": "OVERWRITE|APPEND|SKIP" + } + ] + } + }, + "queryParameterTransformations": { + "filterQueryParameters": { + "type": "BLOCK|ALLOW", + "items": [ + { + "name": "query-parameter-name" + } + ] + }, + "renameQueryParameters": { + "items": [ + { + "from": "original-name", + "to": "new-name" + } + ] + }, + "setQueryParameters": { + "items": [ + { + "name": "query-parameter-name", + "values": ["query-parameter-value"], + "ifExists": "OVERWRITE|APPEND|SKIP" + } + ] + } + } + }, + "responsePolicies": { + "headerTransformations": { + "filterHeaders": { + "type": "BLOCK|ALLOW", + "items": [ + { + "name": "header-name" + } + ] + }, + "renameHeaders": { + "items": [ + { + "from": "original-name", + "to": "new-name" + } + ] + }, + "setHeaders": { + "items": [ + { + "name": "header-name", + "values": ["header-value"], + "ifExists": "OVERWRITE|APPEND|SKIP" + } + ] + } + } + } + } + ] + } + +## Task 2: Create Connections + +![connection_rest_1.png](images%2Fconnection_rest_1.png) +![Connection_Rest_2.png](images%2FConnection_Rest_2.png) +![Connect_Rest_3.png](images%2FConnect_Rest_3.png) + +![Connection_Apigateway_Rest_Api.png](images%2FConnection_Apigateway_Rest_Api.png) + +## Task 3: Create the Integration + +![Create_Integration_1.png](images%2FCreate_Integration_1.png) + +![Integration_1.png](images%2FIntegration_1.png) + +![Integration_1a.png](images%2FIntegration_1a.png) + +![Integration_1b.png](images%2FIntegration_1b.png) + +![Integration_1c.png](images%2FIntegration_1c.png) + +![Integration_1d.png](images%2FIntegration_1d.png) + +![Integration_2.png](images%2FIntegration_2.png) + +![Integration_2a.png](images%2FIntegration_2a.png) + +![Integration_3.png](images%2FIntegration_3.png) + +![Integration_3a.png](images%2FIntegration_3a.png) + +![Integration_4.png](images%2FIntegration_4.png) + +![Integration_4a.png](images%2FIntegration_4a.png) + +![Integration_4b.png](images%2FIntegration_4b.png) + +![Integration_4c.png](images%2FIntegration_4c.png) + +![Integration_5.png](images%2FIntegration_5.png) + +![Integration_5a.png](images%2FIntegration_5a.png) + +![Integration_5b.png](images%2FIntegration_5b.png) + +![Integration_5c.png](images%2FIntegration_5c.png) + +![Integration_5d.png](images%2FIntegration_5d.png) + +![Integration_5e.png](images%2FIntegration_5e.png) + +![Integration_5f.png](images%2FIntegration_5f.png) + +![Integration_6.png](images%2FIntegration_6.png) + +![Integration_6a.png](images%2FIntegration_6a.png) + +![Integration_6b.png](images%2FIntegration_6b.png) + +![Integration_6c.png](images%2FIntegration_6c.png) + +![Integration_6d.png](images%2FIntegration_6d.png) + +## Task : Test the migration + +![Test_1aa.png](images%2FTest_1aa.png) + +![Test_1.png](images%2FTest_1.png) + +![Test_1a.png](images%2FTest_1a.png) + +![Test_2.png](images%2FTest_2.png) +