From de7587254f4b658c803dc4f22569622c2c40afc4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 26 Sep 2022 16:55:59 +0200 Subject: [PATCH] backend-app-api: fix for root router overriding api routes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Co-authored-by: Johan Haals Signed-off-by: Patrik Oldsberg --- .../services/implementations/httpRouterService.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/backend-app-api/src/services/implementations/httpRouterService.ts b/packages/backend-app-api/src/services/implementations/httpRouterService.ts index c470443edc..d9fc807b1a 100644 --- a/packages/backend-app-api/src/services/implementations/httpRouterService.ts +++ b/packages/backend-app-api/src/services/implementations/httpRouterService.ts @@ -42,21 +42,27 @@ export const httpRouterFactory = createServiceFactory({ plugin: pluginMetadataServiceRef, }, async factory({ config }, options?: HttpRouterFactoryOptions) { - const rootRouter = Router(); const defaultPluginId = options?.indexPlugin ?? 'app'; + const apiRouter = Router(); + const rootRouter = Router(); + const service = createServiceBuilder(module) .loadConfig(config) + .addRouter('/api', apiRouter) .addRouter('', rootRouter); await service.start(); return async ({ plugin }) => { const pluginId = plugin.getId(); - const path = pluginId === defaultPluginId ? '' : `/api/${pluginId}`; return { use(handler: Handler) { - rootRouter.use(path, handler); + if (pluginId === defaultPluginId) { + rootRouter.use(handler); + } else { + apiRouter.use(`/${pluginId}`, handler); + } }, }; };