<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: HTTPie</title>
    <description>The latest articles on DEV Community by HTTPie (@pie).</description>
    <link>https://dev.to/pie</link>
    <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</url>
      <title>DEV Community: HTTPie</title>
      <link>https://dev.to/pie</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pie"/>
    <language>en</language>
    <item>
      <title>Changelog #0024 — ✨️ Improved variables and more</title>
      <dc:creator>Cláudia Delgado</dc:creator>
      <pubDate>Mon, 29 May 2023 15:21:36 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0024-improved-variables-and-more-149h</link>
      <guid>https://dev.to/pie/changelog-0024-improved-variables-and-more-149h</guid>
      <description>&lt;p&gt;Check out what’s new in HTTPie for Web &amp;amp; Desktop &lt;a href="https://github.com/httpie/desktop/releases/tag/v2023.3.0"&gt;2023.3.0&lt;/a&gt;, and HTTPie for Terminal &lt;a href="https://github.com/httpie/httpie/releases/tag/3.2.2"&gt;3.2.2&lt;/a&gt; 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  🔖 Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🪆 Recursive variables —&lt;/strong&gt; Keep your variables DRY and atomic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;✏️ Inline name editing —&lt;/strong&gt; Quickly rename requests and collections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💾 Save body as file&lt;/strong&gt; — Save body as file directly from the client.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔃 Re-order variables —&lt;/strong&gt; Bring order to your variables.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🖼 Re-order environments —&lt;/strong&gt; And to your environments as well.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;✨ Other enhancements —&lt;/strong&gt; Use longer collection &amp;amp; request names, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📟‍ CLI v3.2.2 —&lt;/strong&gt; A compatibility bug fix release.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  HTTPie for Web &amp;amp; Desktop 2023.3.0
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🪆 Use variables recursively
&lt;/h3&gt;

&lt;p&gt;Referencing a variable from another variable’s value? Why not‽ HTTPie now resolves variables recursively to help you keep your Spaces DRY.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✏️ Edit names inline
&lt;/h3&gt;

&lt;p&gt;Quickly change the name of a request or collection with a double click. Just like that. Simple.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  💾 Save body as file
&lt;/h3&gt;

&lt;p&gt;You could always copy the request and response body. Now you can also save it as a file directly from the client.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔃 Re-order variables
&lt;/h3&gt;

&lt;p&gt;HTTPie orders your variables by the creation time by default. Now you can use any ordering system that makes sense for your variables.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔁 Re-order environments
&lt;/h3&gt;

&lt;p&gt;And you can now re-order environments as well 🪷&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Other enhancements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Collection and request names now may be up to ~40~ &lt;em&gt;80&lt;/em&gt; characters long.&lt;/li&gt;
&lt;li&gt;Numerous under-the-hood stability and performance improvements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  HTTPie for Terminal 3.2.2
&lt;/h2&gt;

&lt;p&gt;HTTPie for Terminal &lt;a href="https://github.com/httpie/httpie/releases/tag/3.2.2"&gt;v3.2.2 is now available&lt;/a&gt; 🎉 This version fixes compatibility with &lt;code&gt;urllib3&lt;/code&gt; 2.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤗 Happy API testing, and see you again soon!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✉️ Thoughts? Questions? Shoot us an email at &lt;a href="//mailto:feedback@httpie.io"&gt;feedback@httpie.io&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;📋 You can also help us improve by completing a &lt;a href="https://httpie.io/survey"&gt;quick survey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 Follow &lt;a href="https://twitter.com/httpie"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord"&gt;Discord community&lt;/a&gt; to stay up to date.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs"&gt;engineering and design roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published on &lt;a href="https://httpie.io/blog/changelog-0024"&gt;https://httpie.io/blog/changelog-0024&lt;/a&gt;&lt;/p&gt;

</description>
      <category>httpie</category>
      <category>api</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Changelog #0023 — 🛠️ Internal refactoring and improvements</title>
      <dc:creator>Cláudia Delgado</dc:creator>
      <pubDate>Mon, 29 May 2023 15:13:25 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0023-internal-refactoring-and-improvements-41ga</link>
      <guid>https://dev.to/pie/changelog-0023-internal-refactoring-and-improvements-41ga</guid>
      <description>&lt;p&gt;HTTPie for Web &amp;amp; Desktop &lt;a href="https://github.com/httpie/desktop/releases/tag/v2023.2.4"&gt;v2023.2.x&lt;/a&gt; is out, and it’s probably our biggest release yet — regarding lines of code changed, anyway!&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨What’s new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Added the ability to sync requests with binary data in text bodies&lt;/li&gt;
&lt;li&gt;Added the ability to sync requests with binary data in form field values&lt;/li&gt;
&lt;li&gt;Fixed various sync issues preventing some users from fully syncing&lt;/li&gt;
&lt;li&gt;Fixed the auto-update dialog to appear only once for each version&lt;/li&gt;
&lt;li&gt;Fixed an occasional crash when re-ordering items via drag-and-drop&lt;/li&gt;
&lt;li&gt;Numerous small fixes and improvements throughout the app&lt;/li&gt;
&lt;li&gt;⚡️ A comprehensive refactoring and re-architecture of the entire codebase&lt;/li&gt;
&lt;li&gt;🏎️ Internal DX optimizations for rapid development of upcoming features&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠️ Internal refactoring
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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 &lt;a href="https://github.com/pmndrs/jotai"&gt;jotai&lt;/a&gt; atoms, and we generally had very little abstraction in the model layer. This made the model layer code complex, rigid, and bug-prone.&lt;/p&gt;

&lt;p&gt;Our new data layer is powered by an internal framework where all entities are defined as classes inheriting from a base &lt;code&gt;Model&lt;/code&gt;, connected to a &lt;code&gt;Backend&lt;/code&gt;. The latter provides implementions of reactive CRUD on top of localStorage, RxDB, etc.&lt;/p&gt;

&lt;p&gt;The decision to write our solution came after carefully evaluating existing options. Our app is highly data-driven, and we couldn’t 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.).&lt;/p&gt;

&lt;p&gt;We took inspiration from the many frameworks we worked with throughout our careers. And maybe surprisingly, Django’s ORM layer impacted our design choices and the API quite a bit. The resulting framework relies on &lt;a href="https://zod.dev/"&gt;Zod&lt;/a&gt; for schemas and validation and &lt;a href="https://github.com/pmndrs/valtio"&gt;Valtio&lt;/a&gt; for React integration.&lt;/p&gt;

&lt;p&gt;We’re extremely pleased with the result and hope to open-source the framework soon. We cannot wait to ship our upcoming &lt;a href="https://httpie.io/ai"&gt;AI&lt;/a&gt;, &lt;a href="https://httpie.io/blog/changelog-0020#help-wanted-teams-and-collaboration"&gt;collaboration&lt;/a&gt;, and scripting features we’re building already using the new framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤗 Happy API testing, and see you again soon!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✉️ Thoughts? Questions? Shoot us an email at &lt;a href="//mailto:feedback@httpie.io"&gt;feedback@httpie.io&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;📋 You can also help us improve by completing a &lt;a href="https://httpie.io/survey"&gt;quick survey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 Follow &lt;a href="https://twitter.com/httpie"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord"&gt;Discord community&lt;/a&gt; to stay up to date.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs"&gt;engineering and design roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published on &lt;a href="https://httpie.io/blog/changelog-0023"&gt;https://httpie.io/blog/changelog-0023&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>HTTPie AI assistant</title>
      <dc:creator>Jakub Roztocil</dc:creator>
      <pubDate>Wed, 04 Jan 2023 12:24:56 +0000</pubDate>
      <link>https://dev.to/pie/httpie-ai-assistant-4pmg</link>
      <guid>https://dev.to/pie/httpie-ai-assistant-4pmg</guid>
      <description>&lt;p&gt;Today we’re launching HTTPie AI, a new way to interact with APIs ✨&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HTTPie AI assistant, built into HTTPie for &lt;a href="https://httpie.io/app" rel="noopener noreferrer"&gt;Web&lt;/a&gt; &amp;amp; &lt;a href="https://httpie.io/product" rel="noopener noreferrer"&gt;Desktop&lt;/a&gt;, uses state-of-the-art artificial intelligence to increase your productivity when testing and talking to APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free product preview
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Let’s say you want to fetch the details of the &lt;a href="https://github.com/httpie/dekstop" rel="noopener noreferrer"&gt;httpie/desktop&lt;/a&gt; repo from the GitHub API. This requires translating the intent to the corresponding HTTP request and entering it into the client’s UI. You need to have some degree of understanding of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How the API or server works (e.g., hostname, endpoints, auth)&lt;/li&gt;
&lt;li&gt;How HTTP works (e.g., headers, methods, body)&lt;/li&gt;
&lt;li&gt;How to instruct the client to send the exact request&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What if instead of creating requests manually, we could tell HTTPie to “fetch repo details of httpie/desktop”? Or even in another language like Spanish, «obtén los detalles del repositorio httpie/desktop»?&lt;/p&gt;

&lt;p&gt;Well, now you can!&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Craft requests using human language
&lt;/h2&gt;

&lt;p&gt;You can type your prompt directly in HTTPie’s URL field. It’s similar to typing a search query in your browser’s address bar instead of the exact URL.&lt;/p&gt;

&lt;p&gt;Alternatively, you can open the HTTPie AI dialog from the “+” menu in the library. In the desktop app, you can also use ⌘I. There’s 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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then hit “Generate” to get a suggestion.&lt;/p&gt;

&lt;p&gt;If you like the request, save it. The saved request automatically gets a short name generated by the AI. If you don’t like it, you can hit “Generate” 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).&lt;/p&gt;

&lt;p&gt;There are two strategies for writing HTTPie prompts: &lt;em&gt;describing the request&lt;/em&gt; and &lt;em&gt;describing the intent&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Describing the request
&lt;/h3&gt;

&lt;p&gt;You can ask the AI to generate an HTTP request by describing its low-level components like the URL, headers, and body:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Generate an array of 3 blog posts with title, author, and summary and post it to localhost 3000 api as user agent HTTPie AI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Describing the intent
&lt;/h3&gt;

&lt;p&gt;For actions involving public APIs of popular services, you can describe the high-level tasks you want to accomplish:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;List GitHub users
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is another example, where the model picks up that we mean a GitHub repo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fetch last release details of httpie/desktop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Feedback and accuracy
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Entering the era of AI copilots
&lt;/h2&gt;

&lt;p&gt;As large language models (LLMs) gain robust generative capabilities, creative tools are evolving toward AI-powered experiences.&lt;/p&gt;

&lt;p&gt;HTTPie is now becoming the first API development platform with AI assistance, and we’d love your feedback!&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How we built it
&lt;/h2&gt;

&lt;p&gt;We built this initial feature preview using OpenAI’s GPT-3 models. &lt;/p&gt;

&lt;p&gt;In the process, we refactored the &lt;a href="https://github.com/openai/openai-python" rel="noopener noreferrer"&gt;openai/openai-python&lt;/a&gt; library to make the default installation size &lt;a href="https://github.com/openai/openai-python/pull/153" rel="noopener noreferrer"&gt;~7⨉ smaller&lt;/a&gt; (167M → 23M). Now it’s much more manageable to deploy OpenAI-powered applications using this library in environments with code size constraints, such as AWS Lambda.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s next
&lt;/h2&gt;

&lt;p&gt;We’ll continue improving the assistant’s accuracy and adding more capabilities throughout the HTTPie platform.&lt;/p&gt;

&lt;p&gt;Jump into the &lt;a href="https://httpie.io/app" rel="noopener noreferrer"&gt;Web&lt;/a&gt; app or download the &lt;a href="https://httpie.io/product" rel="noopener noreferrer"&gt;Desktop&lt;/a&gt; app and check it out!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✉️ Thoughts? Questions? Shoot us an email at &lt;a href="mailto:feedback@httpie.io"&gt;feedback@httpie.io&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;📋 You can also help us improve by completing a &lt;a href="https://httpie.io/survey" rel="noopener noreferrer"&gt;quick survey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 Follow &lt;a href="https://twitter.com/httpie" rel="noopener noreferrer"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord" rel="noopener noreferrer"&gt;Discord community&lt;/a&gt; to stay up to date.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs" rel="noopener noreferrer"&gt;engineering and other roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PS: We’re looking for a more personable name for our assistant 💡&lt;/p&gt;




&lt;p&gt;Originally published at &lt;a href="https://httpie.io/blog/ai" rel="noopener noreferrer"&gt;https://httpie.io/blog/ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>httpie</category>
      <category>ai</category>
      <category>api</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Changelog #0022 — 🪄 HTTPie AI assistant, methods in tabs, and more</title>
      <dc:creator>Jakub Roztocil</dc:creator>
      <pubDate>Wed, 04 Jan 2023 12:20:25 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0022-httpie-ai-assistant-methods-in-tabs-and-more-20ec</link>
      <guid>https://dev.to/pie/changelog-0022-httpie-ai-assistant-methods-in-tabs-and-more-20ec</guid>
      <description>&lt;p&gt;Happy &lt;a href="https://twitter.com/httpie/status/1609345468529577991" rel="noopener noreferrer"&gt;new year&lt;/a&gt;! 🥳 Let’s start it with a new release of HTTPie for &lt;a href="https://httpie.io/app" rel="noopener noreferrer"&gt;Web&lt;/a&gt; &amp;amp; &lt;a href="https://httpie.io/product" rel="noopener noreferrer"&gt;Desktop&lt;/a&gt;. Check out what we shipped &lt;a href="https://github.com/httpie/desktop/releases/tag/v2023.1.0" rel="noopener noreferrer"&gt;v2023.1.0&lt;/a&gt; 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  🔖 Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🪄 HTTPie AI assistant –&lt;/strong&gt; Introducing a new way to interact with APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🗂️ Methods in tabs –&lt;/strong&gt; Easier navigation with HTTP methods in tabs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📚 Library context menu —&lt;/strong&gt; New context menu for quick library actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌊 cURL as URL —&lt;/strong&gt; Type a cURL command in the address field.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;✨ Other improvements —&lt;/strong&gt; Tweaks and fixes for improved API testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🪄 Introducing HTTPie AI
&lt;/h2&gt;

&lt;p&gt;Today we’re launching HTTPie AI, a new way to interact with APIs.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://httpie.io/blog/ai" rel="noopener noreferrer"&gt;Read the full announcement&lt;/a&gt; →&lt;/p&gt;

&lt;h2&gt;
  
  
  🗂️ See methods in tabs
&lt;/h2&gt;

&lt;p&gt;HTTPie now shows the HTTP method next to the request name in the request tabs:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This way, you can easily distinguish between tabs for requests using different methods but with the same name or URL. The &lt;code&gt;&amp;lt;method&amp;gt; &amp;lt;name&amp;gt;&lt;/code&gt; pair works nicely as a &lt;code&gt;&amp;lt;verb&amp;gt; &amp;lt;noun&amp;gt;&lt;/code&gt; sentence — a request identification system we already use in the library.&lt;/p&gt;

&lt;h2&gt;
  
  
  📚️ Quick library actions with new context menu
&lt;/h2&gt;

&lt;p&gt;There’s a lot of action behind the innocently looking “+” 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:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🌊 Type a cURL command in the address field
&lt;/h2&gt;

&lt;p&gt;You can &lt;a href="https://httpie.io/blog/changelog-0017#curl-import" rel="noopener noreferrer"&gt;paste a cURL command into the URL field&lt;/a&gt; for quick import. In this release, we added the ability to type an &lt;a href="https://httpie.io/blog/ai" rel="noopener noreferrer"&gt;AI prompt&lt;/a&gt; into the address field, and at the same time, we extended it to support typing cURL commands.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Support for HTTPie CLI commands is coming soon.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Other improvements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;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 &lt;code&gt;Authorization: Bearer …&lt;/code&gt; headers to the auth tab.&lt;/li&gt;
&lt;li&gt;Added more robust &lt;a href="https://httpie.io/blog/changelog-0018#navigate-apis-faster-with-interactive-urls" rel="noopener noreferrer"&gt;interactive URL&lt;/a&gt; matching. HTTPie will now add interactivity to links containing an IP address, port number, or pointing to &lt;code&gt;localhost&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added RSS feeds to this blog; grab one for your feed reader to stay up-to-date: ⚡️&lt;a href="https://httpie.io/api/feed/atom" rel="noopener noreferrer"&gt;Atom 1.0&lt;/a&gt;, ⚡️&lt;a href="https://httpie.io/api/feed/rss" rel="noopener noreferrer"&gt;RSS 2.0&lt;/a&gt;, ⚡️&lt;a href="https://httpie.io/api/feed/json" rel="noopener noreferrer"&gt;JSON Feed 1.1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fixed the auto-update system not to bother you once you choose “Install on next launch.” (&lt;a href="https://github.com/httpie/desktop/issues/55" rel="noopener noreferrer"&gt;#55&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤩 Happy API testing, and see you again soon!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✉️ Thoughts? Questions? Shoot us an email at &lt;a href="mailto:feedback@httpie.io"&gt;feedback@httpie.io&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;📋 You can also help us improve by completing a &lt;a href="https://httpie.io/survey" rel="noopener noreferrer"&gt;quick survey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👥 We’re working on collaboration features, and you can &lt;a href="https://httpie.io/blog/changelog-0019#help-wanted-teams-and-collaboration" rel="noopener noreferrer"&gt;help us out&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 Follow &lt;a href="https://twitter.com/httpie" rel="noopener noreferrer"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord" rel="noopener noreferrer"&gt;Discord community&lt;/a&gt; to stay up to date.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs" rel="noopener noreferrer"&gt;engineering and other roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published on &lt;a href="https://httpie.io/blog/changelog-0022" rel="noopener noreferrer"&gt;https://httpie.io/blog/changelog-0022&lt;/a&gt;&lt;/p&gt;

</description>
      <category>httpie</category>
      <category>ai</category>
      <category>api</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Changelog #0021 — 📯 Advanced import, GraphQL schema support, and more</title>
      <dc:creator>Jakub Roztocil</dc:creator>
      <pubDate>Thu, 08 Dec 2022 12:25:00 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0021-advanced-import-graphql-schema-support-and-more-5apc</link>
      <guid>https://dev.to/pie/changelog-0021-advanced-import-graphql-schema-support-and-more-5apc</guid>
      <description>&lt;p&gt;Hello, API World! Check out what we shipped in &lt;a href="https://github.com/httpie/desktop/releases/tag/v2022.16.0" rel="noopener noreferrer"&gt;v2022.16.0&lt;/a&gt;&lt;br&gt;
of HTTPie for &lt;a href="https://httpie.io/app" rel="noopener noreferrer"&gt;Web&lt;/a&gt; &amp;amp; &lt;a href="https://httpie.io/product" rel="noopener noreferrer"&gt;Desktop&lt;/a&gt; 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  🔖 Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;📯 Advanced import –&lt;/strong&gt; Migrate your data from Postman and Insomnia.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🪄 GraphQL schema support –&lt;/strong&gt; Auto-complete, validation, and more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;✨ Other improvements —&lt;/strong&gt; Tweaks and fixes for improved API testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📯 Import your Postman and Insomnia data to HTTPie
&lt;/h2&gt;

&lt;p&gt;Since our &lt;a href="https://httpie.io/blog/changelog-0017" rel="noopener noreferrer"&gt;public beta launch&lt;/a&gt; a few months ago, the adoption of HTTPie for Web &amp;amp; Desktop has been growing. Many of our new users have migrated from other API testing clients like Postman and Insomnia, and they’ve been asking for a smoother migration path.&lt;/p&gt;

&lt;p&gt;So in this release, we focused on streamlining the migration process, and—in addition to the existing &lt;a href="https://httpie.io/blog/changelog-0017#curl-import" rel="noopener noreferrer"&gt;cURL import&lt;/a&gt;—you can now import entire collections, environments and data dump zips from Postman and Insomnia.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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;amp; Desktop" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Migrate to HTTPie in a few simple steps
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Export&lt;/strong&gt; your data &lt;a href="https://httpie.io/r/docs/app/export-from-postman" rel="noopener noreferrer"&gt;from Postman&lt;/a&gt; or &lt;a href="https://httpie.io/r/docs/app/export-from-insomnia" rel="noopener noreferrer"&gt;from Insomnia&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Open the import dialog (Library → “+” → “Import…”).&lt;/li&gt;
&lt;li&gt;Drag &amp;amp; drop the exported file and click “Next…”.&lt;/li&gt;
&lt;li&gt;Select the target space and click “Import.”&lt;/li&gt;
&lt;li&gt;Done! Welcome to HTTPie 🤗&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 Tip: Create a new space during the import to keep things tidy.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛂 Import compatibility
&lt;/h3&gt;

&lt;p&gt;Here’s an overview of what elements HTTPie currently imports from Postman and Insomnia and how. As we gradually add new features to HTTPie, we’ll continue to improve the import as well.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛫️ Importing requests
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Request element&lt;/th&gt;
&lt;th&gt;Imported?&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HTTP Requests&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GraphQL requests&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gRPC requests&lt;/td&gt;
&lt;td&gt;✘&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebSockets&lt;/td&gt;
&lt;td&gt;✘&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Request method&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;Including custom ones.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Request URL&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;URL parameters&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Headers&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;Basic, bearer, API key, and inherited auth.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Body&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;Text, raw, JSON, and form request bodies.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Body files&lt;/td&gt;
&lt;td&gt;✘&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  🍱️ Importing containers
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Container&lt;/th&gt;
&lt;th&gt;Imported?&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Collections&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;See collection variables below.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sub-folders&lt;/td&gt;
&lt;td&gt;✘&lt;/td&gt;
&lt;td&gt;Folder hierarchy is preserved as breadcrumbs in request names.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  🖼️️ Importing environments &amp;amp; variables
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Imported?&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Environments&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Default variables&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Collection variables&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;We move non-global variables to the space level and refactor names and references to ensure uniqueness.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  💧 Importing other elements
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Other element&lt;/th&gt;
&lt;th&gt;Imported?&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Scripting&lt;/td&gt;
&lt;td&gt;✘&lt;/td&gt;
&lt;td&gt;Pre-request scripts, tests, and dynamic tags.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meta data&lt;/td&gt;
&lt;td&gt;✘&lt;/td&gt;
&lt;td&gt;Schemas, documentation, field descriptions, and response examples.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custom settings&lt;/td&gt;
&lt;td&gt;✘&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cookies&lt;/td&gt;
&lt;td&gt;✘&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🪄 Easier GraphQL APIs testing with schema support
&lt;/h2&gt;

&lt;p&gt;When talking to &lt;a href="https://httpie.io/blog/changelog-0018#support-for-graphql-apis" rel="noopener noreferrer"&gt;GraphQL APIs&lt;/a&gt;, 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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See auto-complete suggestions as you type, and to invoke the menu manually, press ⌃Space.&lt;/p&gt;

&lt;p&gt;HTTPie auto-fetches the schema using the current request’s URL and authentication. To refresh the schema, select “Update from server” from the new “Schema” menu. And to disable schema for a particular tab, uncheck “Auto-apply schema.”&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition to schema support, the GraphQL client now comes with code folding and other quality-of-life improvements.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Other improvements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Improved cURL import with support for &lt;a href="https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html" rel="noopener noreferrer"&gt;ANSI-C quoting shell syntax&lt;/a&gt; (e.g., &lt;code&gt;$'string'&lt;/code&gt;). This syntax is used by Chrome DevTools when exporting a request that includes a body as cURL, among others.&lt;/li&gt;
&lt;li&gt;HTTPie for Desktop now remembers the window's position. This way, you don't have to move it every time you launch it.&lt;/li&gt;
&lt;li&gt;On HTTPie for Windows, the title bar color now respects the system.&lt;/li&gt;
&lt;li&gt;The request definition tables no longer jump when switching tabs.&lt;/li&gt;
&lt;li&gt;We’ve added error boundaries to tabs and other components for more robust exception handling and recovery.&lt;/li&gt;
&lt;li&gt;The text search had some issues with very long lines. Now it’s fixed.&lt;/li&gt;
&lt;li&gt;Spelling and autocorrect in the filter field is now disabled.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤩 Happy API testing, and see you again soon!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✉️ Thoughts? Questions? Shoot us an email at &lt;a href="mailto:feedback@httpie.io"&gt;feedback@httpie.io&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;📋 You can also help us improve by completing a &lt;a href="https://httpie.io/survey" rel="noopener noreferrer"&gt;quick survey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👥 We’re working on collaboration features, and you can &lt;a href="https://httpie.io/blog/changelog-0019#help-wanted-teams-and-collaboration" rel="noopener noreferrer"&gt;help us out&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 Follow &lt;a href="https://twitter.com/httpie" rel="noopener noreferrer"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord" rel="noopener noreferrer"&gt;Discord community&lt;/a&gt; to stay up to date.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs" rel="noopener noreferrer"&gt;engineering and other roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published on &lt;a href="https://httpie.io/blog/changelog-0021" rel="noopener noreferrer"&gt;HTTPie blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>httpie</category>
      <category>graphql</category>
      <category>postman</category>
      <category>insomnia</category>
    </item>
    <item>
      <title>Changelog #0020 — 🔦 Data filtering, search &amp; replace, RegExp, and more</title>
      <dc:creator>Cláudia Delgado</dc:creator>
      <pubDate>Mon, 24 Oct 2022 22:02:50 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0020-data-filtering-search-replace-regexp-and-more-4ffp</link>
      <guid>https://dev.to/pie/changelog-0020-data-filtering-search-replace-regexp-and-more-4ffp</guid>
      <description>&lt;p&gt;Hello, API World! We’re back with a new release of HTTPie for &lt;a href="https://httpie.io/app"&gt;Web&lt;/a&gt; &amp;amp; &lt;a href="https://httpie.io/product"&gt;Desktop&lt;/a&gt;, the API testing client that you’ll enjoy using. &lt;a href="https://httpie.io/blog/changelog-0019"&gt;Last time&lt;/a&gt;, we hinted at additional tools for navigating and processing data. And that’s been our theme for this release. Check out what we shipped in &lt;a href="https://github.com/httpie/desktop/releases/tag/v2022.15.0"&gt;v2022.15.0&lt;/a&gt;👇&lt;/p&gt;

&lt;h2&gt;
  
  
  🔖 Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔦 Data filtering –&lt;/strong&gt; Filter, transform and analyze JSON, XML, and HTML.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔣 RegExp support –&lt;/strong&gt; Level up your search powers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔀 Search &amp;amp; replace –&lt;/strong&gt; Edit the request body text the smart way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;✨ Other improvements —&lt;/strong&gt; Tweaks and fixes for an improved experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;👥 Teams &amp;amp; collaboration -&lt;/strong&gt; Help us build the best collaborative experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔦 Filter, transform and analyze structured data
&lt;/h2&gt;

&lt;p&gt;We’ve recently &lt;a href="https://httpie.io/blog/changelog-0019#search-in-any-message"&gt;introduced text search&lt;/a&gt; to help you navigate large messages. Text search is available everywhere in the app as a universal way to navigate textual content.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The following data formats and query languages are now available:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data format&lt;/th&gt;
&lt;th&gt;Query language&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JSON&lt;/td&gt;
&lt;td&gt;&lt;a href="https://httpie.io/r/docs/app/jsonpath"&gt;JSONPath&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XML&lt;/td&gt;
&lt;td&gt;&lt;a href="https://httpie.io/r/docs/app/xpath"&gt;XPath&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML&lt;/td&gt;
&lt;td&gt;&lt;a href="https://httpie.io/r/docs/app/xpath"&gt;XPath&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Activate the filter field via a keyboard shortcut when the textarea is focused (macOS: ⇧⌘F; Windows &amp;amp; Linux: ⇧⌃F) or use the “Filter” item in the panel’s menu.&lt;/p&gt;

&lt;p&gt;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’re 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.&lt;/p&gt;

&lt;p&gt;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 (⇧⌘F) and the text search field (⌘F).&lt;/p&gt;

&lt;p&gt;This feature is part of a theme of making data easy to process and digest, and we’ll continue to add more ways to transform and visualize data.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔣 Upgrade your searches through RegExp
&lt;/h2&gt;

&lt;p&gt;Regular expressions (aka RegExp) are a powerful tool for searching for patterns in text, and now you can use them in HTTPie as well.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔀 Search &amp;amp; replace in the request body
&lt;/h2&gt;

&lt;p&gt;Any request body should be comfortably editable directly in HTTPie, no matter how big. The new ability to search &amp;amp; replace is another step in that direction!&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Activate the search field via a keyboard shortcut when the textarea is focused (macOS: ⌘F; Windows &amp;amp; Linux: ⌃F), and check out the new replacing options. Either replace the occurrences one by one or all at once — up to you!&lt;/p&gt;

&lt;p&gt;When searching using a RegExp, you can reference matching groups using the dollar-group-number syntax, where &lt;code&gt;$0&lt;/code&gt; references the whole match, &lt;code&gt;$1&lt;/code&gt; is the first group, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Other improvements and bug fixes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;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 (⌘,) if that’s what you prefer.&lt;/li&gt;
&lt;li&gt;All &lt;a href="https://httpie.io/blog/changelog-0019#work-blazing-fast-with-keyboard-shortcuts"&gt;keyboard shortcuts&lt;/a&gt; would repeat during a long press. We’ve now streamlined it so that, for example, holding ⌘↩ results only into one request.&lt;/li&gt;
&lt;li&gt;Now we warn you when you reach or approach the maximum &lt;a href="https://httpie.io/blog/changelog-0017#variables"&gt;variable name&lt;/a&gt; character limit.&lt;/li&gt;
&lt;li&gt;We’ve fixed a bug that sometimes led to 100% CPU usage with many tabs open.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📢 Help wanted: teams and collaboration
&lt;/h2&gt;

&lt;p&gt;Like with delicious pies, we believe the magic of HTTPie can be best experienced when shared with others. 😋&lt;/p&gt;

&lt;p&gt;We’ve 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’t wait to see what shape they’ll take and all the opportunities they unlock for our users.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re as excited as we are, or the opposite, we’d love to talk to you! We want to ensure we’re building the right thing, and your help would be greatly appreciated &amp;amp; &lt;a href="https://dev.to/blog/changelog-0017#thanks-to-our-community-and-private-beta-users"&gt;swag-rewarded&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;As a start, you can help us by completing a &lt;a href="https://us16.list-manage.com/survey?u=99f5ce2d00a123af1593451c6&amp;amp;id=77dc9762bd&amp;amp;attribution=false"&gt;quick survey&lt;/a&gt;. Then, if you’re up for it, we’d be delighted to interview you over Zoom.&lt;/p&gt;

&lt;p&gt;&lt;a href="//mailto:feedback@httpie.io"&gt;Get in touch&lt;/a&gt;, and help shape the best collaborative API experience! 💪&lt;/p&gt;

&lt;h2&gt;
  
  
  🤗 Happy API testing, and see you again soon!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✉️ Thoughts? Questions? Shoot us an email at &lt;a href="//mailto:feedback@httpie.io"&gt;feedback@httpie.io&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;📋 You can also help us improve by completing a &lt;a href="https://httpie.io/survey"&gt;quick survey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 Follow &lt;a href="https://twitter.com/httpie"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord"&gt;Discord community&lt;/a&gt; to stay up to date.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs"&gt;engineering and design roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>httpie</category>
    </item>
    <item>
      <title>Changelog #0019 — 🖐️ Library ordering, search, keyboard shortcuts, and more</title>
      <dc:creator>Cláudia Delgado</dc:creator>
      <pubDate>Wed, 28 Sep 2022 21:27:57 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0019-library-ordering-search-keyboard-shortcuts-and-more-3pod</link>
      <guid>https://dev.to/pie/changelog-0019-library-ordering-search-keyboard-shortcuts-and-more-3pod</guid>
      <description>&lt;p&gt;Hello, API World! We’re back with a new major release of HTTPie for &lt;a href="https://httpie.io/app" rel="noopener noreferrer"&gt;Web&lt;/a&gt; &amp;amp; &lt;a href="https://httpie.io/product" rel="noopener noreferrer"&gt;Desktop&lt;/a&gt;, the API testing client that you’ll enjoy using.&lt;/p&gt;

&lt;p&gt;The theme of this release is developer productivity and streamlining the overall experience. Check out what we shipped in &lt;a href="https://github.com/httpie/desktop/releases/tag/v2022.14.0" rel="noopener noreferrer"&gt;v2022.14.0&lt;/a&gt;👇&lt;/p&gt;

&lt;h2&gt;
  
  
  🔖 Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🖐️ Library ordering —&lt;/strong&gt; Reorder your items for tailored organization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔍 Search in messages —&lt;/strong&gt; Find specific values in message bodies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⌨️ Keyboard shortcuts —&lt;/strong&gt; Move at the speed of your fingers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🐈 “What’s inside” tooltips —&lt;/strong&gt; Peek at the content of the request form.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💡 Multi-body hints —&lt;/strong&gt; Know which body types already have data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;👁️ Preview toggle —&lt;/strong&gt; Quickly toggle the response preview mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌩 Improved web errors —&lt;/strong&gt; Better web app limitation hints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;✨ Other improvements —&lt;/strong&gt; Fixed localhost connection error, and more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;👥 Teams &amp;amp; collaboration -&lt;/strong&gt; Help us build the best collaborative experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🖐️ Drag &amp;amp; drop to reorder library items
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔎 Search in any message
&lt;/h2&gt;

&lt;p&gt;Navigating sizeable responses can be a burden. With the help of the newly added search, you won’t feel like you’re looking for a needle in a haystack.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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 “Search” item in the menu.&lt;/p&gt;

&lt;p&gt;Coming next: RegExp search and structural filtering for various languages.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⌨️ Work blazing fast with keyboard shortcuts
&lt;/h2&gt;

&lt;p&gt;Even as we continue to add top-notch drag-and-drop support throughout the app, the goal for HTTPie for Web &amp;amp; Desktop is to become fully controllable via well-designed keyboard shortcuts.&lt;/p&gt;

&lt;p&gt;We believe that’s the most efficient way to work. And we aim for our users to be able to work blazing fast.&lt;/p&gt;

&lt;p&gt;All components are keyboard-accessible, and you can navigate to and invoke all actions using the ⇥ Tab and ↩ Enter keys.&lt;/p&gt;

&lt;p&gt;For this release, we focused on exposing the most common actions via explicit keyboard shortcuts.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See the sections below for an overview of all the shortcuts available today. As always, we’ll continue to improve this area, and you can look forward to more shortcuts and a ⌘K menu in upcoming releases.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌍 Global keyboard shortcuts
&lt;/h3&gt;

&lt;p&gt;These shortcuts are available on the desktop today, and we’ll bring a version of them to the web over time.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;macOS&lt;/th&gt;
&lt;th&gt;Windows &amp;amp; Linux&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;New tab (draft)&lt;/td&gt;
&lt;td&gt;⌘ T&lt;/td&gt;
&lt;td&gt;⌃ T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Close tab&lt;/td&gt;
&lt;td&gt;⌘ W&lt;/td&gt;
&lt;td&gt;⌃ W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next tab&lt;/td&gt;
&lt;td&gt;
⌃ ⇥ &lt;br&gt;⇧ ⌘ }
&lt;/td&gt;
&lt;td&gt;⌃ ⇥&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Previous tab&lt;/td&gt;
&lt;td&gt;
⌃ ⇧ ⇥ &lt;br&gt;⇧ ⌘ {
&lt;/td&gt;
&lt;td&gt;⌃ ⇧ ⇥&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nth tab&lt;/td&gt;
&lt;td&gt;⌘ 1–8&lt;/td&gt;
&lt;td&gt;⌃ 1–8 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Last tab&lt;/td&gt;
&lt;td&gt;⌘ 9&lt;/td&gt;
&lt;td&gt;⌃ 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toggle library&lt;/td&gt;
&lt;td&gt;
⌘ B&lt;br&gt;⌃ ⌘ S
&lt;/td&gt;
&lt;td&gt;⌃ B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open settings&lt;/td&gt;
&lt;td&gt;⌘ ,&lt;/td&gt;
&lt;td&gt;⌃ ,&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🛫 Request keyboard shortcuts
&lt;/h3&gt;

&lt;p&gt;You can use these shortcuts when a request tab is open.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;macOS&lt;/th&gt;
&lt;th&gt;Windows &amp;amp; Linux&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Focus URL&lt;/td&gt;
&lt;td&gt;⌘ L&lt;/td&gt;
&lt;td&gt;⌃ L&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Send request&lt;/td&gt;
&lt;td&gt;⌘ ↩&lt;/td&gt;
&lt;td&gt;⌃ ↩&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🔍 Search keyboard shortcuts
&lt;/h3&gt;

&lt;p&gt;These shortcuts are available in the body editor and the preview, request, and response panels when the textarea or search field has focus.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;macOS&lt;/th&gt;
&lt;th&gt;Windows &amp;amp; Linux&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Open search&lt;/td&gt;
&lt;td&gt;⌘ F&lt;/td&gt;
&lt;td&gt;⌃ F&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next occurrence&lt;/td&gt;
&lt;td&gt;⌘ G&lt;/td&gt;
&lt;td&gt;⌃ G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Previous occurrence&lt;/td&gt;
&lt;td&gt;⇧ ⌘ G&lt;/td&gt;
&lt;td&gt;⇧ ⌃ G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next occurrence &lt;br&gt;(inside search box)&lt;/td&gt;
&lt;td&gt;↩&lt;/td&gt;
&lt;td&gt;↩&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Previous occurrence &lt;br&gt;(inside search box)&lt;/td&gt;
&lt;td&gt;⇧ ↩&lt;/td&gt;
&lt;td&gt;⇧ ↩&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🐈 Peek at request content with tooltips
&lt;/h2&gt;

&lt;p&gt;The request creation form is organized into tabs, and we hint to you about what’s 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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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’t specify any.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Know which body types already have data
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To make this feature more transparent, we now show you an indicator in the switcher for each body type that has some data specified.&lt;/p&gt;

&lt;h2&gt;
  
  
  👁️ Quickly toggle response preview
&lt;/h2&gt;

&lt;p&gt;When the server sends back a response type for which there’s a human-friendly preview mode, such as HTML, we render the response to make it easier to digest.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have simplified the response body type selector, and now the preview mode is exposed as a toggle. It’s currently available for HTML responses, and more preview types will come soon.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌩 Improved web app limitation hints
&lt;/h2&gt;

&lt;p&gt;HTTPie for Web has several technical limitations that don’t 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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you encounter a web limitation, we’ll offer you to switch to the desktop app.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Other improvements and bug fixes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;To help new users to create their first environment, we now show a label in the button until they create one.&lt;/li&gt;
&lt;li&gt;The environment color selector is now more compact.&lt;/li&gt;
&lt;li&gt;The GraphQL editors were adjusted to better fit small screens.&lt;/li&gt;
&lt;li&gt;There are new icons in the messages menus making them consistent with the rest.&lt;/li&gt;
&lt;li&gt;Variable values now handle whitespace values more robustly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📢 Help wanted: teams and collaboration
&lt;/h2&gt;

&lt;p&gt;Like with delicious pies, we believe the magic of HTTPie can be best experienced when shared with others. 😋&lt;/p&gt;

&lt;p&gt;We’ve 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’t wait to see what shape they’ll take and all the opportunities they unlock for our users.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re as excited as we are, or the opposite, we’d love to talk to you! We want to ensure we’re building the right thing, and your help would be greatly appreciated &amp;amp; &lt;a href="https://dev.to/blog/changelog-0017#thanks-to-our-community-and-private-beta-users"&gt;swag-rewarded&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;As a start, you can help us by completing a &lt;a href="https://us16.list-manage.com/survey?u=99f5ce2d00a123af1593451c6&amp;amp;id=77dc9762bd&amp;amp;attribution=false" rel="noopener noreferrer"&gt;quick survey&lt;/a&gt;. Then, if you’re up for it, we’d be delighted to interview you over Zoom.&lt;/p&gt;

&lt;p&gt;&lt;a href="//mailto:feedback@httpie.io"&gt;Get in touch&lt;/a&gt;, and help shape the best collaborative API experience! 💪&lt;/p&gt;

&lt;h2&gt;
  
  
  🤗 Happy API testing, and see you again soon!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✉️ Thoughts? Questions? Shoot us an email at &lt;a href="//mailto:feedback@httpie.io"&gt;feedback@httpie.io&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;📋 You can also help us improve by completing a &lt;a href="https://httpie.io/survey" rel="noopener noreferrer"&gt;quick survey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 Follow &lt;a href="https://twitter.com/httpie" rel="noopener noreferrer"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord" rel="noopener noreferrer"&gt;Discord community&lt;/a&gt; to stay up to date.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs" rel="noopener noreferrer"&gt;engineering and design roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Changelog #0018 — 🚀 GraphQL, custom HTTP method, interactive URLs, and more</title>
      <dc:creator>Cláudia Delgado</dc:creator>
      <pubDate>Tue, 30 Aug 2022 16:47:45 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0018-graphql-custom-http-method-interactive-urls-and-more-46ag</link>
      <guid>https://dev.to/pie/changelog-0018-graphql-custom-http-method-interactive-urls-and-more-46ag</guid>
      <description>&lt;p&gt;Hello, API World! After &lt;a href="https://httpie.io/blog/changelog-0017"&gt;launching in public beta&lt;/a&gt; earlier this month, we’re back with more news on HTTPie for &lt;a href="https://httpie.io/app"&gt;Web&lt;/a&gt; &amp;amp; &lt;a href="https://httpie.io/product"&gt;Desktop&lt;/a&gt;. Check out the API testing  improvements we’ve shipped in &lt;a href="https://github.com/httpie/desktop/releases/tag/v2022.12.0"&gt;v2022.12.0&lt;/a&gt;&lt;br&gt;
and &lt;a href="https://github.com/httpie/desktop/releases/tag/v2022.13.0"&gt;v2022.13.0&lt;/a&gt; since then 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  🔖 Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🚀 GraphQL support —&lt;/strong&gt; Test GraphQL APIs just like REST and HTTP APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;✏️ Custom HTTP methods —&lt;/strong&gt; Talk to APIs using custom HTTP methods.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔗 Interactive URLs&lt;/strong&gt; — Interact with URLs returned by APIs and elsewhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📯 Auto-switch to POST —&lt;/strong&gt; Send requests with fewer clicks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🖼 New web app icon —&lt;/strong&gt; Crisp new icon for easier navigation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💆‍♀️ Better header validation —&lt;/strong&gt; Spot syntax errors quicker.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🪲 Bug fixes —&lt;/strong&gt; Hopefully, we caught them before you noticed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 Support for GraphQL APIs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://graphql.org/"&gt;GraphQL&lt;/a&gt; is a popular API query language created at Facebook. It’s 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;But now we're introducing built-in support for crafting GraphQL requests to improve your experience when talking to GraphQL APIs.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When defining a request, choose “GraphQL” 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 &lt;a href="https://httpie.io/blog/changelog-0017#variables"&gt;space variables&lt;/a&gt; in both editors.&lt;/p&gt;

&lt;p&gt;GraphQL support is marked as beta as we continue to work on schema support and other improvements.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✏️ Use custom HTTP methods in your requests
&lt;/h2&gt;

&lt;p&gt;To keep the user interface light, we only include the most common HTTP methods in the selector (GET, POST, HEAD, PUT, PATCH, DELETE, OPTIONS).&lt;/p&gt;

&lt;p&gt;This is typically all you need when talking to conventional REST, GraphQL, and HTTP APIs. However, there are other—less popular—HTTP methods like COPY, TRACE, etc. And APIs may also introduce custom ones.&lt;/p&gt;

&lt;p&gt;When testing APIs that use unconventional HTTP methods, you can now supplement the default list with a method of your choosing.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Navigate APIs faster with interactive URLs
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;So it’s 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!&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clickable links have a subtle underline. When you spot one, control-click (⌘-click on macOS) or right-click it to get a menu with the URL options.&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;“Create new draft”&lt;/strong&gt; creates a fresh new draft with that URL.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;“Duplicate as draft”&lt;/strong&gt; 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.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;“Duplicate in collection”&lt;/strong&gt; 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.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Besides complete URLs, we also make relative ones like &lt;code&gt;/api/users&lt;/code&gt; interactive. To generate the complete URL, we prefix the relative one with the request’s base URL.&lt;/p&gt;

&lt;p&gt;The prominent place for interactive links is the response body. But you don’t 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  📯 Send requests quicker with POST-auto-switch
&lt;/h2&gt;

&lt;p&gt;When you add a body to a request, it’s unlikely that the default GET method is what you want. There’s nothing wrong with GET requests that include a body, but they’re rarely useful. The most common method for sending data is POST.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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’ll auto-switch to POST" width="880" height="624"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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 &lt;a href="https://httpie.io/docs/cli/optional-get-and-post"&gt;the behavior of HTTPie for Terminal&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🖼 HTTPie for Web has a new icon
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the new icon and an improved sharing appearance on &lt;a href="https://dev.to/app"&gt;httpie.io/app&lt;/a&gt;. Or use the short and sweet &lt;a href="https://req.new"&gt;req.new&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  💆‍♀️ Specify headers without headaches
&lt;/h2&gt;

&lt;p&gt;We’ve 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  🪲 Stability improvements and bug fixes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the macOS Desktop app, the title bar draggability got compromised with many tabs open. Now it’s always draggable.&lt;/li&gt;
&lt;li&gt;Talking about tabs… There was an edge case leading to visual tab flickering. Hopefully, you didn’t run into it.&lt;/li&gt;
&lt;li&gt;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’s a warning dialog. You couldn’t close that warning before, but now you can, ufff!&lt;/li&gt;
&lt;li&gt;When you’re 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.&lt;/li&gt;
&lt;li&gt;We’ve polished a few rough edges in the URL bar syntax and added more granular highlighting.&lt;/li&gt;
&lt;li&gt;Fixed a possible double-submit issue in the “Create environment” dialog.&lt;/li&gt;
&lt;li&gt;Removed an unintended 10MB request body size limit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤗 Happy API testing, and see you again soon!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📋 You can help us improve by completing a &lt;a href="https://httpie.io/survey"&gt;quick survey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 Follow &lt;a href="https://twitter.com/httpie"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord"&gt;Discord community&lt;/a&gt; to stay up to date.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs"&gt;engineering and design roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Changelog #0017 — ☁️ Sync, variables, incognito, more features, and public beta!</title>
      <dc:creator>Jakub Roztocil</dc:creator>
      <pubDate>Fri, 05 Aug 2022 22:06:22 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0017-sync-variables-incognito-more-features-and-public-beta-4hko</link>
      <guid>https://dev.to/pie/changelog-0017-sync-variables-incognito-more-features-and-public-beta-4hko</guid>
      <description>&lt;p&gt;HTTPie is on a mission to make APIs simple and intuitive for all those building the tools of our time. And today, we’re thrilled to announce the biggest release yet and a large step in that direction. Check out what’s new 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔓 Public beta —&lt;/strong&gt; HTTPie Web &amp;amp; Desktop is now publicly available 🎉&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🕵️‍♀️ Incognito mode —&lt;/strong&gt; You can now use the app without an account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;☁️ Real-time sync —&lt;/strong&gt; Your data is now real-time synchronized across devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⬆️ Auto-updates —&lt;/strong&gt; A reworked, more transparent system for updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💲 Variables —&lt;/strong&gt; Work smarter and don’t repeat yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🏞️ Environments —&lt;/strong&gt; A quick way to swap between contexts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌊 cURL import —&lt;/strong&gt; A humble but efficient start of our import system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔒 SSL verification —&lt;/strong&gt; You can now turn off certificate validation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📱 Mobile —&lt;/strong&gt; Now it’s easier than ever to work on touch devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;✨ Other improvements —&lt;/strong&gt; Various changes to improve your experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🪲 Bug fixes —&lt;/strong&gt; Hopefully, we caught them before you noticed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔮 What’s next? —&lt;/strong&gt; A glimpse into the future.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔓 Public beta
&lt;/h2&gt;

&lt;p&gt;After months of development, testing, and collecting feedback in private beta, we’re opening HTTPie for Web &amp;amp; Desktop to everyone today 🚀&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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 — you can use HTTPie for Web &amp;amp; Desktop today" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://httpie.io/app" rel="noopener noreferrer"&gt;go to the Web app&lt;/a&gt; or &lt;a href="https://httpie.io/download" rel="noopener noreferrer"&gt;download the Desktop app&lt;/a&gt; and start using it right away.&lt;/p&gt;

&lt;h3&gt;
  
  
  💌 Thanks to our community and private beta users
&lt;/h3&gt;

&lt;p&gt;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;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’t be more grateful.&lt;/p&gt;

&lt;p&gt;We were submerged in hundreds of thoughtfully answered surveys, messages in our growing &lt;a href="https://httpie.io/discord" rel="noopener noreferrer"&gt;Discord community&lt;/a&gt;, emails, GitHub issues, and Twitter DMs, and we appreciated every single one!&lt;/p&gt;

&lt;p&gt;All that feedback has translated into improvements and features, like the ones included in this release and many more on our roadmap.&lt;/p&gt;

&lt;p&gt;In return, HTTPie swag has found its way all around the world 💫&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🕵️‍♀️ Incognito mode
&lt;/h2&gt;

&lt;p&gt;Now that the private beta fence no longer exists, the account-required wall can be torn down too. And that’s exactly what we’ve done.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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 — you can use HTTPie for Web &amp;amp; Desktop without an account" width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can now use the app without an account. When you are not logged in—when you’re &lt;em&gt;incognito&lt;/em&gt;—you still have access to all features apart from sync and creating new 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!&lt;/p&gt;

&lt;h2&gt;
  
  
  ☁️ Real-time sync
&lt;/h2&gt;

&lt;p&gt;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’s instantly updated on your other clients.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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 — HTTPie for Web&amp;amp;Desktop now has real-time sync" width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Start working in the Web app, switch to the Desktop app, and check some request details on your phone later. And you don’t have to worry about hitting save because we continuously auto-save your work.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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 — HTTPie for Web&amp;amp;Desktop now has real-time sync" width="745" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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’ll simply resume syncing once the connection has been restored. To see the current sync status, check out your account menu:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Data security
&lt;/h3&gt;

&lt;p&gt;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—your requests, auth credentials, variables, etc.—are additionally encrypted at the server-side before storage and decrypted on client access (AES).&lt;/p&gt;

&lt;h2&gt;
  
  
  ⬆️ Auto-updates
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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’t have to install them right away.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  💲Variables
&lt;/h2&gt;

&lt;p&gt;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’t-repeat-yourself way, variables are a game-changer. So here they are!&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Define variables inside the current space’s detail tab. Then you can reference them from any request or collection within the space via &lt;code&gt;{{NAME}}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It’s often helpful to review the full HTTP request with variables already substituted before sending it. To do that, keep the Preview panel open.&lt;/p&gt;

&lt;p&gt;If you reference a variable that doesn’t 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤫 Secret variables
&lt;/h3&gt;

&lt;p&gt;Mark a variable as secret, and we’ll mask its values in the variable list so that you don’t accidentally share them on a Zoom call, for example.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See local-only environments below for other advanced ways to deal with sensitive variables.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏞️ Environments
&lt;/h2&gt;

&lt;p&gt;Environments allow you to quickly swap between different contexts. A common practice is to have an API running in different environments—on your local machine, in staging, in production, etc.&lt;/p&gt;

&lt;p&gt;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’s easier to change them. And with environments, you can instantly toggle between different values for those variables:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can create as many environments as you like and switch between them using the menu at the top right of the app.&lt;/p&gt;

&lt;p&gt;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).&lt;/p&gt;

&lt;p&gt;Every space starts with an empty environment called “Defaults.” It works as a regular environment, and for simple use-cases, you can just use it exclusively.&lt;/p&gt;

&lt;p&gt;When you create additional environments, they use values from Defaults for variables where you don’t explicitly specify a custom value. If you don’t need a default value for a variable, you can simply leave its value in Defaults empty.&lt;/p&gt;

&lt;h3&gt;
  
  
  📍Local-only environments
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When creating an environment, select the option to create a local-only one, and its values will never leave your device.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚫 No environment
&lt;/h3&gt;

&lt;p&gt;In some situations, you might want to temporarily prevent requests from accessing your variables altogether. By selecting the “No environment” option, you can achieve just that:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌊 cURL import
&lt;/h2&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This allows you to quickly import cURL calls from scripts or import requests from Chrome DevTools. Find the “Import…” option under the &lt;code&gt;+&lt;/code&gt; menu in your space library.&lt;/p&gt;

&lt;h3&gt;
  
  
  🪄 cURL import shortcut
&lt;/h3&gt;

&lt;p&gt;There’s also a quick hidden shortcut for importing cURL. Can you guess where?&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just paste a cURL command into the URL field and see what happens 👀&lt;/p&gt;

&lt;h2&gt;
  
  
  🔒 SSL verification
&lt;/h2&gt;

&lt;p&gt;This is a smaller feature, but many of our private beta users have been waiting for it, and we’re 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:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you run into an SSL error and wish to temporarily allow invalid certificates, you can do that straight from the response view:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Turn it on again from the settings when you’re finished.&lt;/p&gt;

&lt;h2&gt;
  
  
  📱 Mobile
&lt;/h2&gt;

&lt;p&gt;We’ve 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.&lt;/p&gt;

&lt;p&gt;Mobile-friendliness is one of those features that you don’t need most of the time. But when you need it, you &lt;em&gt;really&lt;/em&gt; need it. And with HTTPie, you can get work done comfortably from anywhere, anytime.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The mobile experience of the URL bar component is much improved.&lt;/li&gt;
&lt;li&gt;You can now use the Preview &amp;amp; Export feature on small screens.&lt;/li&gt;
&lt;li&gt;Keyboards are now contextual.&lt;/li&gt;
&lt;li&gt;Spacing is more compact and comfortable on small devices.&lt;/li&gt;
&lt;li&gt;You can now access tooltips on touch devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✨ Other improvements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The body type and auth type selectors now have icons. As they say, an icon is worth a thousand labels.&lt;/li&gt;
&lt;li&gt;Error badges are now more minimal, less clunky, and more on brand.&lt;/li&gt;
&lt;li&gt;It’s 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!&lt;/li&gt;
&lt;li&gt;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?&lt;/li&gt;
&lt;li&gt;Placeholders now look more like placeholders.&lt;/li&gt;
&lt;li&gt;Now you see a loading indicator when the app is launching.&lt;/li&gt;
&lt;li&gt;The monospaced font now supports non-Latin characters.&lt;/li&gt;
&lt;li&gt;Text selection is now disabled for all UI elements while keeping content selectable.&lt;/li&gt;
&lt;li&gt;In the desktop app, you can maximize and un-maximize the window by double-clicking the title bar.&lt;/li&gt;
&lt;li&gt;You can also drag the window using the left toolbar, where your profile image resides.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🪲 Bug fixes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;When you renamed a draft, it would change its auth to inherited, as if it was added to a collection. Fixed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔮 What’s next?
&lt;/h2&gt;

&lt;p&gt;This release marks an important milestone on our journey to provide the best experience to anyone working with APIs.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;There’s still a lot of work to fully unlock the potential of APIs, and our roadmap is packed with ambitious milestones. Here’s a sample of the themes we’re focusing on next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👥 Team collaboration&lt;/li&gt;
&lt;li&gt;⚙️ Additional protocols and formats&lt;/li&gt;
&lt;li&gt;⚡ Automation and testing&lt;/li&gt;
&lt;li&gt;🔗 Full interoperability with HTTPie for Terminal&lt;/li&gt;
&lt;li&gt;🎹 Become a keyboard-first app&lt;/li&gt;
&lt;li&gt;🎉 Refreshed website&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Happy API testing, and see you again soon!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📋 You can help us improve by completing a &lt;a href="https://httpie.io/survey" rel="noopener noreferrer"&gt;quick survey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;💲 If you use environments, we have a &lt;a href="https://us16.list-manage.com/survey?u=99f5ce2d00a123af1593451c6&amp;amp;id=56bb113926&amp;amp;attribution=false" rel="noopener noreferrer"&gt;variables-specific survey&lt;/a&gt; as well.&lt;/li&gt;
&lt;li&gt;👉 Follow &lt;a href="https://twitter.com/httpie" rel="noopener noreferrer"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord" rel="noopener noreferrer"&gt;Discord community&lt;/a&gt; to stay up to date.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs" rel="noopener noreferrer"&gt;engineering and design roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published on &lt;a href="https://httpie.io/blog/changelog-0017" rel="noopener noreferrer"&gt;HTTPie blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>httpie</category>
      <category>devtool</category>
      <category>api</category>
    </item>
    <item>
      <title>Changelog #0016 — ℹ️ OPTIONS method, 🔑 param auth, Terminal 3.2, and more</title>
      <dc:creator>Cláudia Delgado</dc:creator>
      <pubDate>Mon, 23 May 2022 13:58:58 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0016-options-method-param-auth-terminal-32-and-more-4d15</link>
      <guid>https://dev.to/pie/changelog-0016-options-method-param-auth-terminal-32-and-more-4d15</guid>
      <description>&lt;h2&gt;
  
  
  HTTPie for Web &amp;amp; Desktop
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ℹ️ OPTIONS method
&lt;/h3&gt;

&lt;p&gt;One more option in the method select — 🥁 — &lt;code&gt;OPTIONS&lt;/code&gt;!&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use &lt;code&gt;OPTIONS&lt;/code&gt; to &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS"&gt;request information&lt;/a&gt; about the communication options available on a given URL or server.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔑 API key auth through parameters
&lt;/h3&gt;

&lt;p&gt;We &lt;a href="https://httpie.io/blog/changelog-0014"&gt;recently&lt;/a&gt; introduced a way to authenticate requests using a custom API key header. Now we’re expanding this auth type with the option to send the API key as a URL parameter:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This allows you to specify your auth at the collection level and have HTTPie add it to the URL automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✍🏻 Font improvements
&lt;/h3&gt;

&lt;p&gt;As with everything else, we &lt;a href="https://httpie.io/blog/changelog-0014"&gt;continue to improve&lt;/a&gt; the monospace variant of our font, and this time we focused on making the &lt;code&gt;0&lt;/code&gt; and &lt;code&gt;O&lt;/code&gt; characters more distinct:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🪲 Bug fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You probably didn’t encounter this, but if you typed fast while having multiple HTTPie browser tabs, the text would start flashing. Fixed!&lt;/li&gt;
&lt;li&gt;Some generated headers (e.g., &lt;code&gt;Content-Type&lt;/code&gt;) weren’t displayed in some preview formats. Now they are.&lt;/li&gt;
&lt;li&gt;Inherited auth was also missing from the preview in some cases.&lt;/li&gt;
&lt;li&gt;Draft requests created via the global &lt;code&gt;+&lt;/code&gt; button could lose their name.&lt;/li&gt;
&lt;li&gt;Fixed an app crash in case of invisible characters in the URL.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  HTTPie for Terminal
&lt;/h2&gt;

&lt;p&gt;HTTPie for Terminal 3.2 is now available 🎉 This version introduces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💅 Refined UI&lt;/li&gt;
&lt;li&gt;📖 Man pages&lt;/li&gt;
&lt;li&gt;📦 Single binary executables&lt;/li&gt;
&lt;li&gt;🌀 Debian releases&lt;/li&gt;
&lt;li&gt;⬆️ Update warnings&lt;/li&gt;
&lt;li&gt;🤩 And more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have a separate post covering this release, check it out 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://httpie.io/blog/httpie-3.2.0"&gt;What’s new in HTTPie for Terminal 3.2 →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Happy testing, and see you next week!
&lt;/h2&gt;

&lt;p&gt;But in the meantime…&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💁🏻‍♀️ If you’re not on the private beta yet, you can &lt;a href="https://httpie.io/beta"&gt;join the waitlist here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 You can also follow &lt;a href="https://twitter.com/httpie"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord"&gt;Discord community&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs"&gt;engineering and design roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published on &lt;a href="https://httpie.io/blog/changelog-0016"&gt;HTTPie blog&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What’s new in HTTPie for Terminal 3.2</title>
      <dc:creator>Jakub Roztocil</dc:creator>
      <pubDate>Tue, 17 May 2022 13:50:47 +0000</pubDate>
      <link>https://dev.to/pie/whats-new-in-httpie-for-terminal-32-3k84</link>
      <guid>https://dev.to/pie/whats-new-in-httpie-for-terminal-32-3k84</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Check out what’s new 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🤩 Refined UI —&lt;/strong&gt; Improved user experience and usability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📖 Man pages —&lt;/strong&gt; HTTPie is finally getting complete manuals available through &lt;code&gt;man httpie&lt;/code&gt;, &lt;code&gt;man http&lt;/code&gt;, and &lt;code&gt;man https&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📦 Single binary executables —&lt;/strong&gt; download HTTPie as a single binary file and run it without installation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌀 Debian releases —&lt;/strong&gt; most recent releases will now be offered also through our custom Apt repo with new releases instantly available for Debian, Ubuntu, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⬆️ Update warnings —&lt;/strong&gt; get notified about new versions as soon as they become available for your system straight in the terminal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚖️ Improved persistence for headers —&lt;/strong&gt; multiple headers with the same name are persisted in the sessions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🪲 Bug fixes —&lt;/strong&gt; multiple headers with the same name are persisted in the sessions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;♥️ Community contributions —&lt;/strong&gt; lots of amazing people who have contributed to this release.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤩 Refined UI
&lt;/h2&gt;

&lt;p&gt;This release brings various UI and UX improvements. For example, here is HTTPie’s new progress bar:&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even though our original progress bar implementation was &lt;a href="https://codecatalog.org/articles/httpie-status-reporting/" rel="noopener noreferrer"&gt;simple and elegant&lt;/a&gt;, we’ve decided to adopt the powerful &lt;a href="https://github.com/Textualize/rich" rel="noopener noreferrer"&gt;Rich&lt;/a&gt; library for various parts of the UI.&lt;/p&gt;

&lt;p&gt;By the way, the example above uses the recently-added &lt;code&gt;--style=pie-dark&lt;/code&gt; style. We highly recommend making it your default style for the best experience and consistency with &lt;a href="https://httpie.io/product" rel="noopener noreferrer"&gt;HTTPie for Web &amp;amp; Desktop&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;📖 &lt;a href="https://httpie.io/docs/cli/colors-and-formatting" rel="noopener noreferrer"&gt;Colors &amp;amp; formatting docs →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📖 Man Pages
&lt;/h2&gt;

&lt;p&gt;The long-awaited man pages are here now. You can use &lt;code&gt;man http&lt;/code&gt; or &lt;code&gt;man https&lt;/code&gt; to have the full man page experience with colors and pager:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ man http
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We have also introduced a shorthand for this operation, &lt;code&gt;http --manual&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ http --manual
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the man pages are available (installed by your platform’s packager), it will automatically open you the HTTPie’s manual. When they are not, this command will open the regular manual but inside of a pager.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;httpie&lt;/code&gt; management command now has a man page as well:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ man httpie
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📖 &lt;a href="https://httpie.io/docs/cli/usage" rel="noopener noreferrer"&gt;Help &amp;amp; manual docs →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 Single binary executables
&lt;/h2&gt;

&lt;p&gt;For Linux systems, we now offer single binary executables which you can download and start using without installation. The new asset named &lt;code&gt;http&lt;/code&gt; now included in every &lt;a href="https://github.com/httpie/httpie/releases/latest" rel="noopener noreferrer"&gt;release of HTTPie on GitHub&lt;/a&gt; is all you need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ https -do http_standalone github.com/httpie/httpie/releases/download/3.2.1/http
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ chmod +x ./http_standalone
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ ./http_standalone --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📖 &lt;a href="https://httpie.io/docs/cli/single-binary-executables" rel="noopener noreferrer"&gt;Single binary installation docs →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🌀 Debian releases
&lt;/h2&gt;

&lt;p&gt;We now host our own Debian Apt repository to provide instant updates with new features to users of Debian, Ubuntu, and other derived distros:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;curl &lt;span class="nt"&gt;-SsL&lt;/span&gt; https://packages.httpie.io/deb/KEY.gpg | apt-key add -
&lt;span class="nv"&gt;$ &lt;/span&gt;curl &lt;span class="nt"&gt;-SsL&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /etc/apt/sources.list.d/httpie.list https://packages.httpie.io/deb/httpie.list
&lt;span class="nv"&gt;$ &lt;/span&gt;apt update
&lt;span class="nv"&gt;$ &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;httpie
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📖 &lt;a href="https://httpie.io/docs/cli/debian-and-ubuntu" rel="noopener noreferrer"&gt;Debian &amp;amp; Ubuntu installation docs →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⬆️ Update warnings
&lt;/h2&gt;

&lt;p&gt;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:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;http pie.dev/get
http: info: A new HTTPie release &lt;span class="o"&gt;(&lt;/span&gt;3.3.0&lt;span class="o"&gt;)&lt;/span&gt; is available.
To see how you can update, please visit https://httpie.io/docs/cli/pypi

HTTP/1.1 200 OK
Content-Encoding: &lt;span class="nb"&gt;gzip
&lt;/span&gt;Content-Type: application/json

&lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="s2"&gt;"args"&lt;/span&gt;: &lt;span class="o"&gt;{}&lt;/span&gt;,
    &lt;span class="s2"&gt;"headers"&lt;/span&gt;: &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="s2"&gt;"Accept"&lt;/span&gt;: &lt;span class="s2"&gt;"*/*"&lt;/span&gt;,
        &lt;span class="s2"&gt;"Accept-Encoding"&lt;/span&gt;: &lt;span class="s2"&gt;"gzip"&lt;/span&gt;,
        &lt;span class="s2"&gt;"Cdn-Loop"&lt;/span&gt;: &lt;span class="s2"&gt;"cloudflare"&lt;/span&gt;,
    &lt;span class="o"&gt;}&lt;/span&gt;,
    &lt;span class="s2"&gt;"url"&lt;/span&gt;: &lt;span class="s2"&gt;"http://pie.dev/get"&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also check the latest release by manually running &lt;code&gt;check-updates&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ httpie cli check-updates
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📖 &lt;a href="https://httpie.io/docs/cli/update-warnings" rel="noopener noreferrer"&gt;Update warning docs →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚖️ Improved persistence for headers
&lt;/h2&gt;

&lt;p&gt;Multiple headers with the same name are now correctly persisted inside sessions. E.g.:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ http --session test pie.dev/headers X-Foo:bar X-Foo:baz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ http --session test pie.dev/headers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For upgrading your old sessions, you can use &lt;code&gt;httpie cli sessions upgrade&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ httpie cli sessions upgrade pie.dev test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To upgrade all named sessions in one go, you can try &lt;code&gt;httpie cli sessions upgrade-all&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ httpie cli sessions upgrade-all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📖 &lt;a href="https://httpie.io/docs/cli/upgrading-sessions" rel="noopener noreferrer"&gt;Session upgrade docs →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Other improvements
&lt;/h2&gt;

&lt;p&gt;Moved &lt;code&gt;httpie plugins *&lt;/code&gt; command to the new &lt;code&gt;httpie cli plugins&lt;/code&gt; namespace. This provides a more scalable namespacing of the management subcommands. The original &lt;code&gt;httpie plugins *&lt;/code&gt; commands are now hidden aliases.&lt;/p&gt;

&lt;h2&gt;
  
  
  🪲 Bug fixes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Removed the redundant addition of &lt;code&gt;Content-Length: 0&lt;/code&gt; header to body-less &lt;code&gt;OPTIONS&lt;/code&gt; requests.&lt;/li&gt;
&lt;li&gt;The thread observing standard input to provide a warning when no data arrives is now properly terminated when HTTPie itself exists.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🐙 &lt;a href="https://github.com/httpie/httpie/blob/master/CHANGELOG.md#320-2022-05-05" rel="noopener noreferrer"&gt;Full changelog →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ♥️ Community contributions
&lt;/h2&gt;

&lt;p&gt;Last but not least, we’d like to thank the amazing people who’ve contributed to this release of HTTPie: &lt;a href="https://github.com/ethanmills" rel="noopener noreferrer"&gt;Ethan Mills&lt;/a&gt;, &lt;a href="https://github.com/blyxxyz" rel="noopener noreferrer"&gt;Jan Verbeek&lt;/a&gt;, &lt;a href="https://github.com/ducaale" rel="noopener noreferrer"&gt;Mohamed Daahir&lt;/a&gt;, &lt;a href="https://github.com/ansman" rel="noopener noreferrer"&gt;Nicklas Ansman Giertz&lt;/a&gt;,  &lt;a href="https://github.com/Oliver-Fish" rel="noopener noreferrer"&gt;Oliver Fish&lt;/a&gt;, &lt;a href="https://github.com/robertolopezlopez" rel="noopener noreferrer"&gt;Roberto López López&lt;/a&gt;, &lt;a href="https://github.com/luzpaz" rel="noopener noreferrer"&gt;luzpaz&lt;/a&gt;, and &lt;a href="https://github.com/zhaohanqing95" rel="noopener noreferrer"&gt;zhaohanqing95&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;🐙 &lt;a href="https://github.com/httpie/httpie/blob/master/CONTRIBUTING.md" rel="noopener noreferrer"&gt;How to contribute →&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Changelog #0015 — 🐑 Duplicating collections and more</title>
      <dc:creator>Cláudia Delgado</dc:creator>
      <pubDate>Mon, 02 May 2022 16:49:02 +0000</pubDate>
      <link>https://dev.to/pie/changelog-0015-duplicating-collections-and-more-3j2k</link>
      <guid>https://dev.to/pie/changelog-0015-duplicating-collections-and-more-3j2k</guid>
      <description>&lt;p&gt;Last week we &lt;a href="https://httpie.io/blog/changelog-0014"&gt;announced Spaces&lt;/a&gt;, 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;amp; Desktop with our cloud sync backend. At the same time, we’ve also shipped a few goodies.&lt;/p&gt;

&lt;p&gt;Check out what's new 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  HTTPie for Web &amp;amp; Desktop
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🐑 Duplicating collections
&lt;/h3&gt;

&lt;p&gt;It’s been possible to duplicate requests for a while. Now you can also duplicate whole collections for even faster reuse.&lt;/p&gt;

&lt;p&gt;&lt;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"&gt;&lt;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"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Other improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;We’ve moved the “Preview &amp;amp; export…” panel toggle up next to the request form tabs based on our users’ feedback. More accessible and easy.&lt;/li&gt;
&lt;li&gt;Look at our new settings icon! You can access your settings through the account menu.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🪲 Bug fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The header name autocomplete dropdown doesn’t hide the name field anymore.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;…&lt;/code&gt; menu in the message panel that allows you to copy the messages was misaligned when activated. It’s fixed now.&lt;/li&gt;
&lt;li&gt;The icon inside the collection tab was too small. Now it has the correct size.&lt;/li&gt;
&lt;li&gt;The settings tab’s checkmarks could sometimes overlap the library in some outstanding layouts. Fixed.&lt;/li&gt;
&lt;li&gt;The new font improvements uncovered an extra backtick we had on the preview type selector. A tiny bug that is now gone.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  HTTPie for Terminal
&lt;/h2&gt;

&lt;p&gt;We’ve been putting the finishing touches on a new 3.2.0 release that we plan to release next week. See &lt;a href="https://httpie.io/blog/changelog-0014"&gt;last week’s changelog&lt;/a&gt; for an &lt;a href="https://httpie.io/blog/changelog-0014#httpie-for-terminal"&gt;overview of the upcoming features&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Happy testing, and see you next week!
&lt;/h2&gt;

&lt;p&gt;But in the meantime…&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💁🏻‍♀️ If you’re not on the private beta yet, you can &lt;a href="https://httpie.io/beta"&gt;join the waitlist here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👉 You can also follow &lt;a href="https://twitter.com/httpie"&gt;@httpie&lt;/a&gt; and join our &lt;a href="https://httpie.io/discord"&gt;Discord community&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;👩‍💻 We’re looking for new colleagues in &lt;a href="https://httpie.io/jobs"&gt;engineering and design roles&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published on &lt;a href="https://httpie.io/blog/changelog-0015"&gt;HTTPie blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>httpie</category>
      <category>api</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
