mulesoft / api-console

An interactive REST console based on RAML/OAS files
Other
911 stars 237 forks source link

OAuth request elements are duplicated in the API console and API request panel #678

Open deiteris opened 3 years ago

deiteris commented 3 years ago

Current examples of element and standalone API console include oauth1-authorization and oauth2-authorization handlers in both, the API console and the api-request-editor component which results in OAuth-related request events fired twice.

Expected outcome

OAuth request handlers should be included in either the API console or the request editor.

Actual outcome

OAuth request handlers included in both elements.

Steps to reproduce

  1. Clone the git repo, run npm i and npm start after the installation.
  2. In the opened browser tab, open the "API console as a standalone application" link or the "API console as a web component" link.
  3. Open any API endpoint method and open the request panel.
  4. Inspect the page code in browser's developer tools and search for <oauth2-authorization. See two entries instead of only one.

Additional information

OAuth handlers are included here https://github.com/advanced-rest-client/api-request/blob/stage/src/ApiRequestEditorElement.js#L986 Standalone API console also includes it here https://github.com/mulesoft/api-console/blob/master/src/ApiConsoleApp.js#L429 The API console element includes it here https://github.com/mulesoft/api-console/blob/master/demo/element/app.js#L65

Was this working before?

Affected browsers

deiteris commented 3 years ago

Any progress on this issue? It's just about removing it from one place or another, and rate limits are no joke in some cases.

I workarounded this by overriding it with my own _helpersTemplate() in the extending class, but still I guess it should be up to implementer, not the request panel.

jarrodek commented 3 years ago

These 2 components should only be included in the api-console-app. For any other use case they should be included separately or the events should be handled by the hosting application. @TwoPlusTwoOne can you please take a look?