다음을 통해 공유


Microsoft Fabric을 사용하는 DevServer

DevServer는 패브릭 워크로드를 개발하는 동안 실행하는 로컬 웹 서버입니다. localhost에서 프론트엔드(SPA)를 실행하고, 개발 중에 Fabric이 호출하여 제품 및 항목 매니페스트를 가져오는 HTTP 엔드포인트 소규모 집합을 제공합니다. DevGateway와 결합하면 패브릭은 iFrame에서 워크로드 UI를 로드하고 테넌트에 아무것도 게시하지 않고 매니페스트 데이터를 읽을 수 있습니다.

DevServer의 기능

  • Fabric이 iFrame에 로드할 수 있도록 localhost에서 http://localhost:60006HTTP를 통해 워크로드 프런트 엔드를 호스트합니다.
  • 매니페스트에서 참조하는 정적 자산(아이콘, 지역화된 문자열, 이미지)을 제공합니다.
  • 패브릭이 개발 중에 매니페스트를 읽는 데 사용하는 로컬 JSON 엔드포인트를 노출합니다.
  • 대부분의 설정에서 핫 다시 로드를 통해 빠른 편집-새로 고침 주기를 사용하도록 설정합니다.

중요합니다

DevServer는 DevGateway와 함께 작동합니다. DevGateway는 패브릭에 로컬 워크로드 인스턴스를 등록하므로 개발 중 서비스가 DevServer 엔드포인트와 통신할 것을 알 수 있습니다.

Fabric에서 DevServer를 호출하는 위치

개발 모드를 사용하도록 설정하고 DevGateway와 DevServer를 모두 시작하는 경우:

  • 패브릭은 워크로드 매니페스트에 정의된 프런트 엔드 엔드포인트를 통해 프런트 엔드로 이동합니다( 워크로드 매니페스트 참조). 개발 시 일반적으로 DevServer에서 노출하는 localhost URL을 가리킵니다.
  • 패브릭은 워크로드에 대한 탐색, 타일 및 기타 UX를 렌더링할 수 있도록 제품 관련 메타데이터에 대해 DevServer를 쿼리합니다. 이렇게 하면 패키지를 다시 빌드하고 업로드하지 않고도 Product.json 및 항목 매니페스트를 반복할 수 있습니다.

DevServer에서 제공하는 로컬 엔드포인트

정확한 경로는 템플릿에 따라 다를 수 있지만 샘플 리포지토리는 예측 가능한 작은 엔드포인트 집합을 노출합니다.

  • GET /— 웹앱을 반환합니다(UI 패브릭이 iFrame에 로드됨).
  • GET /manifests - 프런트 엔드에서 사용하는 제품 매니페스트 및 항목 매니페스트를 집계하는 JSON 페이로드를 반환합니다. 이는 게시 시 Fabric이 예상하는 구조를 반영합니다( 제품 매니페스트항목 매니페스트 참조).
  • GET /assets/... - 매니페스트에서 참조하는 아이콘, 이미지 및 지역화된 문자열을 제공합니다.

비고

  • CORS 및 헤더는 샘플 DevServer에서 미리 구성되므로 앱을 포함하고 호스트와 통신할 수 있습니다.
  • 위의 경로 이름은 현재 샘플을 따릅니다. 프로젝트에서 매니페스트 엔드포인트에 다른 경로를 사용하는 경우 템플릿의 추가 정보를 참조하세요.

일반적인 개발 흐름

  1. 샘플 리포지토리에서 DevServer를 시작하여 localhost에서 프런트 엔드를 호스트합니다.
  2. DevGateway를 시작하여 패브릭에 로컬 워크로드를 등록합니다.
  3. Fabric 작업 영역을 열고 워크로드 진입점을 시작합니다. 패브릭은 iFrame에서 앱을 로드하고 DevServer 엔드포인트를 호출하여 매니페스트 데이터를 읽습니다.
  4. UI 또는 매니페스트 파일을 편집하고 새로 고칩니다. 변경 내용은 다시 패키징하지 않고 즉시 적용됩니다.

각 프로세스를 시작하는 방법은 시작 자습서설치 가이드를 참조하세요.

게시된 매니페스트와의 관계

프로덕션 환경에서 워크로드의 매니페스트는 워크로드의 NuGet 패키지의 일부로 패키지 및 업로드됩니다( 매니페스트 개요 참조). 개발 중에 DevServer의 로컬 엔드포인트는 패키지된 파일에 대한 간단한 스탠드인 역할을 하므로 신속하게 반복할 수 있습니다.

  • 스키마 및 규칙은 게시된 매니페스트와 동일합니다.
  • DevServer는 로컬 개발에만 영향을 줍니다. 게시의 작동 방식은 변경되지 않습니다.

문제 해결 팁

  • iFrame에 빈 페이지가 표시되면 DevServer가 실행 중이고 매니페스트의 프런트 엔드 엔드포인트가 올바른 localhost URL을 가리키는지 확인합니다.
  • 아이콘 또는 문자열이 누락된 경우, assets 경로를 확인하고 DevServer가 파일들을 해당 경로 아래에서 /assets제공하는지 확인하십시오.
  • Fabric에서 매니페스트를 찾을 수 없는 경우 경로가 /manifests 템플릿에 있는지 확인하고 유효한 JSON을 반환합니다.

참고하십시오