API ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ

์ด ํŽ˜์ด์ง€๋Š” Apigee ๋ฐ Apigee Hybrid์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

API ๋“ฑ๋ก

API ํ—ˆ๋ธŒ์— API๋ฅผ ๋“ฑ๋กํ•˜๋ฉด API๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•ญ๋ชฉ์„ ๋งŒ๋“ค๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•ญ๋ชฉ์„ API ๋ฆฌ์†Œ์Šค๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. API ํ—ˆ๋ธŒ์— ์ €์žฅ๋œ API ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ API์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์šด์˜ ๋ฐ ์„ค๋ช… ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. API๋ฅผ ๋“ฑ๋กํ•  ๋•Œ ๋˜๋Š” ์ดํ›„์— API ๋ฆฌ์†Œ์Šค ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ˆ˜์ •ํ•˜์—ฌ API์— ๋Œ€ํ•œ ํ’๋ถ€ํ•œ ์„ค๋ช…์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Console

API๋ฅผ ๋“ฑ๋กํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ API ํ—ˆ๋ธŒ์˜ API ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    API ํ—ˆ๋ธŒ๋กœ ์ด๋™
  2. API ๋“ฑ๋ก์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. ์ผ๋ฐ˜ ์„ธ๋ถ€์ •๋ณด์—์„œ API์˜ ๊ณ ์œ  ID๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์„ ํƒ์‚ฌํ•ญ). ID๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ์—์„œ ID๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ID๋ฅผ ์ž…๋ ฅํ•˜๋ ค๋ฉด ๊ณ ์œ  ID ์ง€์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. (ํ•„์ˆ˜) API ๋ฆฌ์†Œ์Šค์˜ ํ‘œ์‹œ ์ด๋ฆ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  5. ์„ ํƒ์ ์œผ๋กœ API๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ถ”๊ฐ€ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ๋“ ์ง€ API๋กœ ๋Œ์•„๊ฐ€์„œ API ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. API ๋ฆฌ์†Œ์Šค ์ˆ˜์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.
    • ์†Œ์œ ์ž ์ •๋ณด: (์„ ํƒ์‚ฌํ•ญ) API ์†Œ์œ ์ž์˜ ์ด๋ฆ„ ๋ฐ ์ด๋ฉ”์ผ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€ ์„ธ๋ถ€์ •๋ณด: (์„ ํƒ์‚ฌํ•ญ) API๋ฅผ ์ •์˜ํ•˜๊ณ  ๋” ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์†์„ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์—์„œ ์ด๋Ÿฌํ•œ ์ผ๋ถ€ ์†์„ฑ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์†์„ฑ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
    • ์‚ฌ์šฉ์ž ์ •์˜ ์†์„ฑ: (์„ ํƒ์‚ฌํ•ญ) ์„ค์ •์—์„œ ์ •์˜ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์†์„ฑ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  6. ๋“ฑ๋ก์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

REST

API๋ฅผ ๋“ฑ๋กํ•˜๋ ค๋ฉด Create API REST API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{
    "display_name": "DISPLAY_NAME",            # Required attribute
    "description": "DESCRIPTION"               # description is an optional attribute
    }
    'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis?api_id=API_ID

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • HUB_PROJECT: API ํ—ˆ๋ธŒ ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„. ์ด ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • HUB_LOCATION: ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์œ„์น˜. ์ด ์œ„์น˜๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • API_ID: (์„ ํƒ์‚ฌํ•ญ) API์˜ ๊ณ ์œ  ID๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ์—์„œ ๊ณ ์œ  ID๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • DISPLAY_NAME: (ํ•„์ˆ˜) API ๋ฆฌ์†Œ์Šค์˜ ํ‘œ์‹œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๋ชจ๋“  ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • DESCRIPTION: (์„ ํƒ์‚ฌํ•ญ) ์„ค๋ช…, ์†Œ์œ ์ž,API ์ฐธ๊ณ  ๋ฆฌ์†Œ์Šค ๋งํฌ ๋“ฑ API ๋ฆฌ์†Œ์Šค๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์—ฌ๋Ÿฌ ์„ ํƒ์  ์†์„ฑ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„ ํƒ์  ์†์„ฑ์€ API ๋ฆฌ์†Œ์Šค ์ •์˜์— ๋‚˜์—ด๋˜๊ณ  ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

API ๋ฆฌ์†Œ์Šค ๋‚˜์—ด

์ด ์„น์…˜์—์„œ๋Š” API ํ—ˆ๋ธŒ์˜ API ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚˜์—ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ•„ํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์‘๋‹ต์— ๋ฐ˜ํ™˜๋˜๋Š” API๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Console

API ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ API ํ—ˆ๋ธŒ์˜ API ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    API ํ—ˆ๋ธŒ๋กœ ์ด๋™

    API ํ—ˆ๋ธŒ์— ์ถ”๊ฐ€๋œ ๋ชจ๋“  API ๋ชฉ๋ก์€ API ํ™ˆํŽ˜์ด์ง€์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

  2. ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ๋ชฉ๋ก์„ ํ•„ํ„ฐ๋งํ•  ํ‚ค์›Œ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜์—ฌ API๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

REST

API ํ—ˆ๋ธŒ ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  API ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚˜์—ดํ•˜๋ ค๋ฉด API ๋‚˜์—ด API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis"
  -X GET -H "Authorization: Bearer: $(gcloud auth print-access-token)" -H "Content-Type: application/json"

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • HUB_PROJECT: API ํ—ˆ๋ธŒ ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„. ์ด ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • HUB_LOCATION: ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์œ„์น˜. ์ด ์œ„์น˜๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒ˜ํ”Œ ์ถœ๋ ฅ:

{
  "apis": [
    {
      "name": "projects/myproject/locations/us-central1/apis/a035eb3b-658e-467a-89d3-9cca2bbacd32-2",
      "displayName": "TestApi2",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/a035eb3b-658e-467a-89d3-9cca2bbacd32-1",
      "displayName": "TestApi1",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/foo9013cfev",
      "displayName": "sample",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/foo90121",
      "displayName": "sample",
      "documentation": {}
    },
    ...
    ],
    "nextPageToken": "f4f4d78b-a974-46db-a214-dc139f8e9c8a"
  }

ํ•„ํ„ฐ๊ฐ€ ํฌํ•จ๋œ REST ์˜ˆ์‹œ

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชฉ๋ก ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ๋Š” ์‹œ์Šคํ…œ ์ •์˜ ์†์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ API๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis' \
  -d filter="owner.email=\"testowner3@gmail.com\"" -d page_size=10

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • HUB_PROJECT: API ํ—ˆ๋ธŒ ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • HUB_LOCATION: ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์œ„์น˜์ž…๋‹ˆ๋‹ค. ์ด ์œ„์น˜๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์†Œ์œ ์ž๋ณ„๋กœ ํ•„ํ„ฐ๋ง๋œ ์ƒ˜ํ”Œ ์ถœ๋ ฅ:

{
  "apis": [
    {
      "name": "projects/myproject/locations/us-central1/apis/theme-park-management-api",
      "displayName": "Theme Park Management API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/restaurant-api",
      "displayName": "Restaurant API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/casino-management-api",
      "displayName": "Casino Management API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/hotel-boooking-api",
      "displayName": "Hotel Booking API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/test-march-26-api3",
      "displayName": "Test Pets API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/test-march-26-api2",
      "displayName": "Test Pets API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/test-march-26-api1",
      "displayName": "Test Pets API",
      "documentation": {}
    }
  ]
}

API ๋ฆฌ์†Œ์Šค ์„ธ๋ถ€์ •๋ณด ํ™•์ธ

์ด ์„น์…˜์—์„œ๋Š” API ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์„ธ๋ถ€์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Console

API ๋ฆฌ์†Œ์Šค์˜ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ API ํ—ˆ๋ธŒ์˜ API ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    API ํ—ˆ๋ธŒ๋กœ ์ด๋™
  2. ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ๋ชฉ๋ก์„ ํ•„ํ„ฐ๋งํ•  ํ‚ค์›Œ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜์—ฌ API๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  3. API๋ฅผ ํด๋ฆญํ•˜์—ฌ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€๋ฅผ ๋ด…๋‹ˆ๋‹ค.

REST

API ๋ฆฌ์†Œ์Šค์˜ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด Get API resource details API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID"
  -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X GET -H "Content-Type: application/json"

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • HUB_PROJECT: API ํ—ˆ๋ธŒ ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • HUB_LOCATION: ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์œ„์น˜์ž…๋‹ˆ๋‹ค. ์ด ์œ„์น˜๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • API_ID: API ๋ฆฌ์†Œ์Šค์˜ ๊ณ ์œ  ID์ž…๋‹ˆ๋‹ค.

์ƒ˜ํ”Œ ์ถœ๋ ฅ:

{
  "name": "projects/myproject/locations/us-central1/apis/myapi",
  "displayName": "My Test API",
  "description": "This is a test API.",
  "documentation": {},
  "owner": {
    "displayName": "Test API,
    "email": "testowner@gmail.com"
  },
  "versions": [
    "projects/myproject/locations/us-central1/apis/myapi/versions/myapi-version1"
  ],
  "createTime": "2024-03-26T10:13:15.668867002Z",
  "updateTime": "2024-03-26T10:13:16.700716401Z"
}

API ๋ฆฌ์†Œ์Šค ์‚ญ์ œ

์ด ์„น์…˜์—์„œ๋Š” API ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Console

UI์—์„œ API๋ฅผ ์‚ญ์ œํ•˜๋ฉด API์˜ ๊ธฐ๋ณธ ๋ฒ„์ „๊ณผ ๊ด€๋ จ API ์‚ฌ์–‘(์žˆ๋Š” ๊ฒฝ์šฐ)์ด ๋ชจ๋‘ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

API ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ API ํ—ˆ๋ธŒ์˜ API ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    API ํ—ˆ๋ธŒ๋กœ ์ด๋™
  2. ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ๋ชฉ๋ก์„ ํ•„ํ„ฐ๋งํ•  ํ‚ค์›Œ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œํ•  API๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  3. ์ž‘์—… ๋ฉ”๋‰ด(API๊ฐ€ ํฌํ•จ๋œ ํ–‰์˜ ์˜ค๋ฅธ์ชฝ)์—์„œ ์‚ญ์ œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

REST

API ํ—ˆ๋ธŒ์—์„œ API๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด Delete API API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๊ธฐ๋ณธ ๋ฒ„์ „์ด ์‚ญ์ œ๋œ ๊ฒฝ์šฐ์—๋งŒ API๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. API ์•„๋ž˜์˜ ๋ชจ๋“  ๋ฒ„์ „์„ ํ•œ ๋ฒˆ์— ์‚ญ์ œํ•˜๋ ค๋ฉด Delete REST API์—์„œ force ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID'

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • HUB_PROJECT: API ํ—ˆ๋ธŒ ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„. ์ด ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • HUB_LOCATION: ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์œ„์น˜. ์ด ์œ„์น˜๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • API_ID: ์‚ญ์ œํ•  API ๋ฆฌ์†Œ์Šค์˜ ๊ณ ์œ  ID์ž…๋‹ˆ๋‹ค.

API์™€ ๋ชจ๋“  ๊ธฐ๋ณธ ๋ฒ„์ „์„ ์‚ญ์ œํ•˜๋ ค๋ฉด force ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID?force=true'

API ๋ฆฌ์†Œ์Šค ์ˆ˜์ •

์ด ์„น์…˜์—์„œ๋Š” API ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  API ๋ฆฌ์†Œ์Šค ์†์„ฑ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ์†์„ฑ ๋ชฉ๋ก์€ Patch API ์ฐธ๊ณ  ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

Console

API๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ API ํ—ˆ๋ธŒ์˜ API ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    API ํ—ˆ๋ธŒ๋กœ ์ด๋™
  2. ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ๋ชฉ๋ก์„ ํ•„ํ„ฐ๋งํ•  ํ‚ค์›Œ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ •ํ•  API๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  3. API๋ฅผ ํด๋ฆญํ•˜์—ฌ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€๋ฅผ ๋ด…๋‹ˆ๋‹ค.
  4. API ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. API ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์†์„ ํด๋ฆญํ•˜์—ฌ ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ๋‹ค์Œ ์†์„ฑ ์„ธํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
    • ์ผ๋ฐ˜ ์„ธ๋ถ€์ •๋ณด: API์˜ ํ‘œ์‹œ ์ด๋ฆ„์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์†Œ์œ ์ž ์ •๋ณด: API ์†Œ์œ ์ž์˜ ์ด๋ฆ„ ๋ฐ ์ด๋ฉ”์ผ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€ ์„ธ๋ถ€์ •๋ณด: ์‹œ์Šคํ…œ ์ •์˜ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์†์„ฑ ๊ด€๋ฆฌ์—์„œ ์ด๋Ÿฌํ•œ ์†์„ฑ์— ์ปค์Šคํ…€ ๊ธฐ๋ณธ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ์ •์˜ ์†์„ฑ: ์‚ฌ์šฉ์ž ์ •์˜ ์ปค์Šคํ…€ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์†์„ฑ ๊ด€๋ฆฌ์—์„œ ์ปค์Šคํ…€ ์†์„ฑ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

REST

API ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด Patch API resource API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{
          "display_name": "Updated Test Docs API",        # Example request body with changes
          "description": "This is the updated test API.",
          "owner": {
            "display_name": "Updated Docs Owner",
            "email": "updateddocsowner@gmail.com"
            }
          }
          ' https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • HUB_PROJECT: API ํ—ˆ๋ธŒ ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • HUB_LOCATION: ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์œ„์น˜์ž…๋‹ˆ๋‹ค. ์ด ์œ„์น˜๋Š” API ํ—ˆ๋ธŒ๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์„ ๋•Œ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • API_ID: ์—…๋ฐ์ดํŠธํ•  API์˜ ๊ณ ์œ  ID์ž…๋‹ˆ๋‹ค.
  • ์š”์ฒญ ๋ณธ๋ฌธ: ์š”์ฒญ ๋ณธ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•  ์†์„ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. API ์š”์ฒญ ๋ณธ๋ฌธ ์„ค๋ช…์„ ์ฐธ์กฐํ•˜์„ธ์š”.