API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ํ”„๋ก์‹œ ๋ฐฐํฌ ์ƒํƒœ ํ™•์ธ

์ด ์„น์…˜์—์„œ๋Š” Apigee API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ํ”„๋ก์‹œ์˜ ๋ฐฐํฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ƒˆ API ํ”„๋ก์‹œ ๋งŒ๋“ค๊ธฐ ๋ฐ ๋ฐฐํฌ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ํ…Œ์ŠคํŠธ API ํ”„๋ก์‹œ๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  2. Apigee ์กฐ์ง ๊ด€๋ฆฌ์ž ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค๋กœ JSON ํŒŒ์ผ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค ๊ณ„์ •๊ณผ ํ‚ค๋Š” ๋™๊ธฐํ™” ๋‹ด๋‹น์ž ์•ก์„ธ์Šค ์‚ฌ์šฉ ์„ค์ •์—์„œ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  3. ๋‹ค์Œ ๋‘ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ† ํฐ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    ์—ฌ๊ธฐ์„œ org-admin-service-account-file์€ Apigee ์กฐ์ง ๊ด€๋ฆฌ์ž ์—ญํ• ๋กœ ๋‹ค์šด๋กœ๋“œํ•œ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค์— ๋Œ€ํ•œ ์‹œ์Šคํ…œ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

  4. ๋‹ค์Œ ๋ถ€๋ถ„์„ ํฌํ•จํ•˜์—ฌ ๋ฒ„์ „ API๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ URL: https://apigee.googleapis.com/v1
    • ์—”๋“œํฌ์ธํŠธ URL: /organizations/my-organization/environments/test/apis/myproxy/revisions/1/deployments
    • ํ”„๋กœํ† ์ฝœ: HTTPS
    • ๋ฉ”์„œ๋“œ: GET
    • ํ—ค๋”: "Authorization: Bearer $TOKEN"

    ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” curl์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์„ค์ •์œผ๋กœ ๋ฐฐํฌ ๋ฒ„์ „ API๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

    curl "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/apis/myproxy/revisions/1/deployments" \
    -X GET -H "Authorization: Bearer $TOKEN"

    ๋‹ค์Œ๊ณผ ๋น„์Šทํ•œ ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    {
      "environment": "test",
      "apiProxy": "myproxy",
      "revision": "1",
      "deployStartTime": "1616787712821",
      "state": "READY",
      "instances": [
        {
          "instance": "hybrid-docs-id",
          "deployedRevisions": [
            {
              "revision": "2",
              "percentage": 100
            }
          ],
          "deployedRoutes": [
            {
              "basepath": "/myproxy",
              "envgroup": "test-group",
              "environment": "test",
              "percentage": 100
            }
          ]
        }
      ]
    }

    ์ด ์‘๋‹ต ์˜ˆ์‹œ๋Š” API ํ”„๋ก์‹œ์˜ ์ƒํƒœ๊ฐ€ READY๋กœ, ๋ฐฐํฌ์— ์„ฑ๊ณตํ–ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

    ๋นˆ ์‘๋‹ต ๋˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ๋‹ค์Œ์„ ํ™•์ธํ•˜์„ธ์š”.

    • ์˜ฌ๋ฐ”๋ฅธ ๊ธฐ์ค€ URL์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ธฐ์ค€ URL์€ Edge API์˜ ๊ธฐ๋ณธ URL๊ณผ ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. https://apigee.googleapis.com/v1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ฌ๋ฐ”๋ฅธ ์—”๋“œํฌ์ธํŠธ URL์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „์€ '1'์ด๊ณ  ์—”๋“œํฌ์ธํŠธ๋Š” /organizations/my_organization/environments/test/apis/myproxy/revisions/1/deployments์ž…๋‹ˆ๋‹ค. ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „์„ ์ง€์ •ํ•˜๋ฉด ์š”์ฒญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋นˆ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
      { }
    • ์š”์ฒญ์—์„œ ์ง€์ •ํ•˜๋Š” ์กฐ์ง์— ์•ก์„ธ์Šคํ•  ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ† ํฐ์ด ๋งŒ๋ฃŒ๋œ ๊ฒฝ์šฐ OAuth 2.0 ์•ก์„ธ์Šค ํ† ํฐ ๋ฐ›๊ธฐ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์ƒˆ ํ† ํฐ์„ ๋‹ค์‹œ ์ƒ์„ฑํ•˜์„ธ์š”.
    • "Authorization: Bearer $TOKEN" ํ—ค๋”๋ฅผ ๋”ฐ์˜ดํ‘œ๋กœ ๋ž˜ํ•‘ํ–ˆ์Šต๋‹ˆ๋‹ค.