<?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: 飯野竜矢</title>
    <description>The latest articles on DEV Community by 飯野竜矢 (@tatsuya03).</description>
    <link>https://dev.to/tatsuya03</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4115586%2Fc327dccd-fe80-403a-a370-f55462ee38f7.png</url>
      <title>DEV Community: 飯野竜矢</title>
      <link>https://dev.to/tatsuya03</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tatsuya03"/>
    <language>en</language>
    <item>
      <title>Thunder Client collections to `.http` files without rewriting them by hand</title>
      <dc:creator>飯野竜矢</dc:creator>
      <pubDate>Tue, 08 Sep 2026 11:18:53 +0000</pubDate>
      <link>https://dev.to/tatsuya03/thunder-client-collections-to-http-files-without-rewriting-them-by-hand-2ci4</link>
      <guid>https://dev.to/tatsuya03/thunder-client-collections-to-http-files-without-rewriting-them-by-hand-2ci4</guid>
      <description>&lt;p&gt;Already have a Thunder Client collection export and want requests as files in Git? This guide takes you from that JSON to separate &lt;code&gt;.http&lt;/code&gt; files, then explains the settings you still need before sending a request.&lt;/p&gt;

&lt;p&gt;I publish &lt;a href="https://marketplace.visualstudio.com/items?itemName=buildnestlab.httpcopy" rel="noopener noreferrer"&gt;HttpCopy&lt;/a&gt;, the VS Code converter used below. It converts the first 12 requests per run for free. Pro removes that limit for $9 once. Try the output before buying.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Start with an exported collection
&lt;/h2&gt;

&lt;p&gt;Use a Thunder Client JSON collection export, or a Postman Collection v2.x export. Keep a backup outside Git. Do not remove your original client yet.&lt;/p&gt;

&lt;p&gt;Thunder Client documents right-clicking a collection and choosing &lt;strong&gt;Export&lt;/strong&gt;. Availability can depend on your installed version and plan; check the &lt;a href="https://docs.thunderclient.com/features/import" rel="noopener noreferrer"&gt;official export documentation&lt;/a&gt;. HttpCopy needs the exported JSON. It does not unlock another extension's paid features or recover its internal storage.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Convert in VS Code
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Install &lt;strong&gt;Thunder Client to .http (HttpCopy)&lt;/strong&gt; from the &lt;a href="https://marketplace.visualstudio.com/items?itemName=buildnestlab.httpcopy" rel="noopener noreferrer"&gt;Marketplace&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Open your exported JSON in the workspace.&lt;/li&gt;
&lt;li&gt;Right-click it and choose &lt;strong&gt;HttpCopy: Convert Collection File&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Inspect the generated files in &lt;code&gt;httpcopy-out/&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The following example is from a small synthetic collection, not a customer's data. Its two requests become &lt;code&gt;users/me.http&lt;/code&gt; and &lt;code&gt;login.http&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Relevant generated lines in &lt;code&gt;users/me.http&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;# @name me
GET {{host}}/me
Authorization: {{authorization}}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Relevant generated lines in &lt;code&gt;login.http&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;# @name login
POST {{host}}/login?nudge=1

{"user":"a"}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the conversion output, not a claim that these requests are ready to send. In particular, &lt;code&gt;host&lt;/code&gt; and &lt;code&gt;authorization&lt;/code&gt; still need values.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Configure and check one request before migrating everything
&lt;/h2&gt;

&lt;p&gt;For the free &lt;a href="https://github.com/Huachao/vscode-restclient" rel="noopener noreferrer"&gt;REST Client extension&lt;/a&gt;, you can adapt the first file as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;@host = https://api.example.invalid

# @name me
GET {{host}}/me
Authorization: Bearer {{$processEnv HTTPCOPY_API_TOKEN}}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace the example host with your own test API, and make the token available in the environment of the VS Code process. The &lt;code&gt;.invalid&lt;/code&gt; example domain deliberately does not point to a working service. Only send requests to systems you are authorized to use.&lt;/p&gt;

&lt;p&gt;The generated &lt;code&gt;{{authorization}}&lt;/code&gt; placeholder represents the whole header value. If you supply that variable instead, include the authentication scheme, such as &lt;code&gt;Bearer&lt;/code&gt;, as well as the token.&lt;/p&gt;

&lt;p&gt;For the JSON POST above, add &lt;code&gt;Content-Type: application/json&lt;/code&gt; before the blank line if your API requires it. HttpCopy 0.1.2 preserves the supplied headers; it does not infer this header for that sample.&lt;/p&gt;

&lt;p&gt;Compare the URL, headers and body against your original request. Start with a harmless GET. Once you have verified the converted requests and reviewed their contents, commit the files you want to keep.&lt;/p&gt;

&lt;h2&gt;
  
  
  What “redaction” covers
&lt;/h2&gt;

&lt;p&gt;By default, HttpCopy replaces recognized sensitive header values and supported authentication values with placeholders. It runs locally and does not upload the collection or send the requests.&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;not a complete secret scanner&lt;/strong&gt;. Secrets in URLs, query strings, request bodies or collection variables can remain in the output. Review those fields before committing. Do not post real tokens, customer data or complete private collections in comments.&lt;/p&gt;

&lt;p&gt;Other limits: pre-request scripts are not executed, multipart file bodies are not recreated, and converting a collection does not prove that the resulting requests behave identically. Existing output files are skipped instead of overwritten; use a new output folder when checking a different conversion.&lt;/p&gt;

&lt;h2&gt;
  
  
  When the $9 version is useful
&lt;/h2&gt;

&lt;p&gt;Use the free conversion to check your request shapes first. If you have a larger exported collection and want it converted in one run, &lt;a href="https://buy.stripe.com/fZu9AV2Bsbkg5vLazsaAw08" rel="noopener noreferrer"&gt;HttpCopy Pro costs $9 USD once&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After payment, follow the receipt-email instructions on Stripe's confirmation page. License delivery is currently manual, not instant. Paste the delivered key using &lt;strong&gt;HttpCopy: Enter License Key&lt;/strong&gt;, then rerun the conversion. Files already present are left untouched.&lt;/p&gt;

&lt;p&gt;For a few requests, writing &lt;code&gt;.http&lt;/code&gt; files manually may be enough. HttpCopy is an option for saving that repetitive conversion work, not a replacement HTTP client.&lt;/p&gt;

&lt;p&gt;If you try it, which step stops you: obtaining an export, converting it, configuring the first request, or deciding whether Pro is useful? A description with made-up values is enough; no private collection is needed.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>thunderclient</category>
      <category>http</category>
      <category>rest</category>
    </item>
  </channel>
</rss>
