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.81k stars 839 forks source link

Export collections with WebSocket and gRPC requests #11252

Open deividas-pelakauskas opened 1 year ago

deividas-pelakauskas commented 1 year ago

Is there an existing request for this feature?

Is your feature request related to a problem?

There is no ability to export a collection with WebSocket requests.

Describe the solution you'd like

An ability to export a collection as a JSON file with WebSocket requests the same way it can be done with HTTP request collections.

Describe alternatives you've considered

No response

Additional context

No response

codenirvana commented 1 year ago

@deividas-pelakauskas Thanks for the feature request. Collections with WebSocket and gRPC requests have limited functionality for now. We are tracking this internally.

Can you also share your workflow with the exported collection JSON?

cervajs commented 1 year ago

collection is published for customers

sineed commented 1 year ago

Yes, it has the same use-case as with HTTP collections: you share it within your team and/or clients interested to integrate

deividas-pelakauskas commented 1 year ago

@codenirvana As others mentioned, would be incredibly useful if we could share the collection with third-parties to test out product based on WebSocket. Workflow:

  1. Create a WebSocket collection with messages
  2. Export WebSocket collection as a JSON file
  3. Third-party imports WebSocket collection to use
Djikkac commented 1 year ago

Would be great to implement the same for gRPC collections as well!! Need this to run the collection via CLI, Pipeline.

adimoi commented 1 year ago

Current Workflow (simplified) based on REST API requests:

  1. Developers/Testers create a Postman Collection with REST API requests to test their REST API service app.
  2. The Postman Collection is saved into the code repository together with the app's source code.
  3. Commiting to the code repository triggers the CI/CD Pipeline that:
    • clones the code repository containing the app's source code and the Postman Collection with REST API requests
    • builds the app
    • executes the app's unit tests
    • runs the app
    • executes the component tests, which is the newman app running the Postman Collection with REST API requests targeted to the running app

Desired Workflow (simplified) based on gRPC API requests: Developers migrate the REST API service app to a gRPC API service app. They must be able to do all the above steps with the new gRPC API service app, which are:

  1. Developers/Testers create a Postman Collection with gRPC API requests to test their gRPC API service app.
  2. The Postman Collection is saved into the code repository together with the app's source code.
  3. Commiting to the code repository triggers the CI/CD Pipeline that:
    • clones the code repository containing the app's source code and the Postman Collection with gRPC API requests
    • builds the app
    • executes the app's unit tests
    • runs the app
    • executes the component tests, which is the newman app running the Postman Collection with gRPC API requests targeted to the running app
l3ender commented 1 year ago

We also save Postman collections in version control, so being able to export grpc-based collections would be great!

Thomas-1985 commented 1 year ago

I would also like this feature as it will be very useful (i also use websocket events in Postman)

mdemler commented 1 year ago

We could really use this feature too.

luisbraga-msg commented 1 year ago

+1

duartecaldascardoso commented 1 year ago

+1

kavithamadhavaraj commented 1 year ago

+1

Brettm247 commented 1 year ago

+1

alankleindev commented 1 year ago

+1

shubhwip commented 1 year ago

+1

MaksimKiselev commented 1 year ago

+1

trwalker commented 1 year ago

+1

devfreitag commented 1 year ago

+1

julpod commented 1 year ago

+1

noreading commented 1 year ago

+1

I'm definitely in for that. It would allows us to share a collection with third parties without having to invite every single one of them to our team.

jhernandez-sps commented 1 year ago

I actually need that feature, I must find other alternative

z4c777 commented 1 year ago

QOL feature that definitely needs to be added!

jankrynauw commented 1 year ago

This is a big deal. Combining Protocol Buffers with gRPC unlocked a world of elegance in almost all languages (autogenerated go, python, javascrript, docs, swagger, validations, envoy proxies, etc.). If the Postman Collection SDK supports gRPC one could easily generate a Postman Collection directly from the protos. Something along the lines of proco-gen-postman would be amazing.

andife commented 1 year ago

Is there any active work on the subject? Or roadmap plans?

rizi commented 1 year ago

We are also interested in this feature!

jl-beast commented 1 year ago

@codenirvana Can you give us an update on whether this feature has been added to the roadmap? WebSocket and gRPC requests exports when run with newman gives us a lot of power for doing integration tests for all sorts of applications.

Hamma111 commented 1 year ago

+1 to this feature please! Extremely needed, and does not make sense why we have it for http collections and not for websocket connections. If we can export http, there are defintely use cases to export socket collections as well. so much much needed feature

ramprakash-CA commented 1 year ago

@adimoi @Hamma111 @jl-beast @jankrynauw @jhernandez-sps @noreading @mdemler @Thomas-1985 @l3ender guys! - Seems like this feature is not going to be added anytime soon! until then for regression runs using new man this helps!

https://pypi.org/project/grpcrest/ - Try out this plugin this converts gRPC into a rest api using - grpcurl command line tool - for more details refer this -

Key Components of the Plugin:

  1. gRPC <> Rest API: The plugin takes gRPC server, service, and method names as headers. The body typically contains information such as the payload, and any additional metadata to be sent can be provided as Params in the Rest API.

  2. Request Parsing: The plugin parses the headers, metadata, and request payload provided, extracting the necessary information like the target service, method name, metadata, and payload data. This information will be used to construct the corresponding grpcurl command.

  3. gRPCurl Command Generation: Based on the parsed elements, the plugin dynamically generates the grpcurl command that is then used to invoke the gRPC request. It assembles the necessary flags, headers, and payload, ensuring compatibility with the grpcurl tool.

  4. Command Execution: Once the grpcurl command is generated, the plugin executes it on the terminal, leveraging the subprocess module in Python. The plugin captures the command output and returns it as the response to the original REST API request.

How to use the GRPC-to-REST Plugin?

The plugin can be downloaded from the following link: https://pypi.org/project/grpcrest/ Use the following commands in your terminal after installing Python:

The above commands will start a simple Flask-based web server on localhost. Once the plugin is up and running, use the HTTP URL along with /invoke_gRPC in the HTTP Post request. Provide all the required Server, Service, Method, Meta data, and the request payload in the Body, headers, and Params section, and invoke the HTTP request to get a response from the gRPC API.

TO START THE PLUGIN : pip install grpcrest start-grpc-rest-5000

gfiecht commented 1 year ago

As we are using grpc more and more with our services, it would be extremely helpful to have this feature!

adzimzf commented 1 year ago

+1

this feature will be really helpful

tmack8001 commented 1 year ago

Why would we want to create websocket Postman collections and not be able to have our data escape from Postman itself... makes no sense to me why this wouldn't have export capabilities.

Also I found it isn't even in my cloud backup/export. How am I to get access to my data I choose to created with Postman. Come on, give us our data let it be ours :sigh:

fonsitoubi commented 10 months ago

@deividas-pelakauskas Thanks for the feature request. Collections with WebSocket and gRPC requests have limited functionality for now. We are tracking this internally.

Can you also share your workflow with the exported collection JSON?

Our use case is much more easy and basic, and there's where the frustration with the license purchase comes from:

  1. We were testing postman to see if it meets gRPC apis needs
  2. After having several collections, we passed to a payment license in a new team
  3. We realized that postman doesn't allow to export all the collections we have into the new team

So after paying the license for the whole team, now we see we have to start from scratch generating all the gRPC collections we already had.

Btw, I've tried many ways to evem move it, by share it with link, but once visiting the link, you log into the old team and not the new one, and its not possible at all to move the collection from the old team to a workspace in the new team (which I find totally incredible), so I don't understand at all the "share" feature if it cannot share it for being moved into the workspace of another team. Not even possible to import it by pasting the link into the "import" popup. Also tried to fork it into My Workspace in the old team, and fork it again in the new one. But although I'm using the same email account, it's not possible to do that as the My Workspace is different from one team to the other.

Is there any official answer about this from the development team, with the current status of the feature if its indeed being in development? or are you not planning to allow the licensed users to bring their grpc collections to their team?

Thanks

darius-milea commented 5 months ago

+1

pbacevedo commented 5 months ago

+1

Pseudo-Nym commented 5 months ago

+1

FabriceMk commented 5 months ago

This is ridiculous, I was developing a gRPC API and wanted to use Postman to test it and share my collections to QA engineers and realized that I cannot export gRPC collections as a file at all. I didn't notice until the end that gRPC was missing so many features compared to HTTP/REST.

A lot of hours of proper collections with testing to realize that it is all locked down and I cannot even reuse this efficiently elsewhere.

I think we should not expect this feature, it seems recently Postman tries everything to push for their subscription and online sharing infrastructure.

DSchau commented 4 months ago

@FabriceMk we appreciate the feedback! If you could share more observations on what you expected to be supported from gRPC (compared to HTTP/REST) that would also be highly appreciated!

To respond to your feedback, we are aware that this limitation is an issue and we are planning to invest in improving this. If context is appreciated, when we launched new protocols (like gRPC, GraphQL, MQTT, Websockets, and so on) we did so with a new collections format so that we could move more quickly to introduce the feature set that a protocol affords but we did so with a conscious trade-off that these new protocols aren't fully supported in the breadth of Postman's feature set (not just exporting collections, but things like running collections, mocking requests in collections, and so on). When we make a trade-off like that, we don't plan to make it permanent and we're sorry for the unexpected frustration this has caused.

PS: If you'd like to chat for 30 minutes about how we could improve Postman for you, we're always excited to learn more from our users: https://app.reclaim.ai/m/dschau/quick-meeting (note: looks like you're in Tokyo, not sure how much overlap we'll have!)

jiimaho commented 4 months ago

Any update if there is any official plans whatsoever to add support for exporting a gRPC collection?

jimmiebfulton commented 4 months ago

I use model-driven code generation to generate gRPC and GraphQL applications. I want to also code-generate the Postman collections for all of these applications.

As long as this ticket has been out, I suspect your engineering team's SDLC is not quite as fast as mine. ;-)

ericlink commented 2 months ago

buy buy bye bye postman

dptsolutions commented 2 months ago

Well, the lack of this feature is costing me time.

I'd created a collection of websocket calls on my personal account's "team". Then I found out my work has a license, so I got my personal account added to my work's team. But there doesn't seem to be a way for me to move or share between my personal "team" and my work's "team", so without the export feature, I'm screwed and manually re-creating this collection in my work's "team".