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作成済
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