{"@attributes":{"version":"2.0"},"channel":{"title":"DEV Community: HTTPie","description":"The latest articles on DEV Community by HTTPie (@pie).","link":"https:\/\/dev.to\/pie","image":{"url":"https:\/\/media2.dev.to\/dynamic\/image\/width=90,height=90,fit=cover,gravity=auto,format=auto\/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F4287%2F8a48b6c1-0bb2-49b6-9cc0-0a42eaee8cc4.png","title":"DEV Community: HTTPie","link":"https:\/\/dev.to\/pie"},"language":"en","item":[{"title":"Changelog #0024 \u2014 \u2728\ufe0f Improved variables and more","pubDate":"Mon, 29 May 2023 15:21:36 +0000","link":"https:\/\/dev.to\/pie\/changelog-0024-improved-variables-and-more-149h","guid":"https:\/\/dev.to\/pie\/changelog-0024-improved-variables-and-more-149h","description":"<p>Check out what\u2019s new in HTTPie for Web &amp; Desktop <a href=\"https:\/\/github.com\/httpie\/desktop\/releases\/tag\/v2023.3.0\">2023.3.0<\/a>, and HTTPie for Terminal <a href=\"https:\/\/github.com\/httpie\/httpie\/releases\/tag\/3.2.2\">3.2.2<\/a> \ud83d\udc47<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd16 Summary\n<\/h2>\n\n<ul>\n<li>\n<strong>\ud83e\ude86 Recursive variables \u2014<\/strong> Keep your variables DRY and atomic.<\/li>\n<li>\n<strong>\u270f\ufe0f Inline name editing \u2014<\/strong> Quickly rename requests and collections.<\/li>\n<li>\n<strong>\ud83d\udcbe Save body as file<\/strong> \u2014 Save body as file directly from the client.<\/li>\n<li>\n<strong>\ud83d\udd03 Re-order variables \u2014<\/strong> Bring order to your variables.<\/li>\n<li>\n<strong>\ud83d\uddbc Re-order environments \u2014<\/strong> And to your environments as well.<\/li>\n<li>\n<strong>\u2728 Other enhancements \u2014<\/strong> Use longer collection &amp; request names, etc.<\/li>\n<li>\n<strong>\ud83d\udcdf\u200d CLI v3.2.2 \u2014<\/strong> A compatibility bug fix release.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  HTTPie for Web &amp; Desktop 2023.3.0\n<\/h2>\n\n<h3>\n  \n  \n  \ud83e\ude86 Use variables recursively\n<\/h3>\n\n<p>Referencing a variable from another variable\u2019s value? Why not\u203d HTTPie now resolves variables recursively to help you keep your Spaces DRY.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--XMEjI8qT--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Frecursive-variables-NUACBLQK.gif%26w%3D1920%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--XMEjI8qT--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Frecursive-variables-NUACBLQK.gif%26w%3D1920%26q%3D95\" alt=\"recursive\" width=\"800\" height=\"449\"><\/a><\/p>\n\n<h3>\n  \n  \n  \u270f\ufe0f Edit names inline\n<\/h3>\n\n<p>Quickly change the name of a request or collection with a double click. Just like that. Simple.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--oRDBD6U7--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Finline-rename-QR44GDUG.gif%26w%3D1920%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--oRDBD6U7--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Finline-rename-QR44GDUG.gif%26w%3D1920%26q%3D95\" alt=\"Double-click a collection or request in the sidebar to quickly rename it\" width=\"800\" height=\"449\"><\/a><\/p>\n\n<h3>\n  \n  \n  \ud83d\udcbe Save body as file\n<\/h3>\n\n<p>You could always copy the request and response body. Now you can also save it as a file directly from the client.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--kW53AQQH--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Fsave-to-file-22CCEUIC.gif%26w%3D1920%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--kW53AQQH--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Fsave-to-file-22CCEUIC.gif%26w%3D1920%26q%3D95\" alt=\"Save body as file from the message menu\" width=\"800\" height=\"449\"><\/a><\/p>\n\n<h3>\n  \n  \n  \ud83d\udd03 Re-order variables\n<\/h3>\n\n<p>HTTPie orders your variables by the creation time by default. Now you can use any ordering system that makes sense for your variables.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--Uw68GoVP--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Freorder-variables-5C6GHFVY.gif%26w%3D1920%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--Uw68GoVP--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Freorder-variables-5C6GHFVY.gif%26w%3D1920%26q%3D95\" alt=\"Use drag-and-drop to re-order variables in the table\" width=\"800\" height=\"449\"><\/a><\/p>\n\n<h3>\n  \n  \n  \ud83d\udd01 Re-order environments\n<\/h3>\n\n<p>And you can now re-order environments as well \ud83e\udeb7<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--NdQqziE0--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Freorder-environments-QEVYQCVS.gif%26w%3D1920%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--NdQqziE0--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0024%252Freorder-environments-QEVYQCVS.gif%26w%3D1920%26q%3D95\" alt=\"Use the Shift left\/right menu items to re-order environments\" width=\"800\" height=\"449\"><\/a><\/p>\n\n<h3>\n  \n  \n  \u2728 Other enhancements\n<\/h3>\n\n<ul>\n<li>Collection and request names now may be up to ~40~ <em>80<\/em> characters long.<\/li>\n<li>Numerous under-the-hood stability and performance improvements.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  HTTPie for Terminal 3.2.2\n<\/h2>\n\n<p>HTTPie for Terminal <a href=\"https:\/\/github.com\/httpie\/httpie\/releases\/tag\/3.2.2\">v3.2.2 is now available<\/a> \ud83c\udf89 This version fixes compatibility with <code>urllib3<\/code> 2.0.<\/p>\n\n<h2>\n  \n  \n  \ud83e\udd17 Happy API testing, and see you again soon!\n<\/h2>\n\n<ul>\n<li>\u2709\ufe0f Thoughts? Questions? Shoot us an email at <a href=\"\/\/mailto:feedback@httpie.io\">feedback@httpie.io<\/a>.<\/li>\n<li>\ud83d\udccb You can also help us improve by completing a <a href=\"https:\/\/httpie.io\/survey\">quick survey<\/a>.<\/li>\n<li>\ud83d\udc49 Follow <a href=\"https:\/\/twitter.com\/httpie\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\">Discord community<\/a> to stay up to date.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\">engineering and design roles<\/a>.<\/li>\n<\/ul>\n\n\n\n\n<p>Originally published on <a href=\"https:\/\/httpie.io\/blog\/changelog-0024\">https:\/\/httpie.io\/blog\/changelog-0024<\/a><\/p>\n\n","category":["httpie","api","devtools"]},{"title":"Changelog #0023 \u2014 \ud83d\udee0\ufe0f Internal refactoring and improvements","pubDate":"Mon, 29 May 2023 15:13:25 +0000","link":"https:\/\/dev.to\/pie\/changelog-0023-internal-refactoring-and-improvements-41ga","guid":"https:\/\/dev.to\/pie\/changelog-0023-internal-refactoring-and-improvements-41ga","description":"<p>HTTPie for Web &amp; Desktop <a href=\"https:\/\/github.com\/httpie\/desktop\/releases\/tag\/v2023.2.4\">v2023.2.x<\/a> is out, and it\u2019s probably our biggest release yet \u2014 regarding lines of code changed, anyway!<\/p>\n\n<h2>\n  \n  \n  \u2728What\u2019s new\n<\/h2>\n\n<ul>\n<li>Added the ability to sync requests with binary data in text bodies<\/li>\n<li>Added the ability to sync requests with binary data in form field values<\/li>\n<li>Fixed various sync issues preventing some users from fully syncing<\/li>\n<li>Fixed the auto-update dialog to appear only once for each version<\/li>\n<li>Fixed an occasional crash when re-ordering items via drag-and-drop<\/li>\n<li>Numerous small fixes and improvements throughout the app<\/li>\n<li>\u26a1\ufe0f A comprehensive refactoring and re-architecture of the entire codebase<\/li>\n<li>\ud83c\udfce\ufe0f Internal DX optimizations for rapid development of upcoming features<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83d\udee0\ufe0f Internal refactoring\n<\/h2>\n\n<p>We focused on reducing technical debt accumulated over the past 30+ releases. This led to a comprehensive refactoring and re-architecture. Our codebase v2 is much leaner and cleaner, and our internal DX and development pace has greatly improved.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--LRprBcJL--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0023%252Fpr-OKJIHAHN.png%26w%3D1920%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--LRprBcJL--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0023%252Fpr-OKJIHAHN.png%26w%3D1920%26q%3D95\" alt=\"files\" width=\"800\" height=\"340\"><\/a><\/p>\n\n<p>Most impactful has been reworking our data model layer and state management system. The original codebase had evolved to keep much of its business logic inside <a href=\"https:\/\/github.com\/pmndrs\/jotai\">jotai<\/a> atoms, and we generally had very little abstraction in the model layer. This made the model layer code complex, rigid, and bug-prone.<\/p>\n\n<p>Our new data layer is powered by an internal framework where all entities are defined as classes inheriting from a base <code>Model<\/code>, connected to a <code>Backend<\/code>. The latter provides implementions of reactive CRUD on top of localStorage, RxDB, etc.<\/p>\n\n<p>The decision to write our solution came after carefully evaluating existing options. Our app is highly data-driven, and we couldn\u2019t find a solution to satisfy all our criteria (class-based models, support for relationships, swappable storage backends, sync and React interface as an add-on, etc.).<\/p>\n\n<p>We took inspiration from the many frameworks we worked with throughout our careers. And maybe surprisingly, Django\u2019s ORM layer impacted our design choices and the API quite a bit. The resulting framework relies on <a href=\"https:\/\/zod.dev\/\">Zod<\/a> for schemas and validation and <a href=\"https:\/\/github.com\/pmndrs\/valtio\">Valtio<\/a> for React integration.<\/p>\n\n<p>We\u2019re extremely pleased with the result and hope to open-source the framework soon. We cannot wait to ship our upcoming <a href=\"https:\/\/httpie.io\/ai\">AI<\/a>, <a href=\"https:\/\/httpie.io\/blog\/changelog-0020#help-wanted-teams-and-collaboration\">collaboration<\/a>, and scripting features we\u2019re building already using the new framework.<\/p>\n\n<h2>\n  \n  \n  \ud83e\udd17 Happy API testing, and see you again soon!\n<\/h2>\n\n<ul>\n<li>\u2709\ufe0f Thoughts? Questions? Shoot us an email at <a href=\"\/\/mailto:feedback@httpie.io\">feedback@httpie.io<\/a>.<\/li>\n<li>\ud83d\udccb You can also help us improve by completing a <a href=\"https:\/\/httpie.io\/survey\">quick survey<\/a>.<\/li>\n<li>\ud83d\udc49 Follow <a href=\"https:\/\/twitter.com\/httpie\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\">Discord community<\/a> to stay up to date.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\">engineering and design roles<\/a>.<\/li>\n<\/ul>\n\n\n\n\n<p>Originally published on <a href=\"https:\/\/httpie.io\/blog\/changelog-0023\">https:\/\/httpie.io\/blog\/changelog-0023<\/a><\/p>\n\n"},{"title":"HTTPie AI assistant","pubDate":"Wed, 04 Jan 2023 12:24:56 +0000","link":"https:\/\/dev.to\/pie\/httpie-ai-assistant-4pmg","guid":"https:\/\/dev.to\/pie\/httpie-ai-assistant-4pmg","description":"<p>Today we\u2019re launching HTTPie AI, a new way to interact with APIs \u2728<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2FImages%2FBlog%2Fai.gif\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2FImages%2FBlog%2Fai.gif\" alt=\"HTTPie AI in action\" width=\"560\" height=\"315\"><\/a><\/p>\n\n<p>HTTPie AI assistant, built into HTTPie for <a href=\"https:\/\/httpie.io\/app\" rel=\"noopener noreferrer\">Web<\/a>\u00a0&amp;\u00a0<a href=\"https:\/\/httpie.io\/product\" rel=\"noopener noreferrer\">Desktop<\/a>, uses state-of-the-art artificial intelligence to increase your productivity when testing and talking to APIs.<\/p>\n\n<h2>\n  \n  \n  Free product preview\n<\/h2>\n\n<p>This initial release allows you to create requests using human language.  While in preview, you can use HTTPie AI for free with an HTTPie account. Gradually, AI capabilities will expand throughout the platform.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzdinwvwh2ljdi7fivix.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzdinwvwh2ljdi7fivix.png\" width=\"800\" height=\"351\"><\/a><\/p>\n\n<h2>\n  \n  \n  The problem\n<\/h2>\n\n<p>Let\u2019s say you want to fetch the details of the <a href=\"https:\/\/github.com\/httpie\/dekstop\" rel=\"noopener noreferrer\">httpie\/desktop<\/a> repo from the GitHub API. This requires translating the intent to the corresponding HTTP request and entering it into the client\u2019s UI. You need to have some degree of understanding of the following:<\/p>\n\n<ul>\n<li>How the API or server works (e.g., hostname, endpoints, auth)<\/li>\n<li>How HTTP works (e.g., headers, methods, body)<\/li>\n<li>How to instruct the client to send the exact request<\/li>\n<\/ul>\n\n<p>What if instead of creating requests manually, we could tell HTTPie to \u201cfetch repo details of httpie\/desktop\u201d? Or even in another language like Spanish, \u00abobt\u00e9n los detalles del repositorio httpie\/desktop\u00bb?<\/p>\n\n<p>Well, now you can!<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfbzrcxxxxtiv073tdel.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfbzrcxxxxtiv073tdel.png\" width=\"800\" height=\"484\"><\/a><\/p>\n\n<h2>\n  \n  \n  Craft requests using human language\n<\/h2>\n\n<p>You can type your prompt directly in HTTPie\u2019s URL field. It\u2019s similar to typing a search query in your browser\u2019s address bar instead of the exact URL.<\/p>\n\n<p>Alternatively, you can open the HTTPie AI dialog from the \u201c+\u201d menu in the library. In the desktop app, you can also use \u2318I. There\u2019s a difference in that when you start in the URL field, accepting the generated request will update the one in the current tab instead of creating a new one.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2shh79cfm6uu6q7mrbi.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2shh79cfm6uu6q7mrbi.png\" width=\"800\" height=\"501\"><\/a><\/p>\n\n<p>Then hit \u201cGenerate\u201d to get a suggestion.<\/p>\n\n<p>If you like the request, save it. The saved request automatically gets a short name generated by the AI. If you don\u2019t like it, you can hit \u201cGenerate\u201d again, which often produces a different result. You can also try editing the prompt.  If the request includes any placeholders or obvious errors, you can modify it straight from the dialog before saving it (or you can do that after).<\/p>\n\n<p>There are two strategies for writing HTTPie prompts: <em>describing the request<\/em> and <em>describing the intent<\/em>.<\/p>\n\n<h3>\n  \n  \n  Describing the request\n<\/h3>\n\n<p>You can ask the AI to generate an HTTP request by describing its low-level components like the URL, headers, and body:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Generate an array of 3 blog posts with title, author, and summary and post it to localhost 3000 api as user agent HTTPie AI\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37pxl0ok3nbgnndjdaie.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37pxl0ok3nbgnndjdaie.png\" width=\"800\" height=\"983\"><\/a><\/p>\n\n<h3>\n  \n  \n  Describing the intent\n<\/h3>\n\n<p>For actions involving public APIs of popular services, you can describe the high-level tasks you want to accomplish:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>List GitHub users\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fycg2brhtgim40la6bxsf.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fycg2brhtgim40la6bxsf.png\" width=\"800\" height=\"335\"><\/a><\/p>\n\n<p>Here is another example, where the model picks up that we mean a GitHub repo:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Fetch last release details of httpie\/desktop\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcu6gn1p923pudubzd98a.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcu6gn1p923pudubzd98a.png\" width=\"800\" height=\"360\"><\/a><\/p>\n\n<h3>\n  \n  \n  Feedback and accuracy\n<\/h3>\n\n<p>Like many generative AI applications, the accuracy of the outcome may vary depending on the prompt and other factors. Review the generated request and iterate on the prompt as needed. Higher specificity often leads to better results. You can quickly correct errors directly in the dialog before saving the request. As you use HTTPie AI, please provide quick feedback on the suggestions via the thumb-down and thumb-up buttons to help us fine-tune accuracy.<\/p>\n\n<h2>\n  \n  \n  Entering the era of AI copilots\n<\/h2>\n\n<p>As large language models (LLMs) gain robust generative capabilities, creative tools are evolving toward AI-powered experiences.<\/p>\n\n<p>HTTPie is now becoming the first API development platform with AI assistance, and we\u2019d love your feedback!<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3hapsg66uanrg2qncjoi.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3hapsg66uanrg2qncjoi.png\" alt=\"AI copilots: GitHub Copilot, Replit Ghostwriter, Canva Magic Write, Notion AI, HTTPie AI\" width=\"800\" height=\"449\"><\/a><\/p>\n\n<h2>\n  \n  \n  How we built it\n<\/h2>\n\n<p>We built this initial feature preview using OpenAI\u2019s GPT-3 models. <\/p>\n\n<p>In the process, we refactored the <a href=\"https:\/\/github.com\/openai\/openai-python\" rel=\"noopener noreferrer\">openai\/openai-python<\/a> library to make the default installation size <a href=\"https:\/\/github.com\/openai\/openai-python\/pull\/153\" rel=\"noopener noreferrer\">~7\u2a09\u00a0smaller<\/a> (167M \u2192 23M). Now it\u2019s much more manageable to deploy OpenAI-powered applications using this library in environments with code size constraints, such as AWS Lambda.<\/p>\n\n<h2>\n  \n  \n  What\u2019s next\n<\/h2>\n\n<p>We\u2019ll continue improving the assistant\u2019s accuracy and adding more capabilities throughout the HTTPie platform.<\/p>\n\n<p>Jump into the <a href=\"https:\/\/httpie.io\/app\" rel=\"noopener noreferrer\">Web<\/a> app or download the <a href=\"https:\/\/httpie.io\/product\" rel=\"noopener noreferrer\">Desktop<\/a> app and check it out!<\/p>\n\n<ul>\n<li>\u2709\ufe0f Thoughts? Questions? Shoot us an email at <a href=\"mailto:feedback@httpie.io\">feedback@httpie.io<\/a>.<\/li>\n<li>\ud83d\udccb You can also help us improve by completing a <a href=\"https:\/\/httpie.io\/survey\" rel=\"noopener noreferrer\">quick survey<\/a>.<\/li>\n<li>\ud83d\udc49 Follow <a href=\"https:\/\/twitter.com\/httpie\" rel=\"noopener noreferrer\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\" rel=\"noopener noreferrer\">Discord community<\/a> to stay up to date.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\" rel=\"noopener noreferrer\">engineering and other roles<\/a>.<\/li>\n<\/ul>\n\n<p>PS: We\u2019re looking for a more personable name for our assistant \ud83d\udca1<\/p>\n\n\n\n\n<p>Originally published at <a href=\"https:\/\/httpie.io\/blog\/ai\" rel=\"noopener noreferrer\">https:\/\/httpie.io\/blog\/ai<\/a><\/p>\n\n","category":["httpie","ai","api","devtools"]},{"title":"Changelog #0022 \u2014 \ud83e\ude84 HTTPie AI assistant, methods in tabs, and more","pubDate":"Wed, 04 Jan 2023 12:20:25 +0000","link":"https:\/\/dev.to\/pie\/changelog-0022-httpie-ai-assistant-methods-in-tabs-and-more-20ec","guid":"https:\/\/dev.to\/pie\/changelog-0022-httpie-ai-assistant-methods-in-tabs-and-more-20ec","description":"<p>Happy <a href=\"https:\/\/twitter.com\/httpie\/status\/1609345468529577991\" rel=\"noopener noreferrer\">new year<\/a>! \ud83e\udd73 Let\u2019s start it with a new release of HTTPie for\u00a0<a href=\"https:\/\/httpie.io\/app\" rel=\"noopener noreferrer\">Web<\/a>\u00a0&amp;\u00a0<a href=\"https:\/\/httpie.io\/product\" rel=\"noopener noreferrer\">Desktop<\/a>. Check out what we shipped <a href=\"https:\/\/github.com\/httpie\/desktop\/releases\/tag\/v2023.1.0\" rel=\"noopener noreferrer\">v2023.1.0<\/a> \ud83d\udc47<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd16 Summary\n<\/h2>\n\n<ul>\n<li>\n<strong>\ud83e\ude84 HTTPie AI assistant \u2013<\/strong> Introducing a new way to interact with APIs.<\/li>\n<li>\n<strong>\ud83d\uddc2\ufe0f Methods in tabs \u2013<\/strong> Easier navigation with HTTP methods in tabs.<\/li>\n<li>\n<strong>\ud83d\udcda Library context menu \u2014<\/strong> New context menu for quick library actions.<\/li>\n<li>\n<strong>\ud83c\udf0a cURL as URL \u2014<\/strong> Type a cURL command in the address field.<\/li>\n<li>\n<strong>\u2728 Other improvements \u2014<\/strong> Tweaks and fixes for improved API testing.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83e\ude84 Introducing HTTPie AI\n<\/h2>\n\n<p>Today we\u2019re launching HTTPie AI, a new way to interact with APIs.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fntd2dy8l6z5jcjbd9vo7.gif\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fntd2dy8l6z5jcjbd9vo7.gif\" alt=\"HTTPie AI in action\" width=\"560\" height=\"315\"><\/a><\/p>\n\n<p>HTTPie AI assistant uses artificial intelligence to increase your productivity when testing and talking to APIs. This free feature preview allows you to create requests using human language.<\/p>\n\n<p><a href=\"https:\/\/httpie.io\/blog\/ai\" rel=\"noopener noreferrer\">Read the full announcement<\/a> \u2192<\/p>\n\n<h2>\n  \n  \n  \ud83d\uddc2\ufe0f See methods in tabs\n<\/h2>\n\n<p>HTTPie now shows the HTTP method next to the request name in the request tabs:<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qq3ns3w6wbsvhal2jgp.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qq3ns3w6wbsvhal2jgp.png\" alt=\"HTTP methods shown in tabs\" width=\"800\" height=\"449\"><\/a><\/p>\n\n<p>This way, you can easily distinguish between tabs for requests using different methods but with the same name or URL. The <code>&lt;method&gt; &lt;name&gt;<\/code> pair works nicely as a <code>&lt;verb&gt; &lt;noun&gt;<\/code> sentence \u2014 a request identification system we already use in the library.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udcda\ufe0f Quick library actions with new context menu\n<\/h2>\n\n<p>There\u2019s a lot of action behind the innocently looking \u201c+\u201d button in the library. To make it more accessible, you can now invoke a similar menu through a right-click anywhere in the empty space in the sidebar:<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fryfs8s2qqhlkszlod17e.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fryfs8s2qqhlkszlod17e.png\" alt=\"Right-click an empty area in the sidebar to open Library context menu\" width=\"800\" height=\"566\"><\/a><\/p>\n\n<h2>\n  \n  \n  \ud83c\udf0a Type a cURL command in the address field\n<\/h2>\n\n<p>You can <a href=\"https:\/\/httpie.io\/blog\/changelog-0017#curl-import\" rel=\"noopener noreferrer\">paste a cURL command into the URL field<\/a> for quick import. In this release, we added the ability to type an <a href=\"https:\/\/httpie.io\/blog\/ai\" rel=\"noopener noreferrer\">AI prompt<\/a> into the address field, and at the same time, we extended it to support typing cURL commands.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff9zvbs9m8a888k2lahal.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff9zvbs9m8a888k2lahal.png\" alt=\"cURL command in the URL field\" width=\"800\" height=\"449\"><\/a><\/p>\n\n<p>Support for HTTPie CLI commands is coming soon.<\/p>\n\n<h2>\n  \n  \n  \u2728 Other improvements\n<\/h2>\n\n<ul>\n<li>Added numerous on-import clean-ups like detecting GraphQL requests based on the body to import them with the GraphQL body type or moving Bearer tokens from <code>Authorization: Bearer \u2026<\/code> headers to the auth tab.<\/li>\n<li>Added more robust <a href=\"https:\/\/httpie.io\/blog\/changelog-0018#navigate-apis-faster-with-interactive-urls\" rel=\"noopener noreferrer\">interactive URL<\/a> matching. HTTPie will now add interactivity to links containing an IP address, port number, or pointing to <code>localhost<\/code>.<\/li>\n<li>Added RSS feeds to this blog; grab one for your feed reader to stay up-to-date: \u26a1\ufe0f<a href=\"https:\/\/httpie.io\/api\/feed\/atom\" rel=\"noopener noreferrer\">Atom 1.0<\/a>, \u26a1\ufe0f<a href=\"https:\/\/httpie.io\/api\/feed\/rss\" rel=\"noopener noreferrer\">RSS 2.0<\/a>, \u26a1\ufe0f<a href=\"https:\/\/httpie.io\/api\/feed\/json\" rel=\"noopener noreferrer\">JSON Feed 1.1<\/a>\n<\/li>\n<li>Fixed the auto-update system not to bother you once you choose \u201cInstall on next launch.\u201d (<a href=\"https:\/\/github.com\/httpie\/desktop\/issues\/55\" rel=\"noopener noreferrer\">#55<\/a>)<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83e\udd29 Happy API testing, and see you again soon!\n<\/h2>\n\n<ul>\n<li>\u2709\ufe0f Thoughts? Questions? Shoot us an email at <a href=\"mailto:feedback@httpie.io\">feedback@httpie.io<\/a>.<\/li>\n<li>\ud83d\udccb You can also help us improve by completing a <a href=\"https:\/\/httpie.io\/survey\" rel=\"noopener noreferrer\">quick survey<\/a>.<\/li>\n<li>\ud83d\udc65 We\u2019re working on collaboration features, and you can <a href=\"https:\/\/httpie.io\/blog\/changelog-0019#help-wanted-teams-and-collaboration\" rel=\"noopener noreferrer\">help us out<\/a>.<\/li>\n<li>\ud83d\udc49 Follow <a href=\"https:\/\/twitter.com\/httpie\" rel=\"noopener noreferrer\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\" rel=\"noopener noreferrer\">Discord community<\/a> to stay up to date.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\" rel=\"noopener noreferrer\">engineering and other roles<\/a>.<\/li>\n<\/ul>\n\n\n\n\n<p>Originally published on <a href=\"https:\/\/httpie.io\/blog\/changelog-0022\" rel=\"noopener noreferrer\">https:\/\/httpie.io\/blog\/changelog-0022<\/a><\/p>\n\n","category":["httpie","ai","api","devtools"]},{"title":"Changelog #0021 \u2014 \ud83d\udcef Advanced import, GraphQL schema support, and more","pubDate":"Thu, 08 Dec 2022 12:25:00 +0000","link":"https:\/\/dev.to\/pie\/changelog-0021-advanced-import-graphql-schema-support-and-more-5apc","guid":"https:\/\/dev.to\/pie\/changelog-0021-advanced-import-graphql-schema-support-and-more-5apc","description":"<p>Hello, API World! Check out what we shipped in <a href=\"https:\/\/github.com\/httpie\/desktop\/releases\/tag\/v2022.16.0\" rel=\"noopener noreferrer\">v2022.16.0<\/a><br>\nof HTTPie for <a href=\"https:\/\/httpie.io\/app\" rel=\"noopener noreferrer\">Web<\/a>\u00a0&amp;\u00a0<a href=\"https:\/\/httpie.io\/product\" rel=\"noopener noreferrer\">Desktop<\/a> \ud83d\udc47<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd16 Summary\n<\/h2>\n\n<ul>\n<li>\n<strong>\ud83d\udcef Advanced import \u2013<\/strong> Migrate your data from Postman and Insomnia.<\/li>\n<li>\n<strong>\ud83e\ude84 GraphQL schema support \u2013<\/strong> Auto-complete, validation, and more.<\/li>\n<li>\n<strong>\u2728 Other improvements \u2014<\/strong> Tweaks and fixes for improved API testing.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83d\udcef Import your Postman and Insomnia data to HTTPie\n<\/h2>\n\n<p>Since our <a href=\"https:\/\/httpie.io\/blog\/changelog-0017\" rel=\"noopener noreferrer\">public beta launch<\/a> a few months ago, the adoption of HTTPie for Web &amp; Desktop has been growing. Many of our new users have migrated from other API testing clients like Postman and Insomnia, and they\u2019ve been asking for a smoother migration path.<\/p>\n\n<p>So in this release, we focused on streamlining the migration process, and\u2014in addition to the existing\u00a0<a href=\"https:\/\/httpie.io\/blog\/changelog-0017#curl-import\" rel=\"noopener noreferrer\">cURL import<\/a>\u2014you can now import entire collections, environments and data dump zips from Postman and Insomnia.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflnm8j51uj922ksmq5m1.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflnm8j51uj922ksmq5m1.png\" alt=\"A graph showing the steep growth of active usage of HTTPie for Web &amp; Desktop\" width=\"800\" height=\"488\"><\/a><\/p>\n\n<h3>\n  \n  \n  \ud83d\ude80 Migrate to HTTPie in a few simple steps\n<\/h3>\n\n<ol>\n<li>\n<strong>Export<\/strong> your data <a href=\"https:\/\/httpie.io\/r\/docs\/app\/export-from-postman\" rel=\"noopener noreferrer\">from Postman<\/a> or <a href=\"https:\/\/httpie.io\/r\/docs\/app\/export-from-insomnia\" rel=\"noopener noreferrer\">from Insomnia<\/a>.<\/li>\n<li>Open the import dialog (Library \u2192 \u201c+\u201d \u2192 \u201cImport\u2026\u201d).<\/li>\n<li>Drag &amp; drop the exported file and click \u201cNext\u2026\u201d.<\/li>\n<li>Select the target space and click \u201cImport.\u201d<\/li>\n<li>Done! Welcome to HTTPie \ud83e\udd17<\/li>\n<\/ol>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3h8c1jm90jlao3hvua4c.gif\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3h8c1jm90jlao3hvua4c.gif\" alt=\"A video of importing a zipped data dump from Postman\" width=\"720\" height=\"404\"><\/a><\/p>\n\n<p>\ud83d\udca1 Tip: Create a new space during the import to keep things tidy.<\/p>\n\n<h3>\n  \n  \n  \ud83d\udec2 Import compatibility\n<\/h3>\n\n<p>Here\u2019s an overview of what elements HTTPie currently imports from Postman and Insomnia and how. As we gradually add new features to HTTPie, we\u2019ll continue to improve the import as well.<\/p>\n\n<h4>\n  \n  \n  \ud83d\udeeb\ufe0f Importing requests\n<\/h4>\n\n<div class=\"table-wrapper-paragraph\"><table>\n<thead>\n<tr>\n<th>Request element<\/th>\n<th>Imported?<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>HTTP Requests<\/td>\n<td>\u2714<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>GraphQL requests<\/td>\n<td>\u2714<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>gRPC requests<\/td>\n<td>\u2718<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>WebSockets<\/td>\n<td>\u2718<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Request method<\/td>\n<td>\u2714<\/td>\n<td>Including custom ones.<\/td>\n<\/tr>\n<tr>\n<td>Request URL<\/td>\n<td>\u2714<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>URL parameters<\/td>\n<td>\u2714<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Headers<\/td>\n<td>\u2714<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Auth<\/td>\n<td>\u2714<\/td>\n<td>Basic, bearer, API key, and inherited auth.<\/td>\n<\/tr>\n<tr>\n<td>Body<\/td>\n<td>\u2714<\/td>\n<td>Text, raw, JSON, and form request bodies.<\/td>\n<\/tr>\n<tr>\n<td>Body files<\/td>\n<td>\u2718<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h4>\n  \n  \n  \ud83c\udf71\ufe0f Importing containers\n<\/h4>\n\n<div class=\"table-wrapper-paragraph\"><table>\n<thead>\n<tr>\n<th>Container<\/th>\n<th>Imported?<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Collections<\/td>\n<td>\u2714<\/td>\n<td>See collection variables below.<\/td>\n<\/tr>\n<tr>\n<td>Sub-folders<\/td>\n<td>\u2718<\/td>\n<td>Folder hierarchy is preserved as breadcrumbs in request names.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h4>\n  \n  \n  \ud83d\uddbc\ufe0f\ufe0f Importing environments &amp; variables\n<\/h4>\n\n<div class=\"table-wrapper-paragraph\"><table>\n<thead>\n<tr>\n<th>Element<\/th>\n<th>Imported?<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Environments<\/td>\n<td>\u2714<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Default variables<\/td>\n<td>\u2714<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Collection variables<\/td>\n<td>\u2714<\/td>\n<td>We move non-global variables to the space level and refactor names and references to ensure uniqueness.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h4>\n  \n  \n  \ud83d\udca7 Importing other elements\n<\/h4>\n\n<div class=\"table-wrapper-paragraph\"><table>\n<thead>\n<tr>\n<th>Other element<\/th>\n<th>Imported?<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Scripting<\/td>\n<td>\u2718<\/td>\n<td>Pre-request scripts, tests, and dynamic tags.<\/td>\n<\/tr>\n<tr>\n<td>Meta data<\/td>\n<td>\u2718<\/td>\n<td>Schemas, documentation, field descriptions, and response examples.<\/td>\n<\/tr>\n<tr>\n<td>Custom settings<\/td>\n<td>\u2718<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Cookies<\/td>\n<td>\u2718<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h2>\n  \n  \n  \ud83e\ude84 Easier GraphQL APIs testing with schema support\n<\/h2>\n\n<p>When talking to <a href=\"https:\/\/httpie.io\/blog\/changelog-0018#support-for-graphql-apis\" rel=\"noopener noreferrer\">GraphQL APIs<\/a>, HTTPie will automatically fetch the schema from the server. That means the app is now aware of all the available queries, mutations, and the hierarchy of types, which allows us to boost your productivity with auto-complete and validation.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8c66wv79tqspkzibq71a.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8c66wv79tqspkzibq71a.png\" alt=\"GraphQL auto-complete and validation in action\" width=\"800\" height=\"586\"><\/a><\/p>\n\n<p>See auto-complete suggestions as you type, and to invoke the menu manually, press \u2303Space.<\/p>\n\n<p>HTTPie auto-fetches the schema using the current request\u2019s URL and authentication. To refresh the schema, select \u201cUpdate from server\u201d from the new \u201cSchema\u201d menu. And to disable schema for a particular tab, uncheck \u201cAuto-apply schema.\u201d<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fve7un6tr9idnrztdts36.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fve7un6tr9idnrztdts36.png\" alt=\"GraphQL schema loading menu\" width=\"800\" height=\"449\"><\/a><\/p>\n\n<p>In addition to schema support, the GraphQL client now comes with code folding and other quality-of-life improvements.<\/p>\n\n<h2>\n  \n  \n  \u2728 Other improvements\n<\/h2>\n\n<ul>\n<li>Improved cURL import with support for <a href=\"https:\/\/www.gnu.org\/software\/bash\/manual\/html_node\/ANSI_002dC-Quoting.html\" rel=\"noopener noreferrer\">ANSI-C quoting shell syntax<\/a> (e.g., <code>$'string'<\/code>). This syntax is used by Chrome DevTools when exporting a request that includes a body as cURL, among others.<\/li>\n<li>HTTPie for Desktop now remembers the window's position. This way, you don't have to move it every time you launch it.<\/li>\n<li>On HTTPie for Windows, the title bar color now respects the system.<\/li>\n<li>The request definition tables no longer jump when switching tabs.<\/li>\n<li>We\u2019ve added error boundaries to tabs and other components for more robust exception handling and recovery.<\/li>\n<li>The text search had some issues with very long lines. Now it\u2019s fixed.<\/li>\n<li>Spelling and autocorrect in the filter field is now disabled.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83e\udd29 Happy API testing, and see you again soon!\n<\/h2>\n\n<ul>\n<li>\u2709\ufe0f Thoughts? Questions? Shoot us an email at <a href=\"mailto:feedback@httpie.io\">feedback@httpie.io<\/a>.<\/li>\n<li>\ud83d\udccb You can also help us improve by completing a <a href=\"https:\/\/httpie.io\/survey\" rel=\"noopener noreferrer\">quick survey<\/a>.<\/li>\n<li>\ud83d\udc65 We\u2019re working on collaboration features, and you can <a href=\"https:\/\/httpie.io\/blog\/changelog-0019#help-wanted-teams-and-collaboration\" rel=\"noopener noreferrer\">help us out<\/a>.<\/li>\n<li>\ud83d\udc49 Follow <a href=\"https:\/\/twitter.com\/httpie\" rel=\"noopener noreferrer\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\" rel=\"noopener noreferrer\">Discord community<\/a> to stay up to date.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\" rel=\"noopener noreferrer\">engineering and other roles<\/a>.<\/li>\n<\/ul>\n\n\n\n\n<p>Originally published on <a href=\"https:\/\/httpie.io\/blog\/changelog-0021\" rel=\"noopener noreferrer\">HTTPie blog<\/a>.<\/p>\n\n","category":["httpie","graphql","postman","insomnia"]},{"title":"Changelog #0020 \u2014 \ud83d\udd26 Data filtering, search & replace, RegExp, and more","pubDate":"Mon, 24 Oct 2022 22:02:50 +0000","link":"https:\/\/dev.to\/pie\/changelog-0020-data-filtering-search-replace-regexp-and-more-4ffp","guid":"https:\/\/dev.to\/pie\/changelog-0020-data-filtering-search-replace-regexp-and-more-4ffp","description":"<p>Hello, API World! We\u2019re back with a new release of HTTPie for <a href=\"https:\/\/httpie.io\/app\">Web<\/a>\u00a0&amp;\u00a0<a href=\"https:\/\/httpie.io\/product\">Desktop<\/a>, the API testing client that you\u2019ll enjoy using. <a href=\"https:\/\/httpie.io\/blog\/changelog-0019\">Last time<\/a>, we hinted at additional tools for navigating and processing data. And that\u2019s been our theme for this release. Check out what we shipped in <a href=\"https:\/\/github.com\/httpie\/desktop\/releases\/tag\/v2022.15.0\">v2022.15.0<\/a>\ud83d\udc47<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd16 Summary\n<\/h2>\n\n<ul>\n<li>\n<strong>\ud83d\udd26 Data filtering \u2013<\/strong> Filter, transform and analyze JSON, XML, and HTML.<\/li>\n<li>\n<strong>\ud83d\udd23 RegExp support \u2013<\/strong> Level up your search powers.<\/li>\n<li>\n<strong>\ud83d\udd00 Search &amp; replace \u2013<\/strong> Edit the request body text the smart way.<\/li>\n<li>\n<strong>\u2728 Other improvements \u2014<\/strong> Tweaks and fixes for an improved experience.<\/li>\n<li>\n<strong>\ud83d\udc65 Teams &amp; collaboration -<\/strong> Help us build the best collaborative experience.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83d\udd26 Filter, transform and analyze structured data\n<\/h2>\n\n<p>We\u2019ve recently <a href=\"https:\/\/httpie.io\/blog\/changelog-0019#search-in-any-message\">introduced text search<\/a> to help you navigate large messages. Text search is available everywhere in the app as a universal way to navigate textual content.<\/p>\n\n<p>When talking to APIs, though, you often deal with structured data like JSON, XML, and HTML. The explicit structure of these formats unlocks additional, more powerful ways of navigating and processing the data they contain.<\/p>\n\n<p>In this release, we focused on taking advantage of that and added the ability to filter structured formats using various query languages. With filtering, you can quickly analyze, transform, and selectively extract data from structured documents without leaving HTTPie.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--CNqZQUAV--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0020%252Ffilter-OD37BAIC.gif%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--CNqZQUAV--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0020%252Ffilter-OD37BAIC.gif%26w%3D3840%26q%3D95\" alt=\"Filter\" width=\"880\" height=\"494\"><\/a><\/p>\n\n<p>The following data formats and query languages are now available:<\/p>\n\n<div class=\"table-wrapper-paragraph\"><table>\n<thead>\n<tr>\n<th>Data format<\/th>\n<th>Query language<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>JSON<\/td>\n<td><a href=\"https:\/\/httpie.io\/r\/docs\/app\/jsonpath\">JSONPath<\/a><\/td>\n<\/tr>\n<tr>\n<td>XML<\/td>\n<td><a href=\"https:\/\/httpie.io\/r\/docs\/app\/xpath\">XPath<\/a><\/td>\n<\/tr>\n<tr>\n<td>HTML<\/td>\n<td><a href=\"https:\/\/httpie.io\/r\/docs\/app\/xpath\">XPath<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<p>Activate the filter field via a keyboard shortcut when the textarea is focused (macOS: \u21e7\u2318F; Windows &amp; Linux: \u21e7\u2303F) or use the \u201cFilter\u201d item in the panel\u2019s menu.<\/p>\n\n<p>Data filtering is available everywhere where structured data can appear: in the preview and the request and response panels. To filter the request body data you\u2019re editing, open the preview panel and activate the filter there. The preview shows the effective request body with all variables already substituted, which allows more robust filtering.<\/p>\n\n<p>Data filtering and text searching are independent features. You can, for example, filter a massive JSON response and still search inside the filtered output. To do that, simply open both the filter field (\u21e7\u2318F) and the text search field (\u2318F).<\/p>\n\n<p>This feature is part of a theme of making data easy to process and digest, and we\u2019ll continue to add more ways to transform and visualize data.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd23 Upgrade your searches through RegExp\n<\/h2>\n\n<p>Regular expressions (aka RegExp) are a powerful tool for searching for patterns in text, and now you can use them in HTTPie as well.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--2DFXy40L--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0020%252Fregexp-ZLZ4ZXTY.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--2DFXy40L--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0020%252Fregexp-ZLZ4ZXTY.png%26w%3D3840%26q%3D95\" alt=\"RegExp search\" width=\"880\" height=\"495\"><\/a><\/p>\n\n<h2>\n  \n  \n  \ud83d\udd00 Search &amp; replace in the request body\n<\/h2>\n\n<p>Any request body should be comfortably editable directly in HTTPie, no matter how big. The new ability to search &amp; replace is another step in that direction!<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--WUIXP7um--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0020%252Freplace-VHAGISVG.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--WUIXP7um--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0020%252Freplace-VHAGISVG.png%26w%3D3840%26q%3D95\" alt=\"Replace\" width=\"880\" height=\"495\"><\/a><\/p>\n\n<p>Activate the search field via a keyboard shortcut when the textarea is focused (macOS: \u2318F; Windows &amp; Linux: \u2303F), and check out the new replacing options. Either replace the occurrences one by one or all at once \u2014 up to you!<\/p>\n\n<p>When searching using a RegExp, you can reference matching groups using the dollar-group-number syntax, where <code>$0<\/code> references the whole match, <code>$1<\/code> is the first group, etc.<\/p>\n\n<h2>\n  \n  \n  \u2728 Other improvements and bug fixes\n<\/h2>\n\n<ul>\n<li>When the response body preview is active, and you invoke search or filter, we automatically turn the preview off so you can operate on the raw body.<\/li>\n<li>The app now uses dark mode for the UI by default. No worries, you can still change it back to the system or light one via the settings (\u2318,) if that\u2019s what you prefer.<\/li>\n<li>All <a href=\"https:\/\/httpie.io\/blog\/changelog-0019#work-blazing-fast-with-keyboard-shortcuts\">keyboard shortcuts<\/a> would repeat during a long press. We\u2019ve now streamlined it so that, for example, holding \u2318\u21a9 results only into one request.<\/li>\n<li>Now we warn you when you reach or approach the maximum <a href=\"https:\/\/httpie.io\/blog\/changelog-0017#variables\">variable name<\/a> character limit.<\/li>\n<li>We\u2019ve fixed a bug that sometimes led to 100% CPU usage with many tabs open.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83d\udce2 Help wanted: teams and collaboration\n<\/h2>\n\n<p>Like with delicious pies, we believe the magic of HTTPie can be best experienced when shared with others. \ud83d\ude0b<\/p>\n\n<p>We\u2019ve been heads down working on a multiplayer mode for a while now. Teams and collaboration are some of the most exciting and requested features on our roadmap. We can\u2019t wait to see what shape they\u2019ll take and all the opportunities they unlock for our users.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--NZu3e3-F--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0019%252Fteams-V3NNZ5RR.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--NZu3e3-F--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0019%252Fteams-V3NNZ5RR.png%26w%3D3840%26q%3D95\" alt=\"Teams and collaboration\" width=\"880\" height=\"513\"><\/a><\/p>\n\n<p>If you\u2019re as excited as we are, or the opposite, we\u2019d love to talk to you! We want to ensure we\u2019re building the right thing, and your help would be greatly appreciated &amp; <a href=\"https:\/\/dev.to\/blog\/changelog-0017#thanks-to-our-community-and-private-beta-users\">swag-rewarded<\/a>!<\/p>\n\n<p>As a start, you can help us by completing a <a href=\"https:\/\/us16.list-manage.com\/survey?u=99f5ce2d00a123af1593451c6&amp;id=77dc9762bd&amp;attribution=false\">quick survey<\/a>. Then, if you\u2019re up for it, we\u2019d be delighted to interview you over Zoom.<\/p>\n\n<p><a href=\"\/\/mailto:feedback@httpie.io\">Get in touch<\/a>, and help shape the best collaborative API experience! \ud83d\udcaa<\/p>\n\n<h2>\n  \n  \n  \ud83e\udd17 Happy API testing, and see you again soon!\n<\/h2>\n\n<ul>\n<li>\u2709\ufe0f Thoughts? Questions? Shoot us an email at <a href=\"\/\/mailto:feedback@httpie.io\">feedback@httpie.io<\/a>.<\/li>\n<li>\ud83d\udccb You can also help us improve by completing a <a href=\"https:\/\/httpie.io\/survey\">quick survey<\/a>.<\/li>\n<li>\ud83d\udc49 Follow <a href=\"https:\/\/twitter.com\/httpie\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\">Discord community<\/a> to stay up to date.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\">engineering and design roles<\/a>.<\/li>\n<\/ul>\n\n","category":"httpie"},{"title":"Changelog #0019 \u2014 \ud83d\udd90\ufe0f Library ordering, search, keyboard shortcuts, and more","pubDate":"Wed, 28 Sep 2022 21:27:57 +0000","link":"https:\/\/dev.to\/pie\/changelog-0019-library-ordering-search-keyboard-shortcuts-and-more-3pod","guid":"https:\/\/dev.to\/pie\/changelog-0019-library-ordering-search-keyboard-shortcuts-and-more-3pod","description":"<p>Hello, API World! We\u2019re back with a new major release of HTTPie for <a href=\"https:\/\/httpie.io\/app\" rel=\"noopener noreferrer\">Web<\/a>\u00a0&amp;\u00a0<a href=\"https:\/\/httpie.io\/product\" rel=\"noopener noreferrer\">Desktop<\/a>, the API testing client that you\u2019ll enjoy using.<\/p>\n\n<p>The theme of this release is developer productivity and streamlining the overall experience. Check out what we shipped in <a href=\"https:\/\/github.com\/httpie\/desktop\/releases\/tag\/v2022.14.0\" rel=\"noopener noreferrer\">v2022.14.0<\/a>\ud83d\udc47<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd16 Summary\n<\/h2>\n\n<ul>\n<li>\n<strong>\ud83d\udd90\ufe0f Library ordering \u2014<\/strong>\u00a0Reorder your items for tailored organization.<\/li>\n<li>\n<strong>\ud83d\udd0d Search in messages \u2014<\/strong> Find specific values in message bodies.<\/li>\n<li>\n<strong>\u2328\ufe0f Keyboard shortcuts \u2014<\/strong>\u00a0Move at the speed of your fingers.<\/li>\n<li>\n<strong>\ud83d\udc08 \u201cWhat\u2019s inside\u201d tooltips \u2014<\/strong>\u00a0Peek at the content of the request form.<\/li>\n<li>\n<strong>\ud83d\udca1 Multi-body hints \u2014<\/strong>\u00a0Know which body types already have data.<\/li>\n<li>\n<strong>\ud83d\udc41\ufe0f Preview toggle \u2014<\/strong>\u00a0Quickly toggle the response preview mode.<\/li>\n<li>\n<strong>\ud83c\udf29 Improved web errors\u00a0\u2014<\/strong>\u00a0Better web app limitation hints.<\/li>\n<li>\n<strong>\u2728 Other improvements \u2014<\/strong> Fixed localhost connection error, and more.<\/li>\n<li>\n<strong>\ud83d\udc65 Teams &amp; collaboration -<\/strong> Help us build the best collaborative experience.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83d\udd90\ufe0f Drag &amp; drop to reorder library items\n<\/h2>\n\n<p>HTTPie orders your collections and saved requests by the creation time by default. But you should fully own the organization of your library, right? Right! And now you do.<\/p>\n\n<p><a href=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fdnd-2V3NNPJL.gif%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fdnd-2V3NNPJL.gif%26w%3D3840%26q%3D95\" alt=\"Drag and drop in HTTPie\"><\/a><\/p>\n\n<p>In addition to the ability to move requests between collections, you can now use drag-and-drop to reorder saved requests and collections in your library.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd0e Search in any message\n<\/h2>\n\n<p>Navigating sizeable responses can be a burden. With the help of the newly added search, you won\u2019t feel like you\u2019re looking for a needle in a haystack.<\/p>\n\n<p><a href=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fsearch-DN7P4QJW.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fsearch-DN7P4QJW.png%26w%3D3840%26q%3D95\" alt=\"Message search\"><\/a><\/p>\n\n<p>Search is available everywhere where long content can appear: In the body editor and the preview, request, and response panels. You can activate the search field via a keyboard shortcut when the textarea is focused or use the \u201cSearch\u201d item in the menu.<\/p>\n\n<p>Coming next: RegExp search and structural filtering for various languages.<\/p>\n\n<h2>\n  \n  \n  \u2328\ufe0f Work blazing fast with keyboard shortcuts\n<\/h2>\n\n<p>Even as we continue to add top-notch drag-and-drop support throughout the app, the goal for HTTPie for Web &amp; Desktop is to become fully controllable via well-designed keyboard shortcuts.<\/p>\n\n<p>We believe that\u2019s the most efficient way to work. And we aim for our users to be able to work blazing fast.<\/p>\n\n<p>All components are keyboard-accessible, and you can navigate to and invoke all actions using the \u21e5 Tab and \u21a9 Enter keys.<\/p>\n\n<p>For this release, we focused on exposing the most common actions via explicit keyboard shortcuts.<\/p>\n\n<p><a href=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fshortcuts-FFDEKENN.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fshortcuts-FFDEKENN.png%26w%3D3840%26q%3D95\" alt=\"Keyboard shortcuts\"><\/a><\/p>\n\n<p>See the sections below for an overview of all the shortcuts available today. As always, we\u2019ll continue to improve this area, and you can look forward to more shortcuts and a \u2318K menu in upcoming releases.<\/p>\n\n<h3>\n  \n  \n  \ud83c\udf0d Global keyboard shortcuts\n<\/h3>\n\n<p>These shortcuts are available on the desktop today, and we\u2019ll bring a version of them to the web over time.<\/p>\n\n<div class=\"table-wrapper-paragraph\"><table>\n<thead>\n<tr>\n<th>Action<\/th>\n<th>macOS<\/th>\n<th>Windows\u00a0&amp;\u00a0Linux<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>New tab (draft)<\/td>\n<td>\u2318\u2002T<\/td>\n<td>\u2303\u2002T<\/td>\n<\/tr>\n<tr>\n<td>Close tab<\/td>\n<td>\u2318\u2002W<\/td>\n<td>\u2303\u2002W<\/td>\n<\/tr>\n<tr>\n<td>Next tab<\/td>\n<td>\n\u2303\u2002\u21e5 <br>\u21e7\u2002\u2318\u2002}\n<\/td>\n<td>\u2303\u2002\u21e5<\/td>\n<\/tr>\n<tr>\n<td>Previous tab<\/td>\n<td>\n\u2303\u2002\u21e7\u2002\u21e5 <br>\u21e7\u2002\u2318\u2002{\n<\/td>\n<td>\u2303\u2002\u21e7\u2002\u21e5<\/td>\n<\/tr>\n<tr>\n<td>Nth tab<\/td>\n<td>\u2318\u20021\u20138<\/td>\n<td>\u2303\u20021\u20138 <\/td>\n<\/tr>\n<tr>\n<td>Last tab<\/td>\n<td>\u2318\u20029<\/td>\n<td>\u2303\u20029<\/td>\n<\/tr>\n<tr>\n<td>Toggle library<\/td>\n<td>\n\u2318\u2002B<br>\u2303\u2002\u2318\u2002S\n<\/td>\n<td>\u2303\u2002B<\/td>\n<\/tr>\n<tr>\n<td>Open settings<\/td>\n<td>\u2318\u2002,<\/td>\n<td>\u2303\u2002,<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h3>\n  \n  \n  \ud83d\udeeb Request keyboard shortcuts\n<\/h3>\n\n<p>You can use these shortcuts when a request tab is open.<\/p>\n\n<div class=\"table-wrapper-paragraph\"><table>\n<thead>\n<tr>\n<th>Action<\/th>\n<th>macOS<\/th>\n<th>Windows\u00a0&amp;\u00a0Linux<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Focus URL<\/td>\n<td>\u2318\u2002L<\/td>\n<td>\u2303\u2002L<\/td>\n<\/tr>\n<tr>\n<td>Send request<\/td>\n<td>\u2318\u2002\u21a9<\/td>\n<td>\u2303\u2002\u21a9<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h3>\n  \n  \n  \ud83d\udd0d Search keyboard shortcuts\n<\/h3>\n\n<p>These shortcuts are available in the body editor and the preview, request, and response panels when the textarea or search field has focus.<\/p>\n\n<div class=\"table-wrapper-paragraph\"><table>\n<thead>\n<tr>\n<th>Action<\/th>\n<th>macOS<\/th>\n<th>Windows\u00a0&amp;\u00a0Linux<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Open search<\/td>\n<td>\u2318\u2002F<\/td>\n<td>\u2303\u2002F<\/td>\n<\/tr>\n<tr>\n<td>Next occurrence<\/td>\n<td>\u2318\u2002G<\/td>\n<td>\u2303\u2002G<\/td>\n<\/tr>\n<tr>\n<td>Previous occurrence<\/td>\n<td>\u21e7\u2002\u2318\u2002G<\/td>\n<td>\u21e7\u2002\u2303\u2002G<\/td>\n<\/tr>\n<tr>\n<td>Next\u00a0occurrence <br>(inside search box)<\/td>\n<td>\u21a9<\/td>\n<td>\u21a9<\/td>\n<\/tr>\n<tr>\n<td>Previous\u00a0occurrence <br>(inside search box)<\/td>\n<td>\u21e7\u2002\u21a9<\/td>\n<td>\u21e7\u2002\u21a9<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h2>\n  \n  \n  \ud83d\udc08 Peek at request content with tooltips\n<\/h2>\n\n<p>The request creation form is organized into tabs, and we hint to you about what\u2019s inside them and whether they contain any errors through icons next to the title. From now on, you can also peek at the content of each tab without having to activate it with the newly added tooltips.<\/p>\n\n<p><a href=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Ftooltips-JR3AUE4D.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Ftooltips-JR3AUE4D.png%26w%3D3840%26q%3D95\" alt=\"Request form tabs tooltips\"><\/a><\/p>\n\n<p>And as for the icons, can you spot a difference? You got it! The bolt icon is blue as opposed the yellow if a request inherits auth from a collection that doesn\u2019t specify any.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udca1 Know which body types already have data\n<\/h2>\n\n<p>When building a request, you can specify multiple body types and quickly toggle between them. This feature comes in handy when a specific API endpoint accepts both JSON and form data, for example.<\/p>\n\n<p><a href=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fhints-PQCHRYTN.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fhints-PQCHRYTN.png%26w%3D3840%26q%3D95\" alt=\"Multi-body hints\"><\/a><\/p>\n\n<p>To make this feature more transparent, we now show you an indicator in the switcher for each body type that has some data specified.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udc41\ufe0f Quickly toggle response preview\n<\/h2>\n\n<p>When the server sends back a response type for which there\u2019s a human-friendly preview mode, such as HTML, we render the response to make it easier to digest.<\/p>\n\n<p><a href=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fpreview-B3L4MLZ2.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fpreview-B3L4MLZ2.png%26w%3D3840%26q%3D95\" alt=\"Preview toggle\"><\/a><\/p>\n\n<p>We have simplified the response body type selector, and now the preview mode is exposed as a toggle. It\u2019s currently available for HTML responses, and more preview types will come soon.<\/p>\n\n<h2>\n  \n  \n  \ud83c\udf29 Improved web app limitation hints\n<\/h2>\n\n<p>HTTPie for Web has several technical limitations that don\u2019t exist in the Desktop version. Even though our main priority here is to gradually eliminate the differences, we now gracefully handle more scenarios with improved error screens.<\/p>\n\n<p><a href=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Flargebody-75LIFFWZ.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Flargebody-75LIFFWZ.png%26w%3D3840%26q%3D95\" alt=\"Large body\"><\/a><\/p>\n\n<p>When you encounter a web limitation, we\u2019ll offer you to switch to the desktop app.<\/p>\n\n<h2>\n  \n  \n  \u2728 Other improvements and bug fixes\n<\/h2>\n\n<ul>\n<li>No more connections refused for localhost requests: HTTPie now prefers IPv6 for localhost connections if available. This change makes HTTPie for Desktop work consistently with HTTPie for Terminal and Google Chrome, for example.<\/li>\n<li>To help new users to create their first environment, we now show a label in the button until they create one.<\/li>\n<li>The environment color selector is now more compact.<\/li>\n<li>The GraphQL editors were adjusted to better fit small screens.<\/li>\n<li>There are new icons in the messages menus making them consistent with the rest.<\/li>\n<li>Variable values now handle whitespace values more robustly.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83d\udce2 Help wanted: teams and collaboration\n<\/h2>\n\n<p>Like with delicious pies, we believe the magic of HTTPie can be best experienced when shared with others. \ud83d\ude0b<\/p>\n\n<p>We\u2019ve been heads down working on a multiplayer mode for a while now. Teams and collaboration are some of the most exciting and requested features on our roadmap. We can\u2019t wait to see what shape they\u2019ll take and all the opportunities they unlock for our users.<\/p>\n\n<p><a href=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fteams-V3NNZ5RR.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fhttpie.io%2F_next%2Fimage%3Furl%3D%252FBlog%252Fchangelog-0019%252Fteams-V3NNZ5RR.png%26w%3D3840%26q%3D95\" alt=\"Teams and collaboration\"><\/a><\/p>\n\n<p>If you\u2019re as excited as we are, or the opposite, we\u2019d love to talk to you! We want to ensure we\u2019re building the right thing, and your help would be greatly appreciated &amp; <a href=\"https:\/\/dev.to\/blog\/changelog-0017#thanks-to-our-community-and-private-beta-users\">swag-rewarded<\/a>!<\/p>\n\n<p>As a start, you can help us by completing a <a href=\"https:\/\/us16.list-manage.com\/survey?u=99f5ce2d00a123af1593451c6&amp;id=77dc9762bd&amp;attribution=false\" rel=\"noopener noreferrer\">quick survey<\/a>. Then, if you\u2019re up for it, we\u2019d be delighted to interview you over Zoom.<\/p>\n\n<p><a href=\"\/\/mailto:feedback@httpie.io\">Get in touch<\/a>, and help shape the best collaborative API experience! \ud83d\udcaa<\/p>\n\n<h2>\n  \n  \n  \ud83e\udd17 Happy API testing, and see you again soon!\n<\/h2>\n\n<ul>\n<li>\u2709\ufe0f Thoughts? Questions? Shoot us an email at <a href=\"\/\/mailto:feedback@httpie.io\">feedback@httpie.io<\/a>.<\/li>\n<li>\ud83d\udccb You can also help us improve by completing a <a href=\"https:\/\/httpie.io\/survey\" rel=\"noopener noreferrer\">quick survey<\/a>.<\/li>\n<li>\ud83d\udc49 Follow <a href=\"https:\/\/twitter.com\/httpie\" rel=\"noopener noreferrer\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\" rel=\"noopener noreferrer\">Discord community<\/a> to stay up to date.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\" rel=\"noopener noreferrer\">engineering and design roles<\/a>.<\/li>\n<\/ul>\n\n"},{"title":"Changelog #0018 \u2014 \ud83d\ude80 GraphQL, custom HTTP method, interactive URLs, and more","pubDate":"Tue, 30 Aug 2022 16:47:45 +0000","link":"https:\/\/dev.to\/pie\/changelog-0018-graphql-custom-http-method-interactive-urls-and-more-46ag","guid":"https:\/\/dev.to\/pie\/changelog-0018-graphql-custom-http-method-interactive-urls-and-more-46ag","description":"<p>Hello, API World! After <a href=\"https:\/\/httpie.io\/blog\/changelog-0017\">launching in public beta<\/a> earlier this month, we\u2019re back with more news on HTTPie for <a href=\"https:\/\/httpie.io\/app\">Web<\/a> &amp; <a href=\"https:\/\/httpie.io\/product\">Desktop<\/a>. Check out the API testing  improvements we\u2019ve shipped in <a href=\"https:\/\/github.com\/httpie\/desktop\/releases\/tag\/v2022.12.0\">v2022.12.0<\/a><br>\nand <a href=\"https:\/\/github.com\/httpie\/desktop\/releases\/tag\/v2022.13.0\">v2022.13.0<\/a> since then \ud83d\udc47<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd16 Summary\n<\/h2>\n\n<ul>\n<li>\n<strong>\ud83d\ude80 GraphQL support \u2014<\/strong> Test GraphQL APIs just like REST and HTTP APIs.<\/li>\n<li>\n<strong>\u270f\ufe0f Custom HTTP methods \u2014<\/strong> Talk to APIs using custom HTTP methods.<\/li>\n<li>\n<strong>\ud83d\udd17 Interactive URLs<\/strong> \u2014 Interact with URLs returned by APIs and elsewhere.<\/li>\n<li>\n<strong>\ud83d\udcef Auto-switch to POST \u2014<\/strong> Send requests with fewer clicks.<\/li>\n<li>\n<strong>\ud83d\uddbc New web app icon \u2014<\/strong> Crisp new icon for easier navigation.<\/li>\n<li>\n<strong>\ud83d\udc86\u200d\u2640\ufe0f Better header validation \u2014<\/strong> Spot syntax errors quicker.<\/li>\n<li>\n<strong>\ud83e\udeb2 Bug fixes \u2014<\/strong> Hopefully, we caught them before you noticed.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83d\ude80 Support for GraphQL APIs\n<\/h2>\n\n<p><a href=\"https:\/\/graphql.org\/\">GraphQL<\/a> is a popular API query language created at Facebook. It\u2019s designed to help develop strongly typed APIs that give clients the power to ask for precisely the data they need while minimizing the number of requests.<\/p>\n\n<p>Under the hood, GraphQL requests are regular POST requests. That means it has always been possible to talk to GraphQL endpoints with HTTPie, albeit inelegantly: You would simply make a JSON POST request with a body including the GraphQL query and variables.<\/p>\n\n<p>But now we're introducing built-in support for crafting GraphQL requests to improve your experience when talking to GraphQL APIs.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--Is92pEAG--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Fgraphql-ZDR55TPD.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--Is92pEAG--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Fgraphql-ZDR55TPD.png%26w%3D3840%26q%3D95\" alt=\"GraphQL API support in HTTPie\" width=\"880\" height=\"624\"><\/a><\/p>\n\n<p>When defining a request, choose \u201cGraphQL\u201d as the body type. Then specify your GraphQL query and JSON variables separately. You get syntax highlighting and other features specific to each language. And, of course, you can reference your <a href=\"https:\/\/httpie.io\/blog\/changelog-0017#variables\">space variables<\/a> in both editors.<\/p>\n\n<p>GraphQL support is marked as beta as we continue to work on schema support and other improvements.<\/p>\n\n<h2>\n  \n  \n  \u270f\ufe0f Use custom HTTP methods in your requests\n<\/h2>\n\n<p>To keep the user interface light, we only include the most common HTTP methods in the selector (GET, POST, HEAD, PUT, PATCH, DELETE, OPTIONS).<\/p>\n\n<p>This is typically all you need when talking to conventional REST, GraphQL, and HTTP APIs. However, there are other\u2014less popular\u2014HTTP methods like COPY, TRACE, etc. And APIs may also introduce custom ones.<\/p>\n\n<p>When testing APIs that use unconventional HTTP methods, you can now supplement the default list with a method of your choosing.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--PHvJsKtC--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Fcustom_method-4N2HBC7K.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--PHvJsKtC--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Fcustom_method-4N2HBC7K.png%26w%3D3840%26q%3D95\" alt=\"Custom_HTTP method\" width=\"880\" height=\"494\"><\/a><\/p>\n\n<p>To apply a custom method to your request, select the last option in the method drop-down and type away. One more detail: the method list is now color-coded as the rest of the app.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd17 Navigate APIs faster with interactive URLs\n<\/h2>\n\n<p>URLs are one of the main building blocks of the internet, and links and HyperText have been with us since Web 1.0. Now in the era of APIs, they get a whole new purpose of allowing machines to navigate different resources exposed through an API.<\/p>\n\n<p>So it\u2019s only natural for HTTPie to make them interactive so that you, as a human, can conveniently flow through APIs as well. And now they are!<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--Pvoe1x1N--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Finteractive_urls-RJUYJ33B.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--Pvoe1x1N--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Finteractive_urls-RJUYJ33B.png%26w%3D3840%26q%3D95\" alt=\"Interactive URLs\" width=\"880\" height=\"624\"><\/a><\/p>\n\n<p>Clickable links have a subtle underline. When you spot one, control-click (\u2318-click on macOS) or right-click it to get a menu with the URL options.<\/p>\n\n<p>All links offer you to copy the URL and open it in the browser. Links in the response additional offer several shortcuts for creating a new request using the given URL:<\/p>\n\n<ul>\n<li>\n<strong>\u201cCreate new draft\u201d<\/strong> creates a fresh new draft with that URL.<\/li>\n<li>\n<strong>\u201cDuplicate as draft\u201d<\/strong> creates a new draft that is a complete copy of the current request (i.e., with all your headers, request body, auth, etc.) while using the new URL.<\/li>\n<li>\n<strong>\u201cDuplicate in collection\u201d<\/strong> makes a copy of the current request with the new URL next to the original; only available if the current request belongs to a collection.<\/li>\n<\/ul>\n\n<p>Besides complete URLs, we also make relative ones like <code>\/api\/users<\/code> interactive. To generate the complete URL, we prefix the relative one with the request\u2019s base URL.<\/p>\n\n<p>The prominent place for interactive links is the response body. But you don\u2019t need to talk to a full-blown Hypermedia REST API to take advantage of this feature. HTTPie makes URLs interactive in all contexts, including the request body editor, headers, and other places where URLs can be expected to occur.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udcef Send requests quicker with POST-auto-switch\n<\/h2>\n\n<p>When you add a body to a request, it\u2019s unlikely that the default GET method is what you want. There\u2019s nothing wrong with GET requests that include a body, but they\u2019re rarely useful. The most common method for sending data is POST.<\/p>\n\n<p>So now we auto-switch your request to POST as soon as you add a body if it still has the default GET method. You can always undo this action and have HTTPie send the body via GET.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--ExnrlceZ--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Fpost-LVZBXNJ6.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--ExnrlceZ--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Fpost-LVZBXNJ6.png%26w%3D3840%26q%3D95\" alt=\"Add body to your request and we\u2019ll auto-switch to POST\" width=\"880\" height=\"624\"><\/a><\/p>\n\n<p>Accidentally sending data without changing the method is a common human error, and this feature is designed to save you frustration and confusing results. It also mimics <a href=\"https:\/\/httpie.io\/docs\/cli\/optional-get-and-post\">the behavior of HTTPie for Terminal<\/a>.<\/p>\n\n<h2>\n  \n  \n  \ud83d\uddbc HTTPie for Web has a new icon\n<\/h2>\n\n<p>HTTPie for Web now uses a green app icon as the favicon. This makes it easier to distinguish between browser tabs with the HTTPie website and the web app.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--nIBj6z2z--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Ficon-A6MYIHXV.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--nIBj6z2z--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0018%252Ficon-A6MYIHXV.png%26w%3D3840%26q%3D95\" alt=\"New icon\" width=\"880\" height=\"494\"><\/a><\/p>\n\n<p>Check out the new icon and an improved sharing appearance on <a href=\"https:\/\/dev.to\/app\">httpie.io\/app<\/a>. Or use the short and sweet <a href=\"https:\/\/req.new\">req.new<\/a>.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udc86\u200d\u2640\ufe0f Specify headers without headaches\n<\/h2>\n\n<p>We\u2019ve improved the validation of HTTP header names and values. Now you can see whether they include any disallowed characters straight in the form rather than after sending the request.<\/p>\n\n<h2>\n  \n  \n  \ud83e\udeb2 Stability improvements and bug fixes\n<\/h2>\n\n<ul>\n<li>In the macOS Desktop app, the title bar draggability got compromised with many tabs open. Now it\u2019s always draggable.<\/li>\n<li>Talking about tabs\u2026 There was an edge case leading to visual tab flickering. Hopefully, you didn\u2019t run into it.<\/li>\n<li>Did you know you can easily switch from a URL-encoded form to a multipart one and the other way around? When you switch back to URL-encoded with a binary file attached, there\u2019s a warning dialog. You couldn\u2019t close that warning before, but now you can, ufff!<\/li>\n<li>When you\u2019re logged in and offline, sync pauses. When you go back online, it resumes. However, the app would incorrectly continue to indicate a network error. Now it gets cleared as it should.<\/li>\n<li>We\u2019ve polished a few rough edges in the URL bar syntax and added more granular highlighting.<\/li>\n<li>Fixed a possible double-submit issue in the \u201cCreate environment\u201d dialog.<\/li>\n<li>Removed an unintended 10MB request body size limit.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83e\udd17 Happy API testing, and see you again soon!\n<\/h2>\n\n<ul>\n<li>\ud83d\udccb You can help us improve by completing a <a href=\"https:\/\/httpie.io\/survey\">quick survey<\/a>.<\/li>\n<li>\ud83d\udc49 Follow <a href=\"https:\/\/twitter.com\/httpie\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\">Discord community<\/a> to stay up to date.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\">engineering and design roles<\/a>.<\/li>\n<\/ul>\n\n"},{"title":"Changelog #0017 \u2014 \u2601\ufe0f Sync, variables, incognito, more features, and public beta!","pubDate":"Fri, 05 Aug 2022 22:06:22 +0000","link":"https:\/\/dev.to\/pie\/changelog-0017-sync-variables-incognito-more-features-and-public-beta-4hko","guid":"https:\/\/dev.to\/pie\/changelog-0017-sync-variables-incognito-more-features-and-public-beta-4hko","description":"<p>HTTPie is on a mission to make APIs simple and intuitive for all those building the tools of our time. And today, we\u2019re thrilled to announce the biggest release yet and a large step in that direction. Check out what\u2019s new \ud83d\udc47<\/p>\n\n<h2>\n  \n  \n  Summary\n<\/h2>\n\n<ul>\n<li>\n<strong>\ud83d\udd13 Public beta \u2014<\/strong> HTTPie Web &amp; Desktop is now publicly available \ud83c\udf89<\/li>\n<li>\n<strong>\ud83d\udd75\ufe0f\u200d\u2640\ufe0f Incognito mode \u2014<\/strong> You can now use the app without an account.<\/li>\n<li>\n<strong>\u2601\ufe0f Real-time sync \u2014<\/strong> Your data is now real-time synchronized across devices.<\/li>\n<li>\n<strong>\u2b06\ufe0f Auto-updates \u2014<\/strong> A reworked, more transparent system for updates.<\/li>\n<li>\n<strong>\ud83d\udcb2 Variables \u2014<\/strong> Work smarter and don\u2019t repeat yourself.<\/li>\n<li>\n<strong>\ud83c\udfde\ufe0f Environments \u2014<\/strong> A quick way to swap between contexts.<\/li>\n<li>\n<strong>\ud83c\udf0a cURL import \u2014<\/strong> A humble but efficient start of our import system.<\/li>\n<li>\n<strong>\ud83d\udd12 SSL verification \u2014<\/strong> You can now turn off certificate validation.<\/li>\n<li>\n<strong>\ud83d\udcf1 Mobile \u2014<\/strong> Now it\u2019s easier than ever to work on touch devices.<\/li>\n<li>\n<strong>\u2728 Other improvements \u2014<\/strong> Various changes to improve your experience.<\/li>\n<li>\n<strong>\ud83e\udeb2 Bug fixes \u2014<\/strong> Hopefully, we caught them before you noticed.<\/li>\n<li>\n<strong>\ud83d\udd2e What\u2019s next? \u2014<\/strong> A glimpse into the future.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83d\udd13 Public beta\n<\/h2>\n\n<p>After months of development, testing, and collecting feedback in private beta, we\u2019re opening HTTPie for Web &amp; Desktop to everyone today \ud83d\ude80<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqvxd0x2qmj8gtijoljt9.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqvxd0x2qmj8gtijoljt9.png\" alt=\"Public beta \u2014 you can use HTTPie for Web &amp; Desktop today\" width=\"800\" height=\"498\"><\/a><\/p>\n\n<p>You can\u00a0<a href=\"https:\/\/httpie.io\/app\" rel=\"noopener noreferrer\">go to the Web app<\/a> or <a href=\"https:\/\/httpie.io\/download\" rel=\"noopener noreferrer\">download the Desktop app<\/a> and start using it right away.<\/p>\n\n<h3>\n  \n  \n  \ud83d\udc8c Thanks to our community and private beta users\n<\/h3>\n\n<p>Since the launch of the Terminal app ten years ago, an enthusiastic community has been forming around HTTPie. When we announced HTTPie for Web &amp; Desktop, the interest exceeded our expectations, and our waitlist started to fill up. We opened up a private beta program and invited thousands of beta users to whom we couldn\u2019t be more grateful.<\/p>\n\n<p>We were submerged in hundreds of thoughtfully answered surveys, messages in our growing <a href=\"https:\/\/httpie.io\/discord\" rel=\"noopener noreferrer\">Discord community<\/a>, emails, GitHub issues, and Twitter DMs, and we appreciated every single one!<\/p>\n\n<p>All that feedback has translated into improvements and features, like the ones included in this release and many more on our roadmap.<\/p>\n\n<p>In return, HTTPie swag has found its way all around the world \ud83d\udcab<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4g5wtdqpclb8abse21vp.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4g5wtdqpclb8abse21vp.png\" alt=\"swag\" width=\"800\" height=\"661\"><\/a><\/p>\n\n<h2>\n  \n  \n  \ud83d\udd75\ufe0f\u200d\u2640\ufe0f Incognito mode\n<\/h2>\n\n<p>Now that the private beta fence no longer exists, the account-required wall can be torn down too. And that\u2019s exactly what we\u2019ve done.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yidazagwpg8736hwl9d.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yidazagwpg8736hwl9d.png\" alt=\"Incognito mode \u2014 you can use HTTPie for Web &amp; Desktop without an account\" width=\"800\" height=\"566\"><\/a><\/p>\n\n<p>You can now use the app without an account. When you are not logged in\u2014when you\u2019re <em>incognito<\/em>\u2014you still have access to all features apart from sync and creating\u00a0new spaces. When you decide to log in or sign up, we sync your incognito space into your account, and you can continue to work uninterrupted. Easy!<\/p>\n\n<h2>\n  \n  \n  \u2601\ufe0f Real-time sync\n<\/h2>\n\n<p>Sync is finally here. As long as you are not incognito, your data is backed up to our secure cloud and synchronized across your devices. When you change something, it\u2019s instantly updated on your other clients.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk36cr7i9tf4bj2rlhk61.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk36cr7i9tf4bj2rlhk61.png\" alt=\"Real-time sync \u2014 HTTPie for Web&amp;Desktop now has real-time sync\" width=\"800\" height=\"566\"><\/a><\/p>\n\n<p>Start working in the Web app, switch to the Desktop app, and check some request details on your phone later. And you don\u2019t have to worry about hitting save because we continuously auto-save your work.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0j8m04siq7p9nhtvcrz.gif\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0j8m04siq7p9nhtvcrz.gif\" alt=\"Real-time sync \u2014 HTTPie for Web&amp;Desktop now has real-time sync\" width=\"745\" height=\"470\"><\/a><\/p>\n\n<p>You might be wondering the most important question of all, can I still test my local API on a plane trip if I need to? Sure thing! HTTPie works offline-first. When your computer is offline (or our cloud is temporarily down), you can continue to work as usual. We\u2019ll simply resume syncing once the connection has been restored. To see the current sync status, check out your account menu:<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrgze2wbpjsp9zd39wmd.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrgze2wbpjsp9zd39wmd.png\" alt=\"Real-time sync status is shown in the account menu\" width=\"800\" height=\"566\"><\/a><\/p>\n\n<h3>\n  \n  \n  Data security\n<\/h3>\n\n<p>All synced data is encrypted at transit between the HTTPie cloud and clients (SSL) and at rest in a backed-up AWS RDS storage with redundancy (AES). All sensitive data\u2014your requests, auth credentials, variables, etc.\u2014are additionally encrypted at the server-side before storage and decrypted on client access (AES).<\/p>\n\n<h2>\n  \n  \n  \u2b06\ufe0f Auto-updates\n<\/h2>\n\n<p>You can now check for updates and see the app update status straight in the account menu. This makes it easy for you to have the greatest and latest version of HTTPie always installed.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8s2oosr64yk1rmt0dnoq.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8s2oosr64yk1rmt0dnoq.png\" alt=\"Auto-update functionality integrated into the profile menu\" width=\"800\" height=\"566\"><\/a><\/p>\n\n<p>We continuously improve the app and release frequent updates with new features and bug fixes. The desktop app downloads new versions automatically, even though you don\u2019t have to install them right away.<\/p>\n\n<p>The auto-update system is integrated with sync, and the update status in the menu will tell you when an update is required to maintain compatibility with the HTTPie cloud.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udcb2Variables\n<\/h2>\n\n<p>Variables were among the most requested features by our private beta users. And we agree. When it comes to building requests in a clean, don\u2019t-repeat-yourself way, variables are a game-changer. So here they are!<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcld3hjbblt9i8k5320jq.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcld3hjbblt9i8k5320jq.png\" alt=\"Variables feature in HTTPie\" width=\"800\" height=\"665\"><\/a><\/p>\n\n<p>Define variables inside the current\u00a0space\u2019s detail\u00a0tab. Then you can reference them from any request or collection within the space via <code>{{NAME}}<\/code>.<\/p>\n\n<p>It\u2019s often helpful to review the full HTTP request with variables already substituted before sending it. To do that, keep the Preview panel open.<\/p>\n\n<p>If you reference a variable that doesn\u2019t exist, we mark the reference red and prevent the request from being sent until the variable is declared. This way, you never have to deal with confusing results.<\/p>\n\n<h3>\n  \n  \n  \ud83e\udd2b Secret variables\n<\/h3>\n\n<p>Mark a variable as secret, and we\u2019ll mask its values in the variable list so that you don\u2019t accidentally share them on a Zoom call, for example.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu63zr9umbvdum9v82c11.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu63zr9umbvdum9v82c11.png\" alt=\"Secret variables in HTTPie\" width=\"800\" height=\"408\"><\/a><\/p>\n\n<p>See local-only environments below for other advanced ways to deal with sensitive variables.<\/p>\n\n<h2>\n  \n  \n  \ud83c\udfde\ufe0f Environments\n<\/h2>\n\n<p>Environments allow you to quickly swap between different contexts. A common practice is to have an API running in different environments\u2014on your local machine, in staging, in production, etc.<\/p>\n\n<p>Imagine you need to talk to the same API in production but also in a staging environment. The requests are the same, but the root URL and auth, for example, differ. You can turn those values into variables, so it\u2019s easier to change them. And with environments, you can instantly toggle between different values for those variables:<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fun8wezcl1uwhrntgoeo7.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fun8wezcl1uwhrntgoeo7.png\" alt=\"Environments feature in HTTPie\" width=\"800\" height=\"586\"><\/a><\/p>\n\n<p>You can create as many environments as you like and switch between them using the menu at the top right of the app.<\/p>\n\n<p>An environment is a named set of variable values. In the table, rows represent variables, columns represent environments, and inner cells are specific values for a variable in a specific environment. So once you declare a variable, it exists in every environment in the space (possibly with differing or empty values).<\/p>\n\n<p>Every space starts with an empty environment called \u201cDefaults.\u201d It works as a regular environment, and for simple use-cases, you can just use it exclusively.<\/p>\n\n<p>When you create additional environments, they use values from Defaults for variables where you don\u2019t explicitly specify a custom value. If you don\u2019t need a default value for a variable, you can simply leave its value in Defaults empty.<\/p>\n\n<h3>\n  \n  \n  \ud83d\udccdLocal-only environments\n<\/h3>\n\n<p>If you want to prevent some data from syncing to the HTTPie cloud and across your devices, you can store it as values in a local-only environment.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyhq6yll0sblv7nxxbj8.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyhq6yll0sblv7nxxbj8.png\" alt=\"Local-only environments in HTTPie\" width=\"800\" height=\"408\"><\/a><\/p>\n\n<p>When creating an environment, select the option to create a local-only one, and its values will never leave your device.<\/p>\n\n<h3>\n  \n  \n  \ud83d\udeab No environment\n<\/h3>\n\n<p>In some situations, you might want to temporarily prevent requests from accessing your variables altogether. By selecting the \u201cNo environment\u201d option, you can achieve just that:<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwya0fui3rimjchtqmhnk.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwya0fui3rimjchtqmhnk.png\" alt=\"You can temporarily turn off variables in HTTPie\" width=\"800\" height=\"408\"><\/a><\/p>\n\n<p>Currently, this option is most useful when it comes to debugging your requests. But because variables can contain sensitive data, the importance of this feature will grow as we continue to add various import and sharing mechanisms.<\/p>\n\n<h2>\n  \n  \n  \ud83c\udf0a cURL import\n<\/h2>\n\n<p>We are working on a robust import mechanism, which will eventually support many advanced import sources. But already today, you can import cURL commands as requests into your HTTPie library:<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fodynodz4dhisk1vs6rx0.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fodynodz4dhisk1vs6rx0.png\" alt=\"HTTPie now supports cURL command import\" width=\"800\" height=\"717\"><\/a><\/p>\n\n<p>This allows you to quickly import cURL calls from scripts or import requests from Chrome DevTools. Find the \u201cImport\u2026\u201d option under the <code>+<\/code> menu in your space library.<\/p>\n\n<h3>\n  \n  \n  \ud83e\ude84 cURL import shortcut\n<\/h3>\n\n<p>There\u2019s also a quick hidden shortcut for importing cURL. Can you guess where?<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsf209vvl3zb63kj2k7o.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsf209vvl3zb63kj2k7o.png\" alt=\"Import cURL command into HTTPie simply by pasting it into the URL bar\" width=\"800\" height=\"515\"><\/a><\/p>\n\n<p>Just paste a cURL command into the URL field and see what happens \ud83d\udc40<\/p>\n\n<h2>\n  \n  \n  \ud83d\udd12 SSL verification\n<\/h2>\n\n<p>This is a smaller feature, but many of our private beta users have been waiting for it, and we\u2019re happy to finally ship it. By default, we verify the server SSL certificate and reject self-signed, expired, and non-matching certificates. Now you can disable this validation in the settings:<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4qfw843cdnqv2ur51ai.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4qfw843cdnqv2ur51ai.png\" alt=\"Turn off SSL verification in settings\" width=\"800\" height=\"754\"><\/a><\/p>\n\n<p>When you run into an SSL error and wish to temporarily allow invalid certificates, you can do that straight from the response view:<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr625qrg4xqtowusa79zt.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr625qrg4xqtowusa79zt.png\" alt=\"Turn off SSL verification in settings\" width=\"800\" height=\"645\"><\/a><\/p>\n\n<p>Turn it on again from the settings when you\u2019re finished.<\/p>\n\n<h2>\n  \n  \n  \ud83d\udcf1 Mobile\n<\/h2>\n\n<p>We\u2019ve also focused on streamlining our mobile experience. The app is 100% responsive (both Web and Desktop), and you can use all features on touch devices as well.<\/p>\n\n<p>Mobile-friendliness is one of those features that you don\u2019t need most of the time. But when you need it, you <em>really<\/em> need it. And with HTTPie, you can get work done comfortably from anywhere, anytime.<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foij55clma5bcut9y0lcx.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foij55clma5bcut9y0lcx.png\" alt=\"HTTPie for Mobile\" width=\"800\" height=\"686\"><\/a><\/p>\n\n<ul>\n<li>The mobile experience of the URL bar component is much improved.<\/li>\n<li>You can now use the Preview &amp; Export feature on small screens.<\/li>\n<li>Keyboards are now contextual.<\/li>\n<li>Spacing is more compact and comfortable on small devices.<\/li>\n<li>You can now access tooltips on touch devices.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \u2728 Other improvements\n<\/h2>\n\n<ul>\n<li>The body type and auth type selectors now have icons. As they say, an icon is worth a thousand labels.<\/li>\n<li>Error badges are now more minimal, less clunky, and more on brand.<\/li>\n<li>It\u2019s been a while since we expanded the icon set for spaces and collections. Now you have eight crisp new icons to choose from. Check them out!<\/li>\n<li>The light mode previously received less love than the dark one. So we improved it. What do you think? Can you spot all the differences?<\/li>\n<li>Placeholders now look more like placeholders.<\/li>\n<li>Now you see a loading indicator when the app is launching.<\/li>\n<li>The monospaced font now supports non-Latin characters.<\/li>\n<li>Text selection is now disabled for all UI elements while keeping content selectable.<\/li>\n<li>In the desktop app, you can maximize and un-maximize the window by double-clicking the title bar.<\/li>\n<li>You can also drag the window using the left toolbar, where your profile image resides.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83e\udeb2 Bug fixes\n<\/h2>\n\n<ul>\n<li>When you renamed a draft, it would change its auth to inherited, as if it was added to a collection. Fixed.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  \ud83d\udd2e What\u2019s next?\n<\/h2>\n\n<p>This release marks an important milestone on our journey to provide the best experience to anyone working with APIs.<\/p>\n\n<p>With HTTPie, you can work on APIs with or without an account. While you are online or offline. In a dedicated cross-platform desktop app, in the browser, in the terminal, and even on your phone. Your data is auto-saved and synchronized across devices. You can organize your work in spaces and collections, parametrize requests with variables and environments, work on many things simultaneously with our tabbed system, and preview requests before sending them. These and many other features are available today, wrapped in what we aim to be a delightful, human-centered interface.<\/p>\n\n<p>There\u2019s still a lot of work to fully unlock the potential of APIs, and our roadmap is packed with ambitious milestones. Here\u2019s a sample of the themes we\u2019re focusing on next:<\/p>\n\n<ul>\n<li>\ud83d\udc65 Team collaboration<\/li>\n<li>\u2699\ufe0f Additional protocols and formats<\/li>\n<li>\u26a1 Automation and testing<\/li>\n<li>\ud83d\udd17 Full interoperability with HTTPie for Terminal<\/li>\n<li>\ud83c\udfb9 Become a keyboard-first app<\/li>\n<li>\ud83c\udf89 Refreshed website<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  Happy API testing, and see you again soon!\n<\/h2>\n\n<ul>\n<li>\ud83d\udccb You can help us improve by completing a <a href=\"https:\/\/httpie.io\/survey\" rel=\"noopener noreferrer\">quick survey<\/a>.<\/li>\n<li>\ud83d\udcb2 If you use environments, we have a <a href=\"https:\/\/us16.list-manage.com\/survey?u=99f5ce2d00a123af1593451c6&amp;id=56bb113926&amp;attribution=false\" rel=\"noopener noreferrer\">variables-specific survey<\/a> as well.<\/li>\n<li>\ud83d\udc49 Follow <a href=\"https:\/\/twitter.com\/httpie\" rel=\"noopener noreferrer\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\" rel=\"noopener noreferrer\">Discord community<\/a> to stay up to date.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\" rel=\"noopener noreferrer\">engineering and design roles<\/a>.<\/li>\n<\/ul>\n\n\n\n\n<p>Originally published on <a href=\"https:\/\/httpie.io\/blog\/changelog-0017\" rel=\"noopener noreferrer\">HTTPie blog<\/a>.<\/p>\n\n","category":["httpie","devtool","api"]},{"title":"Changelog #0016 \u2014 \u2139\ufe0f OPTIONS method, \ud83d\udd11 param auth, Terminal 3.2, and more","pubDate":"Mon, 23 May 2022 13:58:58 +0000","link":"https:\/\/dev.to\/pie\/changelog-0016-options-method-param-auth-terminal-32-and-more-4d15","guid":"https:\/\/dev.to\/pie\/changelog-0016-options-method-param-auth-terminal-32-and-more-4d15","description":"<h2>\n  \n  \n  HTTPie for Web &amp; Desktop\n<\/h2>\n\n<h3>\n  \n  \n  \u2139\ufe0f OPTIONS method\n<\/h3>\n\n<p>One more option in the method select \u2014 \ud83e\udd41 \u2014 <code>OPTIONS<\/code>!<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--5xPOod-4--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0016%252Foptions-http-method-TSAIZRWU.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--5xPOod-4--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0016%252Foptions-http-method-TSAIZRWU.png%26w%3D3840%26q%3D95\" alt=\"Options HTTP method\" width=\"880\" height=\"495\"><\/a><\/p>\n\n<p>You can use <code>OPTIONS<\/code> to <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Methods\/OPTIONS\">request information<\/a> about the communication options available on a given URL or server.<\/p>\n\n<h3>\n  \n  \n  \ud83d\udd11 API key auth through parameters\n<\/h3>\n\n<p>We <a href=\"https:\/\/httpie.io\/blog\/changelog-0014\">recently<\/a> introduced a way to authenticate requests using a custom API key header. Now we\u2019re expanding this auth type with the option to send the API key as a URL parameter:<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--HhmsVxvA--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0016%252Fapi-key-param-5RFHEUAM.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--HhmsVxvA--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0016%252Fapi-key-param-5RFHEUAM.png%26w%3D3840%26q%3D95\" alt=\"API key via a URL_parameter\" width=\"880\" height=\"571\"><\/a><\/p>\n\n<p>This allows you to specify your auth at the collection level and have HTTPie add it to the URL automatically.<\/p>\n\n<h3>\n  \n  \n  \u270d\ud83c\udffb Font improvements\n<\/h3>\n\n<p>As with everything else, we <a href=\"https:\/\/httpie.io\/blog\/changelog-0014\">continue to improve<\/a> the monospace variant of our font, and this time we focused on making the <code>0<\/code> and <code>O<\/code> characters more distinct:<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--xYWVocex--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0016%252Fmonospace-zero2-52BHC7A4.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--xYWVocex--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0016%252Fmonospace-zero2-52BHC7A4.png%26w%3D3840%26q%3D95\" alt=\"Monospace font used by HTTPie with improved 0 characters\" width=\"880\" height=\"495\"><\/a><\/p>\n\n<h3>\n  \n  \n  \ud83e\udeb2 Bug fixes\n<\/h3>\n\n<ul>\n<li>You probably didn\u2019t encounter this, but if you typed fast while having multiple HTTPie browser tabs, the text would start flashing. Fixed!<\/li>\n<li>Some generated headers (e.g., <code>Content-Type<\/code>) weren\u2019t displayed in some preview formats. Now they are.<\/li>\n<li>Inherited auth was also missing from the preview in some cases.<\/li>\n<li>Draft requests created via the global <code>+<\/code> button could lose their name.<\/li>\n<li>Fixed an app crash in case of invisible characters in the URL.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  HTTPie for Terminal\n<\/h2>\n\n<p>HTTPie for Terminal 3.2 is now available \ud83c\udf89 This version introduces:<\/p>\n\n<ul>\n<li>\ud83d\udc85 Refined UI<\/li>\n<li>\ud83d\udcd6 Man pages<\/li>\n<li>\ud83d\udce6 Single binary executables<\/li>\n<li>\ud83c\udf00 Debian releases<\/li>\n<li>\u2b06\ufe0f Update warnings<\/li>\n<li>\ud83e\udd29 And more<\/li>\n<\/ul>\n\n<p>We have a separate post covering this release, check it out \ud83d\udc47<\/p>\n\n<p><a href=\"https:\/\/httpie.io\/blog\/httpie-3.2.0\">What\u2019s new in HTTPie for Terminal 3.2 \u2192<\/a><\/p>\n\n<h2>\n  \n  \n  Happy testing, and see you next week!\n<\/h2>\n\n<p>But in the meantime\u2026<\/p>\n\n<ul>\n<li>\ud83d\udc81\ud83c\udffb\u200d\u2640\ufe0f If you\u2019re not on the private beta yet, you can <a href=\"https:\/\/httpie.io\/beta\">join the waitlist here<\/a>.<\/li>\n<li>\ud83d\udc49 You can also follow <a href=\"https:\/\/twitter.com\/httpie\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\">Discord community<\/a>.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\">engineering and design roles<\/a>.<\/li>\n<\/ul>\n\n\n\n\n<p>Originally published on <a href=\"https:\/\/httpie.io\/blog\/changelog-0016\">HTTPie blog<\/a>.<\/p>\n\n"},{"title":"What\u2019s new in HTTPie for Terminal 3.2","pubDate":"Tue, 17 May 2022 13:50:47 +0000","link":"https:\/\/dev.to\/pie\/whats-new-in-httpie-for-terminal-32-3k84","guid":"https:\/\/dev.to\/pie\/whats-new-in-httpie-for-terminal-32-3k84","description":"<p>HTTPie has always been about making interaction with APIs as human-friendly as possible. Part of that is ensuring our apps are ubiquitous and up-to-date. This release of HTTPie for Terminal brings many improvements in all these areas.<\/p>\n\n<p>Check out what\u2019s new \ud83d\udc47<\/p>\n\n<h2>\n  \n  \n  Summary\n<\/h2>\n\n<p><strong>\ud83e\udd29 Refined UI \u2014<\/strong> Improved user experience and usability.<\/p>\n\n<p><strong>\ud83d\udcd6 Man pages \u2014<\/strong> HTTPie is finally getting complete manuals available through <code>man httpie<\/code>, <code>man http<\/code>, and <code>man https<\/code>.<\/p>\n\n<p><strong>\ud83d\udce6 Single binary executables \u2014<\/strong> download HTTPie as a single binary file and run it without installation.<\/p>\n\n<p><strong>\ud83c\udf00 Debian releases \u2014<\/strong> most recent releases will now be offered also through our custom Apt repo with new releases instantly available for Debian, Ubuntu, etc.<\/p>\n\n<p><strong>\u2b06\ufe0f Update warnings \u2014<\/strong> get notified about new versions as soon as they become available for your system straight in the terminal.<\/p>\n\n<p><strong>\u2696\ufe0f Improved persistence for headers \u2014<\/strong> multiple headers with the same name are persisted in the sessions.<\/p>\n\n<p><strong>\ud83e\udeb2 Bug fixes \u2014<\/strong> multiple headers with the same name are persisted in the sessions.<\/p>\n\n<p><strong>\u2665\ufe0f Community contributions \u2014<\/strong> lots of amazing people who have contributed to this release.<\/p>\n\n<h2>\n  \n  \n  \ud83e\udd29 Refined UI\n<\/h2>\n\n<p>This release brings various UI and UX improvements. For example, here is HTTPie\u2019s new progress bar:<\/p>\n\n<p><a href=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbwksh82b4njhbcdts9c.gif\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbwksh82b4njhbcdts9c.gif\" alt=\"New Style Progress Bars\" width=\"991\" height=\"600\"><\/a><\/p>\n\n<p>Even though our original progress bar implementation was <a href=\"https:\/\/codecatalog.org\/articles\/httpie-status-reporting\/\" rel=\"noopener noreferrer\">simple and elegant<\/a>, we\u2019ve decided to adopt the powerful <a href=\"https:\/\/github.com\/Textualize\/rich\" rel=\"noopener noreferrer\">Rich<\/a> library for various parts of the UI.<\/p>\n\n<p>By the way, the example above uses the recently-added <code>--style=pie-dark<\/code> style. We highly recommend making it your default style for the best experience and consistency with <a href=\"https:\/\/httpie.io\/product\" rel=\"noopener noreferrer\">HTTPie for Web &amp; Desktop<\/a>.<\/p>\n\n<p>\ud83d\udcd6 <a href=\"https:\/\/httpie.io\/docs\/cli\/colors-and-formatting\" rel=\"noopener noreferrer\">Colors &amp; formatting docs \u2192<\/a><\/p>\n\n<h2>\n  \n  \n  \ud83d\udcd6 Man Pages\n<\/h2>\n\n<p>The long-awaited man pages are here now. You can use <code>man http<\/code> or <code>man https<\/code> to have the full man page experience with colors and pager:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ man http\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>We have also introduced a shorthand for this operation, <code>http --manual<\/code>:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ http --manual\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>When the man pages are available (installed by your platform\u2019s packager), it will automatically open you the HTTPie\u2019s manual. When they are not, this command will open the regular manual but inside of a pager.<\/p>\n\n<p>The <code>httpie<\/code> management command now has a man page as well:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ man httpie\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>\ud83d\udcd6 <a href=\"https:\/\/httpie.io\/docs\/cli\/usage\" rel=\"noopener noreferrer\">Help &amp; manual docs \u2192<\/a><\/p>\n\n<h2>\n  \n  \n  \ud83d\udce6 Single binary executables\n<\/h2>\n\n<p>For Linux systems, we now offer single binary executables which you can download and start using without installation. The new asset named <code>http<\/code> now included in every <a href=\"https:\/\/github.com\/httpie\/httpie\/releases\/latest\" rel=\"noopener noreferrer\">release of HTTPie on GitHub<\/a> is all you need:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ https -do http_standalone github.com\/httpie\/httpie\/releases\/download\/3.2.1\/http\n<\/code><\/pre>\n\n<\/div>\n\n\n\n\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ chmod +x .\/http_standalone\n<\/code><\/pre>\n\n<\/div>\n\n\n\n\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ .\/http_standalone --version\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>\ud83d\udcd6 <a href=\"https:\/\/httpie.io\/docs\/cli\/single-binary-executables\" rel=\"noopener noreferrer\">Single binary installation docs \u2192<\/a><\/p>\n\n<h2>\n  \n  \n  \ud83c\udf00 Debian releases\n<\/h2>\n\n<p>We now host our own Debian Apt repository to provide instant updates with new features to users of Debian, Ubuntu, and other derived distros:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span>curl <span class=\"nt\">-SsL<\/span> https:\/\/packages.httpie.io\/deb\/KEY.gpg | apt-key add -\n<span class=\"nv\">$ <\/span>curl <span class=\"nt\">-SsL<\/span> <span class=\"nt\">-o<\/span> \/etc\/apt\/sources.list.d\/httpie.list https:\/\/packages.httpie.io\/deb\/httpie.list\n<span class=\"nv\">$ <\/span>apt update\n<span class=\"nv\">$ <\/span>apt <span class=\"nb\">install <\/span>httpie\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>\ud83d\udcd6 <a href=\"https:\/\/httpie.io\/docs\/cli\/debian-and-ubuntu\" rel=\"noopener noreferrer\">Debian &amp; Ubuntu installation docs \u2192<\/a><\/p>\n\n<h2>\n  \n  \n  \u2b06\ufe0f Update warnings\n<\/h2>\n\n<p>HTTPie for Terminal is now part of a broader platform, and we iterate quickly and deliver new features frequently. To keep existing users up-to-date, this version adds a gentle new warning:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span>http pie.dev\/get\nhttp: info: A new HTTPie release <span class=\"o\">(<\/span>3.3.0<span class=\"o\">)<\/span> is available.\nTo see how you can update, please visit https:\/\/httpie.io\/docs\/cli\/pypi\n\nHTTP\/1.1 200 OK\nContent-Encoding: <span class=\"nb\">gzip\n<\/span>Content-Type: application\/json\n\n<span class=\"o\">{<\/span>\n    <span class=\"s2\">\"args\"<\/span>: <span class=\"o\">{}<\/span>,\n    <span class=\"s2\">\"headers\"<\/span>: <span class=\"o\">{<\/span>\n        <span class=\"s2\">\"Accept\"<\/span>: <span class=\"s2\">\"*\/*\"<\/span>,\n        <span class=\"s2\">\"Accept-Encoding\"<\/span>: <span class=\"s2\">\"gzip\"<\/span>,\n        <span class=\"s2\">\"Cdn-Loop\"<\/span>: <span class=\"s2\">\"cloudflare\"<\/span>,\n    <span class=\"o\">}<\/span>,\n    <span class=\"s2\">\"url\"<\/span>: <span class=\"s2\">\"http:\/\/pie.dev\/get\"<\/span>\n<span class=\"o\">}<\/span>\n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>You can also check the latest release by manually running <code>check-updates<\/code>:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ httpie cli check-updates\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>\ud83d\udcd6 <a href=\"https:\/\/httpie.io\/docs\/cli\/update-warnings\" rel=\"noopener noreferrer\">Update warning docs \u2192<\/a><\/p>\n\n<h2>\n  \n  \n  \u2696\ufe0f Improved persistence for headers\n<\/h2>\n\n<p>Multiple headers with the same name are now correctly persisted inside sessions. E.g.:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ http --session test pie.dev\/headers X-Foo:bar X-Foo:baz\n<\/code><\/pre>\n\n<\/div>\n\n\n\n\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ http --session test pie.dev\/headers\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>For upgrading your old sessions, you can use <code>httpie cli sessions upgrade<\/code>:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ httpie cli sessions upgrade pie.dev test\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>To upgrade all named sessions in one go, you can try <code>httpie cli sessions upgrade-all<\/code>.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>$ httpie cli sessions upgrade-all\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>\ud83d\udcd6 <a href=\"https:\/\/httpie.io\/docs\/cli\/upgrading-sessions\" rel=\"noopener noreferrer\">Session upgrade docs \u2192<\/a><\/p>\n\n<h2>\n  \n  \n  \u2728 Other improvements\n<\/h2>\n\n<p>Moved <code>httpie plugins *<\/code> command to the new <code>httpie cli plugins<\/code> namespace. This provides a more scalable namespacing of the management subcommands. The original <code>httpie plugins *<\/code> commands are now hidden aliases.<\/p>\n\n<h2>\n  \n  \n  \ud83e\udeb2 Bug fixes\n<\/h2>\n\n<ul>\n<li>Removed the redundant addition of <code>Content-Length: 0<\/code> header to body-less <code>OPTIONS<\/code> requests.<\/li>\n<li>The thread observing standard input to provide a warning when no data arrives is now properly terminated when HTTPie itself exists.<\/li>\n<\/ul>\n\n<p>\ud83d\udc19 <a href=\"https:\/\/github.com\/httpie\/httpie\/blob\/master\/CHANGELOG.md#320-2022-05-05\" rel=\"noopener noreferrer\">Full changelog \u2192<\/a><\/p>\n\n<h2>\n  \n  \n  \u2665\ufe0f Community contributions\n<\/h2>\n\n<p>Last but not least, we\u2019d like to thank the amazing people who\u2019ve contributed to this release of HTTPie: <a href=\"https:\/\/github.com\/ethanmills\" rel=\"noopener noreferrer\">Ethan Mills<\/a>, <a href=\"https:\/\/github.com\/blyxxyz\" rel=\"noopener noreferrer\">Jan Verbeek<\/a>, <a href=\"https:\/\/github.com\/ducaale\" rel=\"noopener noreferrer\">Mohamed Daahir<\/a>, <a href=\"https:\/\/github.com\/ansman\" rel=\"noopener noreferrer\">Nicklas Ansman Giertz<\/a>,  <a href=\"https:\/\/github.com\/Oliver-Fish\" rel=\"noopener noreferrer\">Oliver Fish<\/a>, <a href=\"https:\/\/github.com\/robertolopezlopez\" rel=\"noopener noreferrer\">Roberto L\u00f3pez L\u00f3pez<\/a>, <a href=\"https:\/\/github.com\/luzpaz\" rel=\"noopener noreferrer\">luzpaz<\/a>, and <a href=\"https:\/\/github.com\/zhaohanqing95\" rel=\"noopener noreferrer\">zhaohanqing95<\/a>.<\/p>\n\n<p>\ud83d\udc19 <a href=\"https:\/\/github.com\/httpie\/httpie\/blob\/master\/CONTRIBUTING.md\" rel=\"noopener noreferrer\">How to contribute \u2192<\/a><\/p>\n\n"},{"title":"Changelog #0015 \u2014 \ud83d\udc11 Duplicating collections and more","pubDate":"Mon, 02 May 2022 16:49:02 +0000","link":"https:\/\/dev.to\/pie\/changelog-0015-duplicating-collections-and-more-3j2k","guid":"https:\/\/dev.to\/pie\/changelog-0015-duplicating-collections-and-more-3j2k","description":"<p>Last week we <a href=\"https:\/\/httpie.io\/blog\/changelog-0014\">announced Spaces<\/a>, a new way to organize your requests and collections. Since then, our main focus has been on the upcoming integration of HTTPie for Web &amp; Desktop with our cloud sync backend. At the same time, we\u2019ve also shipped a few goodies.<\/p>\n\n<p>Check out what's new \ud83d\udc47<\/p>\n\n<h2>\n  \n  \n  HTTPie for Web &amp; Desktop\n<\/h2>\n\n<h3>\n  \n  \n  \ud83d\udc11\u00a0Duplicating collections\n<\/h3>\n\n<p>It\u2019s been possible to duplicate requests for a while. Now you can also duplicate whole collections for even faster reuse.<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--CrwxYyaC--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0015%252FDuplicate_Collections-EDWERZ2D.png%26w%3D3840%26q%3D95\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--CrwxYyaC--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/httpie.io\/_next\/image%3Furl%3D%252FBlog%252Fchangelog-0015%252FDuplicate_Collections-EDWERZ2D.png%26w%3D3840%26q%3D95\" alt=\"Duplicate_Collections\" width=\"880\" height=\"495\"><\/a><\/p>\n\n<h3>\n  \n  \n  \u2728 Other improvements\n<\/h3>\n\n<ul>\n<li>We\u2019ve moved the \u201cPreview &amp; export\u2026\u201d panel toggle up next to the request form tabs based on our users\u2019 feedback. More accessible and easy.<\/li>\n<li>Look at our new settings icon! You can access your settings through the account menu.<\/li>\n<\/ul>\n\n<h3>\n  \n  \n  \ud83e\udeb2 Bug fixes\n<\/h3>\n\n<ul>\n<li>The header name autocomplete dropdown doesn\u2019t hide the name field anymore.<\/li>\n<li>The <code>\u2026<\/code> menu in the message panel that allows you to copy the messages was misaligned when activated. It\u2019s fixed now.<\/li>\n<li>The icon inside the collection tab was too small. Now it has the correct size.<\/li>\n<li>The settings tab\u2019s checkmarks could sometimes overlap the library in some outstanding layouts. Fixed.<\/li>\n<li>The new font improvements uncovered an extra backtick we had on the preview type selector. A tiny bug that is now gone.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  HTTPie for Terminal\n<\/h2>\n\n<p>We\u2019ve been putting the finishing touches on a new 3.2.0 release that we plan to release next week. See <a href=\"https:\/\/httpie.io\/blog\/changelog-0014\">last week\u2019s changelog<\/a> for an <a href=\"https:\/\/httpie.io\/blog\/changelog-0014#httpie-for-terminal\">overview of the upcoming features<\/a>.<\/p>\n\n<h2>\n  \n  \n  Happy testing, and see you next week!\n<\/h2>\n\n<p>But in the meantime\u2026<\/p>\n\n<ul>\n<li>\ud83d\udc81\ud83c\udffb\u200d\u2640\ufe0f If you\u2019re not on the private beta yet, you can <a href=\"https:\/\/httpie.io\/beta\">join the waitlist here<\/a>.<\/li>\n<li>\ud83d\udc49 You can also follow <a href=\"https:\/\/twitter.com\/httpie\">@httpie<\/a> and join our <a href=\"https:\/\/httpie.io\/discord\">Discord community<\/a>.<\/li>\n<li>\ud83d\udc69\u200d\ud83d\udcbb We\u2019re looking for new colleagues in <a href=\"https:\/\/httpie.io\/jobs\">engineering and design roles<\/a>.<\/li>\n<\/ul>\n\n\n\n\n<p>Originally published on <a href=\"https:\/\/httpie.io\/blog\/changelog-0015\">HTTPie blog<\/a>.<\/p>\n\n","category":["devtools","httpie","api","testing"]}]}}