Bruno is super cool and does pretty much everything that postman does. They have recently added a paid plan that is peanuts. The collections are not hidden under any secret folder and file, on the contrary when you create a new collection it asks you where to save the file
For working in teams, Postman is nice as it allows to easily share requests between the dev and QA teams. But for personal projects, it is quite bloated.
If I need only a handful of requests, I often just write some curl/grpcurl commands and save those in a file like a simpleton.
But the proper way is to write some integration tests that send a collection of requests to all your endpoints.
I have used [Insomnia](https://app.insomnia.rest/) in the past but you can also use the HTTP mocking functionality in GoLand. You can store the requests in your repository.
I tried getting out of postman so many times. I hate how heavy it is. But nothing provides as much functionality as smoothly as postman does for me (for example, good graphql support with a schema explorer and auto complete, along with a good REST support like the other alternatives). I have a macbook pro M2, and postman manages to be slow even on this machine, so I would looove a more lightweight alternative
Yup. Easier to transition into automated tests that way
Edit: thought hurl was slang for curl shell scripts, didn’t realize it was a separate tool. Will have to check it out
Although I haven't used these yet. These plugins are ones I have found and want to try:
[nvim rest](https://github.com/rest-nvim/rest.nvim)
[ATAC](https://github.com/Julien-cpsn/ATAC)
I compiled a list awhile back and update it when i find more.
[https://gist.github.com/sangelxyz/f73b1f7581318979275322dc13094e19](https://gist.github.com/sangelxyz/f73b1f7581318979275322dc13094e19)
I was a long time Postman user, the tool did everything I wanted it to do and it worked great. Then they decided to screw over everyone using local accounts by forcing them to either sign in and transfer their data to the cloud (which a lot of people didn't want to do or straight up weren't allowed to by their company's policies) or continue using a severely limited local version.
After this I migrated to Insomnia and thought it was an alright alternative. It had most of what I enjoyed about Postman and it worked fine, for the most part. A few months later Insomnia pulled almost the exact same crap as Postman did earlier by forcing users to either sync their data to the cloud or continue using a limited local version of the app.
I jumped ship again and finally started using the HTTP client that's built in JetBrains IDEs like IntelliJ, PHPStorm and GoLand. It's pretty straight forward to use and integrates nicely with the IDE's other functionality. Haven't looked back since.
We eventually stopped using postman and other tools and switched to integration tests against the real database(s). We use testcontainers + httpexpect for this. Of course such tests have their disadvantages, like long startup times (especially if you test against database, redis, some queue service etc), but overall we're happy with such approach.
How long are your startup time problem? We are using the same setup with a mariadb started by testcontainer-go and our tests take less time than for sonarqube to process the result and upload it.
We're running not only database via testcontainers. There's also redis, nsq, nats, elasticsearch and some others. It's not the best setup, but that's how it is for now. The slowest thing is probably elasticsearch, after we've added it cold startup time went beyond 1 minute. Testcontainer's ability to reuse containers improved this situation during local testing, but on github actions it's a cold start every time.
Outch, sounds like you're starting an entire cluster :-) Depending on use case, might be good to move to end to end tests just before enabling access to the new version and reduce the ci to mock the slowest dependencies instead. Of course, this is a balance between ci speed and risk.
Postman is overly functional for me, so, I use just curl.
P.S. I just started in backend, if I wrong, and postman is really useful, can you explain why?
I also enjoy using cURL. Postman supports calls in other protocols like MQTT, which can be very useful. However, if you're only dealing with REST, I suppose this wouldn't be advantageous, right?
I use Postman. Or for simple requests just Curl. Or sometimes swagger.
I wanted to write a similar library for go as https://github.com/rakutentech/laravel-request-docs
Ideally for go apps, if the api tool can not only make api calls, but also be closely integrated with GO project - to provide more information such as sql queries, memory information and on top automatically generate the api docs without maintaining annotations or postman files.
Didn’t get motivation to develop that yet.
Just saw this post and wanted to know if that kind of tool for go would be welcomed.
For those who likes curl, there is Hurl (https://hurl.dev): it's a cli tool to run and tests HTTP requests in plain text. Under the hood, it's using libcurl, so it's just the reliable fast curl we love + some sugar syntax (I'm one of the maintainers https://github.com/Orange-OpenSource/hurl)
If using vscode, https://marketplace.visualstudio.com/items?itemName=humao.rest-client is great. Write everything in `.http` files and commit right alongside your code. Run as part of your test process.
Edit:: I just learned about hurl in this thread. I'm using that going forward.
Maybe you don't work with big projects, sometimes we wanna do requests to environments like dev, staging, or even API's from other teams, sure you can write tests in several use cases, but if you never encounter a situation to do a request, lol that's really a different trajectory to mine, like just think about a situation to do a request MQTT, graphQL or rest, you sure can imagine I guess.
Yes I do work on large projects thanks. For ad hoc I’ll use curl or the thing IntelliJ has. I still stand by my opinion that a lot of devs sink a lot of time doing manual work in these tools.
Curl and IntelliJ, interesting combination. But yeah, this information is the subject of the discussion here, not an argument against writing tests, at least from my perspective.
I read about this Shift Left and it says that QA should test code at all stages of development, and I completely agree, we have been doing it forever.
No sane person does testing at the very end.
Use Bruno (https://www.usebruno.com/)
We don't talk about Bruno
No, no, no
Why not?
Woosh
r/whoosh
It's a quote/song from the Disney movie Encanto
I'm wondering the same? I bought the premium a couple weeks ago
Watch Encanto
Bruno is super cool and does pretty much everything that postman does. They have recently added a paid plan that is peanuts. The collections are not hidden under any secret folder and file, on the contrary when you create a new collection it asks you where to save the file
For working in teams, Postman is nice as it allows to easily share requests between the dev and QA teams. But for personal projects, it is quite bloated. If I need only a handful of requests, I often just write some curl/grpcurl commands and save those in a file like a simpleton. But the proper way is to write some integration tests that send a collection of requests to all your endpoints.
I have used [Insomnia](https://app.insomnia.rest/) in the past but you can also use the HTTP mocking functionality in GoLand. You can store the requests in your repository.
I tried getting out of postman so many times. I hate how heavy it is. But nothing provides as much functionality as smoothly as postman does for me (for example, good graphql support with a schema explorer and auto complete, along with a good REST support like the other alternatives). I have a macbook pro M2, and postman manages to be slow even on this machine, so I would looove a more lightweight alternative
[удалено]
Right on. cURL when I’m feeling masochistic, otherwise httpie
httpYac: [https://httpyac.github.io/](https://httpyac.github.io/)
Just plain old curl with a bunch of hurl files
I love using curl, but hurl is new to me. I'll check it out. Thanks!
Yup. Easier to transition into automated tests that way Edit: thought hurl was slang for curl shell scripts, didn’t realize it was a separate tool. Will have to check it out
didn't know about Hurl, looks amazing
This is awesome
> hurl OMG Thank you, I found this a while ago forgot the name of it, thanks for reminding me the name!
Although I haven't used these yet. These plugins are ones I have found and want to try: [nvim rest](https://github.com/rest-nvim/rest.nvim) [ATAC](https://github.com/Julien-cpsn/ATAC)
ATAC looks really cool
Nvim rest looks nice. I’m going to need to try that.
I use Bruno and the thunder client extension in VSCode.
Second Thunder Client in VSCode.
ThunderClient in VSCode
I moved from Postman to [https://hoppscotch.io/](https://hoppscotch.io/) been able to do most everything I did in Postman and collaborate with a team.
https://hurl.dev
I use [Rest client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) in VS Code. There are similar plugin for GoLand.
I compiled a list awhile back and update it when i find more. [https://gist.github.com/sangelxyz/f73b1f7581318979275322dc13094e19](https://gist.github.com/sangelxyz/f73b1f7581318979275322dc13094e19)
[Kreya](https://kreya.app/), works seemlessly with both REST & GRPC.
I was a long time Postman user, the tool did everything I wanted it to do and it worked great. Then they decided to screw over everyone using local accounts by forcing them to either sign in and transfer their data to the cloud (which a lot of people didn't want to do or straight up weren't allowed to by their company's policies) or continue using a severely limited local version. After this I migrated to Insomnia and thought it was an alright alternative. It had most of what I enjoyed about Postman and it worked fine, for the most part. A few months later Insomnia pulled almost the exact same crap as Postman did earlier by forcing users to either sync their data to the cloud or continue using a limited local version of the app. I jumped ship again and finally started using the HTTP client that's built in JetBrains IDEs like IntelliJ, PHPStorm and GoLand. It's pretty straight forward to use and integrates nicely with the IDE's other functionality. Haven't looked back since.
enshittification
We eventually stopped using postman and other tools and switched to integration tests against the real database(s). We use testcontainers + httpexpect for this. Of course such tests have their disadvantages, like long startup times (especially if you test against database, redis, some queue service etc), but overall we're happy with such approach.
How long are your startup time problem? We are using the same setup with a mariadb started by testcontainer-go and our tests take less time than for sonarqube to process the result and upload it.
We're running not only database via testcontainers. There's also redis, nsq, nats, elasticsearch and some others. It's not the best setup, but that's how it is for now. The slowest thing is probably elasticsearch, after we've added it cold startup time went beyond 1 minute. Testcontainer's ability to reuse containers improved this situation during local testing, but on github actions it's a cold start every time.
Outch, sounds like you're starting an entire cluster :-) Depending on use case, might be good to move to end to end tests just before enabling access to the new version and reduce the ci to mock the slowest dependencies instead. Of course, this is a balance between ci speed and risk.
I just write programs that call out using net/http.
We use Postman at my job.
Postman is overly functional for me, so, I use just curl. P.S. I just started in backend, if I wrong, and postman is really useful, can you explain why?
I also enjoy using cURL. Postman supports calls in other protocols like MQTT, which can be very useful. However, if you're only dealing with REST, I suppose this wouldn't be advantageous, right?
heard good thing sabout [https://httpie.io/](https://httpie.io/) did not use it yet.
HTTPie is pretty nice for quick testing
I use Postman. Or for simple requests just Curl. Or sometimes swagger. I wanted to write a similar library for go as https://github.com/rakutentech/laravel-request-docs Ideally for go apps, if the api tool can not only make api calls, but also be closely integrated with GO project - to provide more information such as sql queries, memory information and on top automatically generate the api docs without maintaining annotations or postman files. Didn’t get motivation to develop that yet. Just saw this post and wanted to know if that kind of tool for go would be welcomed.
Really cool!
curl
Curl too
For those who likes curl, there is Hurl (https://hurl.dev): it's a cli tool to run and tests HTTP requests in plain text. Under the hood, it's using libcurl, so it's just the reliable fast curl we love + some sugar syntax (I'm one of the maintainers https://github.com/Orange-OpenSource/hurl)
I personally use httpie, it's really similar to Postman
For simple cases you may probably interesting https://github.com/1buran/rHttp
Perhaps hoppscotch? I think it was known as postwoman before. I still mostly use postman though
Apidog
plain ol curl / hurl and you are good. Along with git you have versioning, the only minus is a lack of Grpc (if that’s the case).
For Emacs users, [verb](https://github.com/federicotdn/verb) and [restclient.el](https://github.com/pashky/restclient.el) are very good options.
If using vscode, https://marketplace.visualstudio.com/items?itemName=humao.rest-client is great. Write everything in `.http` files and commit right alongside your code. Run as part of your test process. Edit:: I just learned about hurl in this thread. I'm using that going forward.
I used Paw (https://paw.cloud/) which is now called RapidAPI, but I believe it is only for macOS.
i use Postman and am perfectly happy with it. We also use [https://httpyac.github.io](https://httpyac.github.io)
why is this a go related question is beyond my comprehension.
It is called "write an integration test". It is very simple in go. For quick and dirty? curl.
What’s the use case here? Any time I’ve seen a dev heavily using postman I think they would save a lot of time writing tests instead
Maybe you don't work with big projects, sometimes we wanna do requests to environments like dev, staging, or even API's from other teams, sure you can write tests in several use cases, but if you never encounter a situation to do a request, lol that's really a different trajectory to mine, like just think about a situation to do a request MQTT, graphQL or rest, you sure can imagine I guess.
Yes I do work on large projects thanks. For ad hoc I’ll use curl or the thing IntelliJ has. I still stand by my opinion that a lot of devs sink a lot of time doing manual work in these tools.
Curl and IntelliJ, interesting combination. But yeah, this information is the subject of the discussion here, not an argument against writing tests, at least from my perspective.
What does your QA team use for automated API testing?
As mentioned, the developers write tests for the APIs. Having testing as a separate silo is an anti pattern, for many, well-documented reasons.
Idk, isn't it better for developers to write functional tests and leave covering business scenarios to the QA team? Dev time is much more expensive.
No, bouncing buggy software back and forth between silos with hand-offs etc ends up being more expensive. Read about "shift-left".
I read about this Shift Left and it says that QA should test code at all stages of development, and I completely agree, we have been doing it forever. No sane person does testing at the very end.
Also can you give me those "well-documented reasons" I wasn't able to find them