개발자 프록시를 사용하는 것이 API를 모의하는 가장 쉬운 방법입니다. 프런트 엔드를 빌드하고 API가 아직 준비되지 않았든, 백 엔드를 외부 서비스와 통합하거나 다른 응답으로 애플리케이션을 테스트하려는 경우 개발자 프록시는 API 응답을 시뮬레이션하는 데 도움이 될 수 있습니다. 클라우드 서비스와 API를 통합하는 경우 클라우드 서비스에서 액세스할 수 있도록 인터넷을 통해 API를 노출해야 합니다. 인터넷을 통해 개발 프록시에 의해 시뮬레이션된 모의 응답을 노출하려면 Dev Tunnels를 사용합니다. 이 문서에서는 Dev Tunnels를 사용하여 인터넷을 통해 노출되도록 모의 응답을 구성하는 방법을 설명합니다.
모의 응답 정의
인터넷을 통해 개발 프록시에서 시뮬레이션한 모의 응답을 노출하려면 먼저 모의 개체를 구성합니다.
중요합니다
현재 Dev Tunnels는 인터넷을 통해 HTTP 모의 응답 노출만 지원합니다.
모의 응답 만들기
사용자 지정 API에 대한 모의 응답이 포함된 파일을 mocks.json 만듭니다. 예를 들어, GET 요청을 http://api.contoso.com/products으로 시뮬레이션하려면, 정의를 다음과 같이 합니다.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "http://api.contoso.com/products",
"method": "GET"
},
"response": {
"headers": [
{
"name": "content-type",
"value": "application/json"
}
],
"body": [
{
"id": 1,
"name": "Contoso Coffee Beans",
"price": 12.99
},
{
"id": 2,
"name": "Contoso Espresso Machine",
"price": 249.99
}
]
}
}
]
}
또는 를 사용하여 statusCodenthbodyFragment오류, 이진 응답 또는 조건부 응답을 시뮬레이트할 수도 있습니다.
MockResponsePlugin 구성
devproxyrc.json라는 이름의 Dev 프록시 구성 파일을 만들고 MockResponsePlugin를 활성화하세요.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
"plugins": [
{
"name": "MockResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "mocksPlugin"
}
],
"urlsToWatch": [
"http://api.contoso.com/*"
],
"mocksPlugin": {
"mocksFile": "mocks.json"
}
}
중요합니다
여러 엔드포인트를 일치시키려면 urlsToWatch 와일드카드를 사용합니다. 올바른 매칭을 보장하려면, 보다 구체적인 모의 항목을 mocks.json에 먼저 배치하세요.
구성 확인
개발 프록시를 실행하고 모의 API에 요청을 전송하여 모의 항목이 제대로 작동하는지 확인합니다.
현재 작업 디렉터리의 devproxyrc.json 파일에 개발 프록시 구성을 저장했다고 가정하고 개발 프록시를 시작합니다.
devproxy
개발자 프록시를 통해 요청을 전송하여 모의 작업을 테스트합니다.
curl -x http://127.0.0.1:8000 http://api.contoso.com/products
정의된 mocks.json에 모의 제품 목록을 받아야 합니다.
개발자 터널을 사용하여 모의 API 노출
인터넷을 통해 모의 응답을 노출하려면 개발 프록시 포트에 매핑된 개발 터널을 시작합니다. 모의 API에 대해 구성된 호스트 이름을 사용하도록 터널을 구성합니다.
경고
개발 터널에 대한 익명 액세스를 허용한다는 것은 인터넷의 모든 사용자가 개발 터널 ID를 추측할 수 있는 경우 로컬 서버에 연결할 수 있음을 의미합니다.
devtunnel host -p 8000 -a --host-header api.contoso.com
이 명령은 개발 프록시 포트를 공용 HTTP URL에 매핑합니다. 이제 어디서나 모의 API에 액세스할 수 있습니다.
curl http://<your-tunnel-id>-8000.<region>.devtunnels.ms/products
Dev Proxy