this post was submitted on 06 Jul 2023
135 points (100.0% liked)

Programming

17477 readers
238 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

I would like to hear if any of you are using different app for API testing than Postman.

I’m not telling that Postman is bad, but maybe there’s all that I should check out. Recently I tried RapidApi and even tho the app is kinda cool I missed few options and went back to Postman for now.

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 57 points 1 year ago (4 children)

I am a fan of Insomnia. As far as I can tell it has most of the features I used in postman without all the paid upgrade nags

[–] [email protected] 12 points 1 year ago (2 children)

Seconding Insomnia. Sleeker interface imo, only thing it’s lacking in feature parity afaik is the cookie sniffer, but you can grab what you need in postman or js console and then plug it into insomnia np.

Also, cURL :]

[–] [email protected] 3 points 1 year ago (1 children)

ducaale/xh is excellent for anybody that likes to use HTTP from a CLI.

load more comments (1 replies)
load more comments (1 replies)
[–] WHATaDEMAGE 10 points 1 year ago

Insomnia is really good, never looked back at postman since i use Insomnia!

[–] prwnr 4 points 1 year ago

never heard about it. gonna give it a try for sure. thanks for the suggestion!

[–] [email protected] 3 points 1 year ago

The one thing I find difficult in Insomnia is making the auth common across a group of requests. I end up duplicating existing requests which doesn't help if I need to update the process at all. Is there a way to use common auth routines yet?

[–] [email protected] 22 points 1 year ago

Insomnia is pretty cool and open-source

[–] [email protected] 15 points 1 year ago
[–] astral_avocado 14 points 1 year ago (2 children)
[–] CodeBlooded 3 points 1 year ago

This is the way.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (2 children)

No joke, I use curlie, .curlrc and a bunch of scripts

load more comments (2 replies)
[–] CosmicPanda 14 points 1 year ago (1 children)

Another vote for Insomnia here. I used to use Insomnia primarily until a lot of my work switched over to gRPC and I've found that Postman works a lot better for that. I still prefer Insomnia for the simple UX and speed, just wish it had better gRPC support.

load more comments (1 replies)
[–] snowe 13 points 1 year ago (5 children)

I completely stopped using all those clients. We now just store the requests alongside the code in an http file and use the built in IntelliJ HTTP Client to make the call. No need for a separate program, integrates with your code, you can save responses to make sure they don't change, it's all stored in git. There's a ton of benefits and not many downsides.

[–] JackbyDev 4 points 1 year ago (1 children)
load more comments (1 replies)
[–] jeff 4 points 1 year ago

Once I learned about http files I never went back. It's so easy to share and use, I primarily use JetBrains but there are extensions for VSCode that do the same thing that I have used as well.

[–] prwnr 3 points 1 year ago (1 children)

any resources to get the hang of the IntelliJ Client? cause when I tried it I kind of hit a wall not knowing where to start

[–] snowe 3 points 1 year ago (3 children)

just create a new file of type HTTP Request, click on the *Examples dropdown in the top right, choose the type of thing you want to do, copy one of the examples, and then paste it into the .http file you created. Then hit the play button! dead simple!

load more comments (3 replies)
load more comments (2 replies)
[–] ray_gay 13 points 1 year ago
[–] [email protected] 10 points 1 year ago (1 children)

Insomnia, or if you really love the command line and dont need to document or save your API requests, curl (don't recommend this for anything beyond simple testing).

[–] [email protected] 7 points 1 year ago (1 children)

If you like the command line but want something more user friendly than curl, I suggest httpie.

load more comments (1 replies)
[–] [email protected] 9 points 1 year ago (4 children)

I mostly use httpie on the fish shell with autocompletion for quick requests, but it's no replacement

[–] sosdoc 6 points 1 year ago

httpie now also has a postman-like UI! Been using it for a while and I'm liking it for what it is - https://httpie.io/app

load more comments (3 replies)
[–] deltamaniac 9 points 1 year ago

Insomnia user here too, I've found it to be simple,clean and to my taste.

[–] Gushys 9 points 1 year ago

Insomnia is great and has an easy, simple interface. But I feel like creating complex collections with different environments is a lot simpler with postman

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago) (1 children)

I'm the maintainer of HTTP Toolkit - it's not a Postman alternative (it's an open source project focused on intercepting & debugging traffic, not sending it) but I'm actually working on building a UI for exactly this right now, so this thread is perfectly timed!

Is there anything that any of you really love or hate about any of the tools suggested here?

What core features beyond just "edit method+URL+headers+body, send, view the response status+headers+body" are essential to you?

Anything you wish these tools could do better?

I'm planning on taking the client functionality live within a few weeks max, so if you want to help your perfect Postman alternative come to life now's the moment 😁

load more comments (1 replies)
[–] [email protected] 8 points 1 year ago* (last edited 1 year ago)

I recommend Visual Studio Code and one of the following two extensions:


Either one isn't really the full picture - you'll ned to combine it with other extensions - such as a good JSON language extension (which will give you syntax highlighting, error checking, code folding/etc.

The most important extension is CoPilot. That's the killer feature which makes Visual Studio Code vastly better than Postman.


Thunder is very similar to Postman. Not much to say other than it works well, it's free, millions of people use it.

It's not really my cup of tea, but I do think it's better than Postman because you can use your own version control servers to collaborate with colleagues, which is generally better (and cheaper) than Postman's collaboration service in my opinion (you get diffs, code review, pull requests, history, etc etc for all your most important API tests).


Personally I prefer REST Client (also free, and has even more users than Thunder).

REST Client is really simple. It adds a new "HTTP" text file type. You simply type a HTTP request into the file and hit a hotkey (or click a button) to execute the request. And it shows you the response. Easy.

HTTP requests and responses are just plain text, and you can simply save those as files in your project. REST Client also has basic support for variables, API credentials, etc. Not quite as user friendly as Postman or Thunder Client, but it makes up for that by being straightforward and flexible.


CoPilot Chat, works with both, but having everything in plain text gives it more control over REST Client than Thunder Clinet you can write (and edit) your requests with a series of simple plain english prompts. E.g. "JSON request with a blog post body" will give you:

POST https://example.com/blog/posts
Content-Type: application/json

{
    "title": "My First Blog Post",
    "body": "This is the content of my first blog post. It's not very long, but it's a start!",
    "author": "John Doe",
    "tags": ["blogging", "first post"]
}

You might follow that up with "Add a UUID" or "Add a JWT auth header".

Copilot can answer questions too - e.g. "How do I unsubscribe a user with the Mailchimp API?" They use the "HTTP PATCH" request type - WTF.

[–] [email protected] 8 points 1 year ago (2 children)

I’m using the vscode extension called Thunderclient

load more comments (2 replies)
[–] RonSijm 8 points 1 year ago

I usually generate an API client in C#, and just use that. For example, and entire integration CRUD test for a user would just be something like:

var user = TestClient.CreateUser(1234, "Bob");
user.Id.ShouldBe(1234);
user.Name.ShouldBe("Bob");

var userThroughGet = TestClient.GetUser(1234);
userThroughGet.ShouldNotBeNull();

TestClient.EditUser(1234, "John");
userThroughGet = TestClient.GetUser(1234);
userThroughGet.Name.ShouldBe("John");

TestClient.DeleteUser(1234);
userThroughGet = TestClient.GetUser(1234);
userThroughGet.ShouldBeNull();

Trying to set up those kinda scenarios quickly with Postman was getting pretty tedious

[–] [email protected] 7 points 1 year ago (1 children)

I mostly use the rest client extension for vscode

[–] prwnr 3 points 1 year ago

I tried to use the HTTP Client built into Jetbrains IDE, but I just can’t get hang of it

[–] kogasa 7 points 1 year ago (3 children)

I'm saying that Postman is bad. maybe not in terms of functionality, but damn if it doesn't run like a slug on my work computer, which is just fine handling a dozen Visual Studio and Rider instances. It seems like it works perfectly for about 5 minutes and then goes to crap.

So yeah, I'd be interested in an alternative too. I only really use it for basic functionality (creating, sharing, and running collections of requests with configurable parameters).

load more comments (2 replies)
[–] [email protected] 7 points 1 year ago (4 children)

I use Hurl. Everything is just a text file:

POST https://example.org/api/tests
{
    "id": "4568",
    "evaluate": true
}

HTTP 200
[Asserts]
header "X-Frame-Options" == "SAMEORIGIN"
jsonpath "$.status" == "RUNNING"    # Check the status code
jsonpath "$.tests" count == 25      # Check the number of items
jsonpath "$.id" matches /\d{4}/     # Check the format of the id
load more comments (4 replies)
[–] jojocoding 6 points 1 year ago

I just started using Insomnia and I really like it, highly recommended!

[–] [email protected] 5 points 1 year ago

If you need a GUI I'd recommend Insomnia, if not cURL is pretty amazing.

[–] MariusGundersen 5 points 1 year ago (1 children)

I find postman to be too complex, too much config all over the place. It's also difficult to share with others, it would be much better if it could store the settings in a file that could then be checked into git. That way everyone on the project would have the requests and could add and modify them as the server changes. Does any client like this exist?

load more comments (1 replies)
[–] [email protected] 4 points 1 year ago (1 children)
load more comments (1 replies)
[–] Code 4 points 1 year ago

Insomnia.kong

[–] [email protected] 4 points 1 year ago

If you’re on a Mac, I recommend the RapidAPI native HTTP client. It used to be called Paw and it recently got acquired by the RapidAPI team but it hasn’t changed much and still works pretty well IMO. I’ve been using it for years to test out APIs and i like it better than Postman.

[–] [email protected] 4 points 1 year ago

been using hurl recently, a lot easier to use than postman.

[–] [email protected] 4 points 1 year ago

+1 for Insomnia

[–] CodeBlooded 4 points 1 year ago

I stopped using postman in favor of just writing Python scripts to test what I was testing. 🤷‍♂️

(I’m getting tired of learning new tools when I only end up needing some surface level functionality that I can quickly write myself. Maybe that’s just me.)

[–] alchemist_dev 3 points 1 year ago* (last edited 1 year ago)

xh and tiny shell scripts.

Example: sign-up-forbidden-username.req

#!/bin/bash
xh POST http://0.0.0.0:2884/sign-up usename=admin password=pw

to run ./sign-up-forbidden-username.req

This returns 403 and "Username is unavailable"

https://github.com/ducaale/xh

xh is a rust implementation of httpie. They're going for full parity, and works really well for what I need it for so far You can also read input from a file. Which IMO makes GUI API testing seem silly.

[–] akakorun 3 points 1 year ago

I am alternating between Postman and https://hoppscotch.io, it's open source (https://github.com/hoppscotch/hoppscotch) and has great feature set.

As it's a web app, and a minor downside is that you have to have to install a browser extension (open-source as well) or use a proxy in order to aviod CORS issues.

[–] [email protected] 3 points 1 year ago (2 children)

I must be the only moron using JMeter in place of Postman.

load more comments (2 replies)
[–] nibblebit 3 points 1 year ago
[–] [email protected] 3 points 1 year ago (1 children)

Another vote for Insomnia if you want something postman-like (sortof). But also check out hurl if you're looking for something more test-oriented.

[–] prwnr 3 points 1 year ago

I see that Hurl is much alike the Jetbrains HTTP Client. maybe I could give that one another try or the Hurl as this way of writing requests is more “developer-like” and looks neat

[–] lavafroth 2 points 1 year ago

If you're not strictly looking for GUI tools, you might want to look into httpie or the http command built into the nu shell.

load more comments
view more: next ›