18 ms·
HTTPie Desktop: cross-platform API testing client for humans
- salusinarduis 3y agoOne must ask themselves why a REST testing tool has venture capital and needs to be closed source (despite their website proudly claiming "Open source"). I'll pass on installing this onto my computer.
- yawnxyz 3y agoWhy doesn't Github have some kind of policy about projects pretending to be open source and effectively acting as an ad on Github?
- koito17 3y agoIt would be a little funny that GitHub, a proprietary code hosting platform, suddenly cares that proprietary software uses it to host bug reports or other assets. This isn't the first project I've seen that is nothing more than a README and exists simply for people to file issues. e.g. there is https://github.com/cursive-ide/cursive https://github.com/cursive-ide/cursive With that said, Codeberg has a strict policy of hosting software licensed under an OSI or FSF approved license.[1] They will actually take down repositories that do not follow this guideline. [1] https://docs.codeberg.org/getting-started/faq/#can-i-host-software-and-resources-without-a-free-and-open-source-software-license%3F https://docs.codeberg.org/getting-started/faq/#can-i-host-so...
- jkbr 3y agoAs the first paragraph in the README says, we use the GitHub repo to host releases and issues. (It’s not open-source yet as we first want to get the product, architecture, and codebase somewhat stable.)
- lemper 3y agoat this page, https://httpie.io/desktop https://httpie.io/desktop, there's a logo that says "open sores, open hearted, open minded." it's misleading, then. at least remove that part in the page.
- jkbr 3y agoThat’s a good point. I’ve now updated the website template not to show the image with the slogan on this page. Thanks for the feedback.
- DandyDev 3y ago> not open-source yet Can you be more clear? Is the Desktop app going to be open-source in the future? If so, what license? Do you intend to monetize this product? If so, how? As a side note: I find it strange that you feel the product is not stable enough to share the code, but apparently stable enough to share the product itself.
- jkbr 3y agoHi Daan, >> not open-source yet > Can you be more clear? Is the Desktop app going to be open-source in the future? If so, what license? Yes, but have no ETA or license choice yet. > Do you intend to monetize this product? If so, how? Yes. We strongly believe in a freemium where both free and premium users are happy. We’ll primarily monetize collaboration and enterprise features without cannibalizing free users. In this sense, we’re inspired by companies like GitHub or Figma. And in our case, free also includes users without an account. > As a side note: I find it strange that you feel the product is not stable enough to share the code, but apparently stable enough to share the product itself. Running an open-source project well is not easy and takes resources. Building a great product is hard on its own. Our primary goal is to design and build the best API product possible, so we direct all our energy there for now.
- jeanlucas 3y agoVery well PUT (pun intended). Actually, isn't this how we exactly got where we are with Postman?
- anta40 3y agoAny recommendation on open source alternative?
- dylanowen 3y agoI've been using https://github.com/bayne/dot-http https://github.com/bayne/dot-http but https://hurl.dev/ https://hurl.dev/ seems more full featured.
- smt88 3y agoNeither of these have the convenience of the original Postman GUI and aren't really alternatives.
- sphars 3y agoBruno seems like a good up and coming candidate. Found about this one after all the insomnia drama a couple weeks ago https://github.com/usebruno/bruno https://github.com/usebruno/bruno
- dylanowen 3y agoFor creating requests the GUI of postman is way over the top. HTTP is so simple, why not just write that directly in a literate format you can checkin to a repo? For actually running the requests though I agree a gui is nice. I actually use dot-http as an embedded tool in a browser extension. They're still alternatives, just not in the style you're used to.
- smt88 3y ago> HTTP is so simple So is email. The simplicity of a protocol has nothing to do with the complexity of the workflow that produces it. > why not just write that directly in a literate format you can checkin to a repo? Because nothing I work on in Postman is something I need to check in to a repo. I need to test HTTP requests, and I've never worked with a code base that had raw HTTP requests in it. > They're still alternatives, just not in the style you're used to. The "style" is different enough that entire use cases become impossible. Let's say I want to copy HTTP response headers out of a log in JSON format. In Postman, I can paste JSON (and various other key-value formats) into the headers field, and it automatically parses it for me. There are a hundred little conveniences like that that require a good GUI.
- pyrolistical 3y agoHmm. That is very misleading. Their footer talking about open source is referring to their cli (which is very good btw) This might be an oversight just need to fix their marketing page
- deleted 3y ago[deleted]
- weinzierl 3y agoDo you mean HTTPie also raised venture capital or just in general? If it is HTTPie, would you have a source? Not doubting. I'm compiling a table with Postman alternatives, VC-backed is on column and I like to add sources where possible.
- JimDabell 3y ago> We’ve raised a $6.5M Seed Round from Coatue, Blossom Capital, the founders of Intercom, Checkout.com, Monzo, etc. — https://httpie.io/about https://httpie.io/about
- laurent123456 3y ago> $6.5M I'm probably missing something, but it seems insane they need so much money to make (yet another) API testing client. And I'm guessing it means the company is valued at x billion dollars
- da39a3ee 3y agoThey're not "making an API testing client". They're trying to start something called a "business". People do this to try to get enough of this thing called "money", to pay for the costs in their lives and their family's lives. If they are based in America, they would be calculating at least, say $200k per year per employee, since they need to pay healthcare etc. So multiply that by the number of employees you want in your business, then add all the other costs, and extend over the period you want the funding to cover.
- deleted 3y ago[deleted]
- laurent123456 3y agoNice, thanks for sharing your wisdom. And still insane they need that much money, we all have examples here of businesses that succeeded without having to raise millions of dollars
- deleted 3y ago[deleted]
- da39a3ee 3y agoBecause they're trying to make a living from software? And why the fuck, exactly, should they not do that? Reread your comment and perhaps you'll see how insufferably entitled, as well as naive, it sounds.
- da39a3ee 3y agoThey're not "making a REST testing tool". They're trying to start something called a "business". This has been a prominent feature of human society for many centuries. People do it to pay for their lives and their family's lives.
- baggachipz 3y agoIt's next in line after Postman. Used it for years, liked it, now it's enshittified. I'll use this one until the endless cycle repeats.
- selcuka 3y agoWhy did you even link to this weird GitHub repo with only a README that links to their home page?
- thambidurai 3y agobecause it's not open-source but fools the users into thinking it is.
- jkbr 3y agoAs the first paragraph in the README says, we use the GitHub repo to host releases and issues.
- lemper 3y agooi, mate! what opensores is this? where's the source?
- deleted 3y ago[deleted]
- EricBetts 3y agoTheir project that I am most familiar with is there CLI https://github.com/httpie/cli https://github.com/httpie/cli
- threatofrain 3y agoPerhaps better known for their CLI tool which I use as a replacement for curl.
- wg0 3y agoOn the subject of APIs, anyone knows how to split Open API 3.0 specs into separate files? I'm using swagger-cli but it is abandoned lately.
- herrherrmann 3y agoYou can start writing multiple OpenAPI files and merge them with tools like openapi-merger (https://www.npmjs.com/package/openapi-merger https://www.npmjs.com/package/openapi-merger). Is that maybe what you want?
- freshteapot 3y ago* I note this is not splitting one large one into small, but the actually starting with smaller ones, as the other commenter suggested I store different api logic in their own files. Then I use yq to stitch them all together. After which, I use openapi-generator to make a yaml output. https://gist.github.com/freshteapot/3637e8d2b5ecdf01b7d252468eaaa45b https://gist.github.com/freshteapot/3637e8d2b5ecdf01b7d25246... - yq version 3.4.1 (Worth noting, the example uses an out of date yq, so a few modifictaions might be needed) https://github.com/mikefarah/yq https://github.com/mikefarah/yq
- verdverm 3y agoI use CUE(lang) for things like this
- wg0 3y agoBeautiful. Didn't know something like this exists. Reminds me of Katai[0] [0]. https://kaitai.io/ https://kaitai.io/
- verdverm 3y agoCUE is indeed a beautiful language, will get those mind juices flowing for sure! There is more work to be done on the codec implementation, but if you just want to split yaml/json across files, CUE is a great option You might also like my project, built on CUE: https://github.com/hofstadter-io/hof https://github.com/hofstadter-io/hof We have a TUI where you can explore and work with CUE, JSON, Yaml
- user3939382 3y agoAgain recommend the HTTP client in the Jetbrains IDEs for this. Everything is text based and goes neatly in your repo. You can pull in npm and script against responses and for tests if you like. It’s also constantly updated.
- jiehong 3y agoIsn’t it only available with the ultimate version?
- user3939382 3y agoThe JetBrains IDEs don't have an ultimate version, I think you're thinking of VSCode.
- vicek22 3y agoThe OP most likely meant the paid version of JetBrains IDEs
- yett 3y agoYes they do IntelliJ IDEA Ultimate and IntelliJ IDEA Community are separate IDEs.
- mardifoufs 3y agoVSCode does not have an ultimate version.
- rewmie 3y ago> The JetBrains IDEs don't have an ultimate version, I think you're thinking of VSCode. This is not true. I installed intellij community, searched through it's plugins for http clients, and Jetbrains' plugin shows up all greyed out with the message "ultimate only".
- waf 3y agoFor VSCode, there's https://github.com/AnWeber/vscode-httpyac https://github.com/AnWeber/vscode-httpyac
- vietvu 3y agoAnother day, another HTTP client. Why do we need so many of them? I and my team are thinking about just ditch all of these, and use python + requests/httpx as the client. If need a quick call, just curl/wget.
- squiggy22 3y ago100s of endpoints with various evolving payloads across 100s of developers. The problem space is shared documentation, not 'make http request'
- Banditoz 3y agoI think OpenAPI is a better choice for this kinda stuff. The API docs are the source code and less lock-in that way. Devs can still use the tools they want.
- aniforprez 3y agoOpenAPI only describes the endpoints. Ultimately people want examples and to test their endpoints collaboratively rather than just see a description of it with the fields it accepts. Actual use cases and a proper flow of being able to authenticate and use that token to call the other APIs and check the responses is what people seem to want more than a "dumb" curl GUI
- verdverm 3y agoOpenAPI has example capabilities built in and there are many interfaces for turning the specs into WebUI https://swagger.io/docs/specification/adding-examples/ https://swagger.io/docs/specification/adding-examples/
- jkbr 3y agoYou probably don't need all of them. But we've created HTTPie Desktop based on the feedback of HTTPie CLI users over the past decade who wanted to have the same comfort on the desktop as they do in the terminal. The feedback we've been receiving from devs actually using has been incredible.
- paradite 3y agoGoing slightly off tangent to ask about something. I often find myself in a situation when testing API to request for "API request and API response", including header, body, etc, the full complete information. This helps to identify any issue with it, and keep the full record for the future reference (it happens a lot that I need some information on the old API behavior weeks later). There seems to be lack of a single word in English to describe this except the long phrase above. Anyone has good suggestion? It goes without saying that this is a hard requirement I have for any API client but sadly most ones I tried always lack some information somewhere.
- sureglymop 3y agoIn this case I recommend capturing your whole traffic for an endpoint, e.g. with MITMProxy as you are doing your requests. Often I test SPAs and do so by turning on MITMProxy with some filtering, using the app in the browser normally and then saving the traffic capture. Later I can even generate API docs from that. Regarding terminology, I'm also not sure how you'd describe that.
- paradite 3y agoYes. I usually use MITMProxy for mobile and Chrome for desktop for such tasks. The other comment suggests the term "exchange" which I like.
- jkbr 3y ago> There seems to be lack of a single word in English to describe this except the long phrase above. Anyone has good suggestion? If you mean the request and response message pair, we call it "exchange" [0]. > It goes without saying that this is a hard requirement I have for any API client but sadly most ones I tried always lack some information somewhere. Both HTTPie Desktop and HTTPie CLI allow you to see the entire exchange. In the CLI, you can use the --verbose flag [0]. In the desktop app, there’s a “Request” tab. They both also support previewing the request without sending it. The CLI has --offline [1], and the Desktop has a live preview feature [2]. [0] https://httpie.io/docs/cli/what-parts-of-the-http-exchange-should-be-printed https://httpie.io/docs/cli/what-parts-of-the-http-exchange-s... [1] https://httpie.io/docs/cli/offline-mode https://httpie.io/docs/cli/offline-mode [2] https://raw.githubusercontent.com/httpie/desktop/master/.github/httpie-desktop.png https://raw.githubusercontent.com/httpie/desktop/master/.git...
- dingi 3y agoYet another closed source electron crap. No thanks.
- ho_schi 3y agoElectron is Flash for the Desktop[1]. It is cheap to implement. It wastes resources, doesn’t integrate natively and is a security problem. As usual the industry safes money and the customer has to pay for the memory. I’m sick of applications which doesn’t adapt to HiDPI (automatically) and consume 500 MB of memory whereas a C/C++, Rust or even Python with Gtk or Qt will consume about 50 MB. Aside from that Postman has become unusable because the company behind it want to earn „now“ money. I don’t say HTTPies UI is bad it just not what users want. [1] http://josephg.com/blog/electron-is-flash-for-the-desktop/ http://josephg.com/blog/electron-is-flash-for-the-desktop/
- jkbr 3y agoYes, an Electron app is worse than a native app. An Electron app is also infinitely better then no app. It's a trade-off. Without Electron and the likes, a fraction of the apps that are now almost effortlessly cross-platform would exist for Linux, for example.
- krapp 3y agoIt's only a tradeoff because for some reason we decided, collectively, that writing native apps is impossible.
- pmontra 3y agoWe did multi platform apps when we still called them programs. We used some cross platform toolkits with either cross platform UIs that felt out of place everywhere or a layer that hooked to a common subset of the native ones, with maybe an option to go really native. We wrote C or C++, mostly. Then HTML became that common subset of the UI and the browser JS runtime and rendering engine replaced the cross platform toolkit. Bloated, not optimized for space and time as it could be, etc, but very convenient.
- moltar 3y agoWhy do none of these tools let me store data in a git repo? I want everyone on the team have the same setup and keep in sync with API changes.
- flakron 3y agoBecause they are trying to monetize that later?
- naikrovek 3y agothat is exactly what’s going to happen. the ones that aren’t Silicon Valley businesses currently in their “growth” phase will openly let you save off your entire collection of queries as plain text, and will ideally handle storage of this in git for you. After “growth” is “capture” where they turn free users into paid ones. The number of people who get foaming-at-the-mouth angry over Microsoft because they did this in the 1990s and who also ignore the hundreds of companies doing this as part of the startup playbook is staggering.
- 0cf8612b2e1e 3y agoSomething like hurl? https://hurl.dev/ https://hurl.dev/
- hiyer 3y agoYou can try bruno - https://github.com/usebruno/bruno https://github.com/usebruno/bruno.
- CommonGuy 3y agoKreya [1] can do that. It is even optimized for it, so that diffs should be perfectly readable. [1] https://kreya.app https://kreya.app
- aniforprez 3y agoCheck out bruno[0]. It's decent for what it is, replaced Insomnia when they made some dumb moves a week or so ago and is completely file based though I wish there were ways to make less files. I don't want to check in so much stuff every time I make a change. It's still missing a few features but the dev seems passionate and there's frequent updates [0] https://www.usebruno.com/ https://www.usebruno.com/
- KingMob 3y agoA surprising number of these tools don't support HTTP/2, sadly. That includes HTTPie, Postman, and RapidAPI, last I checked.
- CommonGuy 3y agoProbably isn't easy to do with Electron-based apps...
- KingMob 3y agoI don't see why. Electron's based off of Chromium, which should be able to speak http/2, no?
- CommonGuy 3y agoYou cannot control the HTTP version in a webpage with JavaScript... The browser has complete control over selecting an appropriate version. But since Electron includes nodejs, it should be possible, but probably not that easily.
- KingMob 3y agoI don't know what the problem is precisely, but I suspect the issue lies somewhere other than the browser's standard HTTP version negotiation. I think this because, when I was testing Postman, if I set up my web server to support only HTTP/2 in the TLS ALPN, Postman didn't fall back to HTTP/2, it just failed. If the standard browser negotiation were happening in Postman, I would have expected my setup to force HTTP/2, even if it generally wanted HTTP/1. My guess is on the Postman side, they simply don't support H2 in the ALPN. I admit, I know nothing about Electron, so maybe there really is some weird limitation. But I think it's more likely Postman just didn't want to write the code to support HTTP/2. Most API users don't care about the transport; but I maintain a web server, and learning this rendered Postman useless for me. For now, it's curl or Insomnia.
- Zetobal 3y agoAnd again no support for websockets all these tools are just basic implementations of what postman was doing at the beginning. Do we have to go through all of the feedback again? Why are you not scoring through the docs and forums of other tools and try to learn from it? I mean you have no moat at least have convenience.
- kingofthehill98 3y ago[dead]
- kondro 3y agoHTTPie (the CLI version) is great and was a big improvement for me over cURL. However, I ended up switching to xh[1] as it's significantly faster and I prefer its output. Although I might give this Desktop version a try for more complex APIs. https://github.com/ducaale/xh https://github.com/ducaale/xh
- blitzar 3y agohttps://gchq.github.io/CyberChef https://gchq.github.io/CyberChef - is my overkill go to for this task - it makes me feel like a Secret Agent while testing posts and gets.
- bitexploder 3y agoI know this is more of an information security oriented tool, but Burp Suite by Portswigger is an amazing HTTP proxy. Over the years, as an information security consultant, I have used it quite a bit when writing my own little web apps to diagnose and debug any issues. It isn't a proper software testing tool in the DevOps sense, but if you are manually debugging and poking at a larger API there isn't a better tool out there IMO.
- nikeee 3y agoI use hurl [1], a text-based HTTP testing tool. It's like the proprietary one that jetbrains ships, but as a CLI tool and can be perfectly integrated into CI. It is based on curl, as the name suggests. What I was also playing around with is using it as a scripting tool. Comments are made using #, so you can add a shebang to a file, make it executable and use it as a lightweight script for HTTP stuff. [1]: https://hurl.dev https://hurl.dev
- hu3 3y agoI know this is about Desktop HTTP testing but have anyone experimented with command-line HTTP testing? I recall having a good experience with https://github.com/grafana/k6 https://github.com/grafana/k6 some eons ago. It's geared towards load testing in JS but it also allows you to check HTTP body, headers, etc.
- naikrovek 3y agoWhy is the license for this GUI tool so different than the license for their command line tool? The source isn’t even in this repository. There is 0% chance that this will avoid the route that POSTman and Insomnia have paved. WTF is it about these tools that the creators think will make us tolerate the sudden switch from free to paid? I am dead tired of watching this play out over and over.
- jkbr 3y ago> Why is the license for this GUI tool so different than the license for their command line tool? The source isn’t even in this repository. The desktop app is not ready to be open-sourced yet. > There is 0% chance that this will avoid the route that POSTman and Insomnia have paved. HTTPie has been around for 10+ years, and the new desktop product is built around the idea that we can do much better than the incumbents (from a much simpler interface and more pleasant UX to a more aligned set of incentives supporting incognito, free, as well as paying users/companies). > WTF is it about these tools that the creators think will make us tolerate the sudden switch from free to paid? I am dead tired of watching this play out over and over. What Postman and Insomnia did is not cool. But that does not mean it’s unavoidable. Even though it complicates development, we’re local-first from the very start. Accounts and sync are optional layers on top of it.
- prmoustache 3y ago>The desktop app is not ready to be open-sourced yet. There is no such thing as code being ready or not to be open-sourced.