Discovery 서비스
플러그인을 만들 때 다른 플러그인의 기본 URL을 조회해 통신해야 할 필요가 있을 수 있어요. 예를 들어 HTTP 라우트나 어떤 ws 프로토콜 URL일 수 있어요. 이를 위해 주어진 플러그인 ID에 대한 내부 및 외부 기본 URL을 모두 제공할 수 있는 discovery 서비스가 있어요.
출처: 문서
본문
플러그인을 만들 때 다른 플러그인의 기본 URL을 조회해 통신해야 할 필요가 있을 수 있어요. 예를 들어 HTTP 라우트나 어떤 ws 프로토콜 URL일 수 있어요. 이를 위해 주어진 플러그인 ID에 대한 내부 및 외부 기본 URL을 모두 제공할 수 있는 discovery 서비스가 있어요.
서비스 사용
다음 예시는 example 백엔드 플러그인에서 discovery 서비스를 가져와 derp 플러그인의 내부 및 외부 기본 URL 모두에 요청을 보내는 방법을 보여줘요.
import { coreServices, createBackendPlugin,} from '@backstage/backend-plugin-api';createBackendPlugin({ pluginId: 'example', register(env) { env.registerInit({ deps: { discovery: coreServices.discovery, }, async init({ discovery }) { const url = await discovery.getBaseUrl('derp'); // can also use discovery.getExternalBaseUrl to retrieve external URL const response = await fetch(`${url}/hello`); }, }); },});