moleculer-web icon indicating copy to clipboard operation
moleculer-web copied to clipboard

Undefined `actions` property in `/api/~node/services?withActions=true` causes empty REST API page

Open ggondim opened this issue 1 year ago • 1 comments

I have had this bug with the "REST API" page for some time.

Symptoms

  • The "REST API" page is blank:

image

  • Services and actions are accessible via Moleculer Runner:

image

  • Manually calling /api/~node/services?withActions=true does not return any actions:

image

Debugging

Upon delving deep into the problem, I discovered:

  • An uncaught error in view's getServiceActions(svc.actions) due to an undefined actions property:

image image

  • Applying a console.log to the file moleculer/src/internals.js:L61 shows the withActions parameter as false, even when it's explicitly passed in the request:

image image

  • Additionally, applying a console.log to the file moleculer/src/registry/service-catalog.js:L117 shows an unrecognized parameter value, as L119 is never reached:

image image

Help

  • Is this correct? Am I missing something?
  • Should there be improved error handling?
  • How can I assist in rectifying this if it's indeed an error?

ggondim avatar Aug 28 '23 16:08 ggondim

I discovered that mergeParams: false was the cause of this issue.

Developers should continue to use this configuration without experiencing side effects in internal services.

I implemented a minor workaround in src/index.js:L455 to force parameter merging for internal services, and it resolved the issue.

image

ggondim avatar Aug 28 '23 16:08 ggondim