{OCI APIゲートウェイ} OCI API Gatewayハンズオン

https://docs.oracle.com/ja-jp/iaas/Content/APIGateway/Concepts/apigatewayoverview.htm

https://oracle-japan.github.io/ocitutorials/cloud-native/apigateway-for-beginners/

 

¥420.00 1 million API calls per month


前提: 443ポート許可のVCN作成済

 


-- 1. OCI API Gatewayの作成

oci api-gateway gateway create --generate-full-command-json-input

oci api-gateway gateway create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--endpoint-type PUBLIC \
--subnet-id ocid1.subnet.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--display-name api01 \
--response-cache-details '{
  "type": "NONE"
}' 


oci api-gateway gateway list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--all \
--query 'data.items.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table

 

oci api-gateway gateway get \
--gateway-id ocid1.apigateway.oc1.iad.000000000000000000000000000000000000000000000000000000000000 

 

 


oci api-gateway gateway delete \
--gateway-id ocid1.apigateway.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force

 

 

-- 2. OCI API GatewayへのAPIのデプロイ

oci api-gateway deployment create --generate-full-command-json-input

 

oci api-gateway deployment create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--gateway-id ocid1.apigateway.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--path-prefix "/v1" \
--specification '{
      "logging-policies": {
        "access-log": null,
        "execution-log": {
          "is-enabled": null,
          "log-level": "INFO"
        }
      },
      "request-policies": {
        "authentication": null,
        "cors": null,
        "dynamic-authentication": null,
        "mutual-tls": {
          "allowed-sans": ,
          "is-verified-certificate-required": false
        },
        "rate-limiting": null,
        "usage-plans": null
      },
      "routes": [
        {
          "backend": {
            "connect-timeout-in-seconds": 60.0,
            "is-ssl-verify-disabled": false,
            "read-timeout-in-seconds": 10.0,
            "send-timeout-in-seconds": 10.0,
            "type": "HTTP_BACKEND",
            "url": "https://api.weather.gov/points/${request.path[point]}"
          },
          "logging-policies": {
            "access-log": null,
            "execution-log": {
              "is-enabled": null,
              "log-level": null
            }
          },
          "methods": [
            "GET"
          ],
          "path": "/weather/{point}",
          "request-policies": {
            "authorization": null,
            "body-validation": null,
            "cors": null,
            "header-transformations": null,
            "header-validations": null,
            "query-parameter-transformations": null,
            "query-parameter-validations": null,
            "response-cache-lookup": null
          },
          "response-policies": {
            "header-transformations": null,
            "response-cache-store": null
          }
        }
      ]
    }' \
--display-name api0101 

 

oci api-gateway deployment list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--all \
--query 'data.items[].{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table

oci api-gateway deployment get \
--deployment-id ocid1.apideployment.oc1.iad.000000000000000000000000000000000000000000000000000000000000 

 

oci api-gateway deployment delete \
--deployment-id ocid1.apideployment.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force 

 


-- 3. 動作確認

エンドポイント
https://xxxxxxxxxxxxxxxxxxxxxxxxxx.apigateway.us-ashburn-1.oci.customer-oci.com/v1

/weather/37.5293,-122.2658

エンドポイント+"/weather/37.5293,-122.2658"
https://xxxxxxxxxxxxxxxxxxxxxxxxxx.apigateway.us-ashburn-1.oci.customer-oci.com/v1/weather/37.5293,-122.2658


curl -X GET https://xxxxxxxxxxxxxxxxxxxxxxxxxx.apigateway.us-ashburn-1.oci.customer-oci.com/v1/weather/37.5293,-122.2658