postmanlabs / postman-app-support

Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.
https://www.postman.com
5.82k stars 839 forks source link

Add capability to add custom menus and functionality into the Postman IDE #10505

Open vbisbest opened 2 years ago

vbisbest commented 2 years ago

Is there an existing request for this feature?

Is your feature request related to a problem?

It would be great if Postman had the ability for developers to create custom extensions/plugins for the IDE. This would make integrating 3rd party features look and feel native within Postman. For instance, the ability to right click on a collection and have a custom action like "upload to Github", or "email to teammate".

Describe the solution you'd like

There would need to be a plugin architecture. Would need the ability to specify where and how the action shows up (top menu system, collection, operation etc.) There would also be nice to have a configuration screen for plugins that are created by developers. For instance if I make a Github plugin, I would want to specify credentials and url.

Describe alternatives you've considered

None available

Additional context

No response

adriancuadrado commented 2 years ago

It can be far simpler than that. For instance, take a look at this: You open DevTools and copy-paste the Javascript code. This is obviously not ideal, but Postman could at least have a folder with Javascript files that are executed the same way you would in DevTools. Then adding a plugin would be a matter of adding a file there, and then you modify the UI with document.querySelector('...').addEventListener('click', ...);. You don't really need a plugin architecture because you can modify Postman's functionality with a code that manipulates the DOM.

vbisbest commented 2 years ago

Thank you for your response @adriancuadrado . I will take a look, but this sounds fairly hacky. Other vendors e.g. ReadyAPI and Insomnia support plugins natively. They give the ability to modify, monitor and take actions on collections all within the UI. This is done via a plugin folder and get loaded automatically when the products open. They also have objects to access within the plugin code that makes navigation collections, operations etc very easy.