클라우드 서비스에서 발급한 API 요청 검사
애플리케이션을 클라우드 서비스와 통합할 때 발생할 수 있는 과제 중 하나는 클라우드 서비스가 사용하는 API와 상호 작용하는 방식을 이해하는 것입니다. 문제를 해결하거나 클라우드 서비스의 작동 방식을 이해하려고 할 때 API 요청을 검사할 수 있는 것은 특히 중요합니다. 일반적으로 클라우드 서비스의 런타임에 액세스할 수 없고 클라우드 API에 대한 모니터링 도구에 액세스할 수 없기 때문에 어려운 일입니다. 개발자 프록시 및 개발 터널 사용하여 클라우드 서비스가 클라우드 API에 발급하는 API 요청을 검사할 수 있습니다.
Important
계속하기 전에 개발 터널 설치하고 사용할 도구를 구성합니다.
클라우드 서비스가 클라우드 API를 호출하는 방법
애플리케이션을 클라우드 서비스와 통합하면 클라우드 서비스가 클라우드에서 API를 호출합니다. 다음 다이어그램은 이 시나리오를 보여 줍니다.
클라우드 서비스가 발급하는 API 요청을 검사하려면 클라우드 API에 대한 모니터링 도구에 액세스해야 합니다. 종종 이러한 도구에 액세스할 수 없습니다. 스테이징 환경을 사용하여 이 제한을 해결할 수 있습니다. 그러나 스테이징 환경을 설정하고 유지 관리하는 데는 시간이 많이 걸립니다. 또한 클라우드 API를 소유하지 않으면 스테이징 환경을 전혀 설정하지 못할 수 있습니다.
개발자 프록시를 사용하여 API 요청 검사 및 개발 터널
개발자 프록시 및 개발 터널 사용하여 클라우드 서비스가 클라우드 API에 발급하는 API 요청을 검사할 수 있습니다.
클라우드 API를 직접 호출하는 대신 로컬 컴퓨터에서 실행하는 개발 터널을 호출하도록 클라우드 서비스를 구성합니다(1). 개발자 프록시가 가로채는 호스트 헤더를 사용하도록 개발 터널을 구성합니다. 클라우드 서비스가 개발 터널을 호출할 때마다 요청을 Dev Proxy에 전달하여 가로채는(2) 개발자 프록시 RewritePlugin을 사용하여 가로채는 요청의 URL을 변경하고 클라우드 API(3)로 전달합니다. 클라우드 API는 요청을 처리하고 개발자 프록시(4)에 대한 응답을 반환합니다. 개발자 프록시는 클라우드 서비스(6)에 전달하는 개발 터널(5)에 응답을 전달합니다. 요청은 로컬 머신을 통해 라우팅되므로 URL, 헤더 및 본문 및 클라우드 API의 응답을 포함하여 해당 정보를 검사할 수 있습니다.
시나리오
클라우드 서비스가 에 있는 https://jsonplaceholder.typicode.com
데모 JSONPlaceholder API에 발급하는 API 요청을 검사하려는 경우를 가정해 보겠습니다. 개발자 프록시와 개발 터널 결합하여 요청을 가로채서 해당 정보를 검사할 수 있습니다.
개발 터널 검사 도구를 사용하거나 Dev Proxy DevToolsPlugin을 사용하여 요청을 검사할 수 있습니다. 두 도구 모두 Chrome Dev Tools를 사용하여 가로채는 요청 및 응답에 대한 정보를 표시합니다. 개발 터널 검사 도구를 사용하면 개발 터널 URL이 요청 URL로 표시됩니다. 이에 비해 개발자 프록시 DevToolsPlugin을 사용하는 경우 로컬 또는 다시 작성된 URL을 사용하여 개발자 프록시가 요청을 가로채는 방법을 확인할 수 있습니다.
개발자 프록시, 개발 터널 및 개발 터널 검사 도구를 사용하여 API 요청 검사
요청을 가로채도록 개발 프록시를 구성하고
http://jsonplaceholder.typicode.local
다음을https://jsonplaceholder.typicode.com
수행합니다.{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/rc.schema.json", "plugins": [ { "name": "RewritePlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll", "configSection": "rewritePlugin" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*", "http://jsonplaceholder.typicode.local/*" ], "rewritePlugin": { "rewritesFile": "devproxy-rewrites.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }
구성 파일은 RewritePlugin을 사용하여 가로채는 요청의 URL을 다시 작성합니다. 또한 요청과
http://jsonplaceholder.typicode.local
URL을 가로채도록 Dev Proxy를https://jsonplaceholder.typicode.com
구성합니다.참고 항목
도메인을 사용할
.local
필요는 없지만 실제 요청과 가로채는 요청을 구분하는 데 도움이 되는 것이 좋습니다. 또한 도메인의.local
경우 HTTPS 대신 HTTP 프로토콜을 사용합니다. 개발자 터널은 로컬 컴퓨터의 사용자 지정 호스트 헤더에 대한 요청을 라우팅하기 위해 HTTPS를 지원하지 않으므로 HTTP를 사용해야 합니다.가로채는 요청의 URL을 변경하는 이름이 지정된
devproxy-rewrites.json
다시 쓰기 파일을 만듭니다.{ "rewrites": [ { "in": { "url": "^http://jsonplaceholder.typicode.local(.*)" }, "out": { "url": "https://jsonplaceholder.typicode.com$1" } } ] }
다시 쓰기 파일은 가로채는 요청의 URL을 .로
http://jsonplaceholder.typicode.local
https://jsonplaceholder.typicode.com
변경합니다.명령줄
devproxy
에서 실행하여 개발 프록시를 시작합니다.명령줄
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous
에서 실행하여 개발 터널을 시작합니다.이 명령을 사용하여 머신에서 새 개발 터널을 엽니다. 개발자 프록시가 들어오는 요청을 수신 대기하는 8000 포트에 매핑합니다. 또한 개발자 프록시가 가로채는 호스트 헤더를 지정합니다.
예를 들어
https://tunnel_id-8000.euw.devtunnels.ms
로컬 머신을 호출하도록 클라우드 서비스를 구성하는 데 사용할 수 있는 개발 터널의 URL을 확인합니다.웹 브라우저에서 개발 터널 검사 URL(예:
https://tunnel_id-8000-inspect.euw.devtunnels.ms
)을 엽니다.다음 명령줄
curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1
에서 실행하여 개발 터널 URL을 사용하여 클라우드 API를 호출하는 클라우드 서비스를 시뮬레이션합니다.참고 항목
호스트 이름은 컴퓨터에서 개발 터널의 URL에 해당합니다. 경로는 검사하려는 API의 경로와 일치합니다.
개발자 프록시가 요청을 가로채 클라우드 API로 전달하여 결국 클라이언트에 응답을 반환하는 방법을 확인합니다.
웹 브라우저에서 가로채는 요청 및 클라우드 API의 응답에 대한 정보를 확인합니다.
참고 항목
기록된 요청 URL은 개발 터널의 URL입니다. 기록된 호스트 헤더는 개발자 프록시가 가로채는 호스트 헤더입니다.
명령줄에서 해당 세션에서 Ctrl+C를 눌러 개발 터널을 닫고 개발 프록시를 중지합니다.
개발자 프록시 및 DevToolsPlugin을 사용하여 API 요청 검사
클라우드 서비스에서 발생하는 API 요청을 검사하는 또 다른 방법은 개발자 프록시 DevToolsPlugin을 사용하는 것입니다. DevToolsPlugin과 개발 터널 검사 도구의 차이점은 DevToolsPlugin이 로컬 또는 다시 작성된 URL을 사용하여 Dev Proxy가 요청을 가로채는 방법을 보여 줍니다.
DevToolsPlugin을 사용하여 가로채는 URL을 사용하여 API 요청을 검사하도록 개발 프록시 구성
먼저 클라우드 API 요청을 검사하도록 개발자 프록시를 구성해 보겠습니다. Dev Proxy에서 URL을 다시 쓰기 전에 URL에 대한 정보를 표시하도록 DevToolsPlugin을 구성해 보겠습니다.
DevToolsPlugin을 사용하도록 Dev Proxy 구성 파일을 업데이트합니다.
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/rc.schema.json", "plugins": [ { "name": "DevToolsPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll" }, { "name": "RewritePlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll", "configSection": "rewritePlugin" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*", "http://jsonplaceholder.typicode.local/*" ], "rewritePlugin": { "rewritesFile": "devproxy-rewrites.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }
참고 항목
RewritePlugin 앞에 DevToolsPlugin을 추가합니다. 먼저 DevToolsPlugin을 추가하면 다시 작성하기 전에 가로채는 요청에 대한 정보가 표시됩니다.
명령줄
devproxy
에서 실행하여 개발 프록시를 시작합니다. 개발자 프록시는 Chrome Dev Tools가 표시된 웹 브라우저 창을 엽니다.명령줄
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous
에서 실행하여 개발 터널을 시작합니다.다음 명령줄
curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1
에서 실행하여 개발 터널 URL을 사용하여 클라우드 API를 호출하는 클라우드 서비스를 시뮬레이션합니다.Chrome Dev Tools가 있는 웹 브라우저에서 가로채는 요청 및 클라우드 API의 응답에 대한 정보를 확인합니다.
참고 항목
기록된 요청 URL은 클라우드 API의 URL입니다. 기록된 호스트 헤더는 개발자 프록시가 가로채는 호스트 헤더입니다.
명령줄에서 해당 세션에서 Ctrl+C를 눌러 개발 터널을 닫고 개발 프록시를 중지합니다.
DevToolsPlugin을 사용하여 다시 작성된 URL을 사용하여 API 요청을 검사하도록 개발 프록시 구성
다음으로, 다시 작성된 URL에 대한 정보를 표시하도록 개발자 프록시 구성을 업데이트해 보겠습니다.
RewritePlugin 이후 DevToolsPlugin을 이동하여 개발자 프록시 구성 파일을 업데이트합니다.
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/rc.schema.json", "plugins": [ { "name": "RewritePlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll", "configSection": "rewritePlugin" }, { "name": "DevToolsPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*", "http://jsonplaceholder.typicode.local/*" ], "rewritePlugin": { "rewritesFile": "devproxy-rewrites.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }
명령줄
devproxy
에서 실행하여 개발 프록시를 시작합니다. 개발자 프록시는 Chrome Dev Tools가 표시된 웹 브라우저 창을 엽니다.명령줄
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous
에서 실행하여 개발 터널을 시작합니다.다음 명령줄
curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1
에서 실행하여 개발 터널 URL을 사용하여 클라우드 API를 호출하는 클라우드 서비스를 시뮬레이션합니다.Chrome Dev Tools가 있는 웹 브라우저에서 가로채는 요청 및 클라우드 API의 응답에 대한 정보를 확인합니다.
참고 항목
기록된 요청 URL과 호스트 헤더 모두 클라우드 API의 URL을 표시합니다.
명령줄에서 해당 세션에서 Ctrl+C를 눌러 개발 터널을 닫고 개발 프록시를 중지합니다.
요약
개발자 프록시 및 개발 터널 사용하여 클라우드 서비스가 클라우드 API에 발급하는 API 요청을 검사할 수 있습니다. 개발 터널 검사 도구 또는 Dev Proxy DevToolsPlugin을 사용하여 요청을 검사할 수 있습니다. 두 도구 모두 URL, 헤더 및 본문 및 클라우드 API의 응답을 포함하여 가로채는 요청에 대한 정보를 보여 줍니다. 개발자 프록시 및 개발 터널 사용하여 클라우드 서비스가 클라우드 API와 상호 작용하는 방식을 더 잘 이해하고 문제를 보다 효과적으로 해결할 수 있습니다.
다음 단계
RewritePlugin에 대해 자세히 알아봅니다.
Dev Proxy