Find the Best Cosmetic Hospitals

Explore trusted cosmetic hospitals and make a confident choice for your transformation.

โ€œInvest in yourself โ€” your confidence is always worth it.โ€

Explore Cosmetic Hospitals

Start your journey today โ€” compare options in one place.

Google Cloud: API Gateway Basic Tutorials

Below is a practical, step-by-step Google Cloud API Gateway setup using a dummy backend on Cloud Run (hello service), then testing via curl. This follows Googleโ€™s official โ€œAPI Gateway + Cloud Runโ€ flow. (Google Cloud Documentation)


0) Prereqs

  • A Google Cloud project + billing enabled
  • Google Cloud SDK (gcloud) installed and logged in

Set variables (edit these 4 lines):

export PROJECT_ID="YOUR_PROJECT_ID"
export REGION="us-central1"
export API_ID="demo-api"
export GATEWAY_ID="demo-gw"
gcloud config set project "$PROJECT_ID"
Code language: JavaScript (javascript)

1) Enable required APIs

gcloud services enable \
  apigateway.googleapis.com \
  cloudbuild.googleapis.com \
  run.googleapis.com
Code language: CSS (css)

(API Gateway requires its service enabled; Cloud Run/Cloud Build are used for the dummy backend.) (Google Cloud Documentation)


2) Deploy a dummy backend on Cloud Run

Deploy a public โ€œhelloโ€ container:

gcloud run deploy hello-backend \
  --image gcr.io/cloudrun/hello \
  --region "$REGION" \
  --allow-unauthenticated
Code language: JavaScript (javascript)

Get the Cloud Run URL:

export BACKEND_URL="$(gcloud run services describe hello-backend --region "$REGION" --format='value(status.url)')"
echo "$BACKEND_URL"
Code language: PHP (php)

Quick test the backend directly:

curl -i "$BACKEND_URL"
Code language: JavaScript (javascript)

3) Create an OpenAPI spec for API Gateway

Create a file openapi.yaml (Swagger/OpenAPI 2.0) like this:

swagger: "2.0"
info:
  title: "Demo API Gateway"
  description: "API Gateway -> Cloud Run dummy backend"
  version: "1.0.0"

schemes:
  - https

produces:
  - application/json

paths:
  /hello:
    get:
      operationId: hello
      x-google-backend:
        address: BACKEND_URL_REPLACE_ME
      responses:
        "200":
          description: OK
Code language: PHP (php)

Replace BACKEND_URL_REPLACE_ME with your Cloud Run URL:

sed -i.bak "s|BACKEND_URL_REPLACE_ME|$BACKEND_URL|g" openapi.yaml
Code language: JavaScript (javascript)

Why this works: API Gateway reads x-google-backend to know where to route requests. (Google Cloud Documentation)


4) Create an API config (uploads your OpenAPI to API Gateway)

export API_CONFIG_ID="demo-config-v1"

gcloud api-gateway api-configs create "$API_CONFIG_ID" \
  --api="$API_ID" \
  --openapi-spec=openapi.yaml \
  --project="$PROJECT_ID"
Code language: JavaScript (javascript)

Creating an API config is the โ€œupload the definitionโ€ step. (Google Cloud Documentation)


5) Create a Gateway and deploy the config

gcloud api-gateway gateways create "$GATEWAY_ID" \
  --api="$API_ID" \
  --api-config="$API_CONFIG_ID" \
  --location="$REGION" \
  --project="$PROJECT_ID"
Code language: JavaScript (javascript)

This deploys the API config to a gateway. (Google Cloud Documentation)


6) Get the Gateway URL and test

Fetch the gatewayโ€™s default hostname:

export GATEWAY_HOST="$(gcloud api-gateway gateways describe "$GATEWAY_ID" --location "$REGION" --format='value(defaultHostname)')"
echo "$GATEWAY_HOST"
Code language: PHP (php)

Call your API through API Gateway:

curl -i "https://${GATEWAY_HOST}/hello"
Code language: JavaScript (javascript)

You should see a response coming from the Cloud Run hello backend (but accessed via the gateway).


Optional: Require an API Key (simple protection)

API Gateway can enforce API keys using security definitions. (Google Cloud Documentation)

A) Update openapi.yaml to require API key

Add these blocks:

securityDefinitions:
  api_key:
    type: "apiKey"
    name: "key"
    in: "query"

security:
  - api_key: []
Code language: JavaScript (javascript)

(Keep your /hello path the same.)

B) Create a NEW config and deploy it

export API_CONFIG_ID="demo-config-v2"

gcloud api-gateway api-configs create "$API_CONFIG_ID" \
  --api="$API_ID" \
  --openapi-spec=openapi.yaml

gcloud api-gateway gateways update "$GATEWAY_ID" \
  --location "$REGION" \
  --api="$API_ID" \
  --api-config="$API_CONFIG_ID"
Code language: JavaScript (javascript)

C) Create an API key in Google Cloud Console and test

Call without key (should fail), then with key:

curl -i "https://${GATEWAY_HOST}/hello?key=YOUR_API_KEY"
Code language: JavaScript (javascript)

Cleanup (avoid charges)

gcloud api-gateway gateways delete "$GATEWAY_ID" --location "$REGION" -q
gcloud api-gateway api-configs delete demo-config-v1 --api "$API_ID" -q || true
gcloud api-gateway api-configs delete demo-config-v2 --api "$API_ID" -q || true
gcloud api-gateway apis delete "$API_ID" -q
gcloud run services delete hello-backend --region "$REGION" -q
Code language: JavaScript (javascript)

Find Trusted Cardiac Hospitals

Compare heart hospitals by city and services โ€” all in one place.

Explore Hospitals
I'm Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms. I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.

Related Posts

OWASP Dependency-Check โ€” 1-Hour Quick Demo Lab

Level: Beginner / Basic DevSecOpsDuration: 60 minutesFormat: Instructor-led hands-on demoFocus: Install โ†’ scan a real project โ†’ read findings โ†’ understand CVE/CVSS โ†’ generate reports โ†’ demonstrate a simple security gate…

Read More

OWASP Dependency-Checkย – Hands-On Lab Manual

OWASP Dependency-Check 13.0.0 Basic-to-Essentials Hands-On Lab Manual Audience: Beginners and engineers with basic DevOps/DevSecOps knowledgeTutorial verified/researched on: 2026-10-03OWASP Dependency-Check version: 13.0.0Minimum Java supported by Dependency-Check: Java 11Recommended lab Java runtime: Java 17…

Read More

Manufacturing automation: Is it worth investing in the field of manufacturing automation?

An investment in manufacturing automation can pay off. (Photo: Generated with the help of AI) Manufacturing automation has developed from a solution mainly associated with large factories…

Read More

How to Choose a Virtual Machine for Development and Production Workloads

Virtual machines remain a practical building block for development, testing, staging, production services, and infrastructure automation. The challenge is not simply choosing the largest instance available. It…

Read More

System Mechanic vs Advanced SystemCare for Small Teams Without an MDM

If you’re keeping a handful of Windows workstations or test machines healthy without a device-management platform, iolo’s System Mechanic is the better choice over IObit’s Advanced SystemCare…

Read More

How to Plan Infrastructure for a Community Project

Every thriving community project sits on top of infrastructure nobody notices, right up until it breaks. The forum. The server. The backups. The dull plumbing that holds…

Read More
Subscribe
Notify of
guest
1 Comment
Newest
Oldest Most Voted
Skylar Bennett
Skylar Bennett
9 months ago

This article provides a clear and practical introduction to Google Cloud API Gateway, making it easier for readers to understand how to manage, secure, and scale APIs in cloud environments. The step-by-step explanations help demystify key concepts like routing, authentication, and traffic control, which are essential for building resilient services. With API-driven architectures becoming central to modern applications, learning these fundamentals equips developers and architects to design efficient, secure, and scalable systems with confidence.

1
0
Would love your thoughts, please comment.x
()
x