<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sqlite on API Coding</title>
    <link>https://apicoding.com/tags/sqlite/</link>
    <description>Recent content in Sqlite on API Coding</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 05 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://apicoding.com/tags/sqlite/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A Tiny ETL Binary Competes With curl, jq and SQLite in a Cron Job, So Build It That Small</title>
      <link>https://apicoding.com/a-tiny-etl-binary-competes-with-curl-jq-and-sqlite-in-a-cron-job-so-build-it-that-small/</link>
      <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://apicoding.com/a-tiny-etl-binary-competes-with-curl-jq-and-sqlite-in-a-cron-job-so-build-it-that-small/</guid>
      <description>&lt;p&gt;The real competitor is a shell script in a crontab, and it usually looks like this:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -s &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://api.example.com/v1/launches?limit=100&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;&lt;/span&gt;  | jq -r &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.data[] | [.id, .name, .net] | @csv&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;&lt;/span&gt;  | sqlite3 -csv launches.db &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.import /dev/stdin launches&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It works on the day you write it. Then the API answers 429 and curl pipes an error page into jq. Or the API has a second page, and the script never asks for it. When the job dies halfway, the rerun inserts the same rows again or trips over the primary key, depending on how the table was made. A field that starts arriving as a string goes unnoticed until a chart looks wrong. Retries, backoff, pagination, incremental state, idempotent writes and schema drift: that&amp;rsquo;s the list, and shell scripts get every item on it wrong in predictable ways. (To be fair, &lt;code&gt;curl --retry&lt;/code&gt; covers the first two.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Keeping Third-Party API Responses in SQLite Gets You a Cache, an Offline Mode and a History</title>
      <link>https://apicoding.com/keeping-third-party-api-responses-in-sqlite-gets-you-a-cache-an-offline-mode-and-a-history/</link>
      <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://apicoding.com/keeping-third-party-api-responses-in-sqlite-gets-you-a-cache-an-offline-mode-and-a-history/</guid>
      <description>&lt;p&gt;The first version of an API cache is a dictionary with a timeout. The second is Redis holding a JSON string under a key built from the URL. The third gets written after an incident, when somebody needs to know what the weather provider returned on Tuesday and the cache has already replaced it with Wednesday&amp;rsquo;s answer. Every app that depends on an outside API walks the same path: a cache, then a retry layer, then a debugging log, then a wish that it had kept the old responses.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stop Reparsing the Same Big JSON Documents: Persist Them as Indexed Binary Instead</title>
      <link>https://apicoding.com/stop-reparsing-the-same-big-json-documents-persist-them-as-indexed-binary-instead/</link>
      <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://apicoding.com/stop-reparsing-the-same-big-json-documents-persist-them-as-indexed-binary-instead/</guid>
      <description>&lt;p&gt;A service loads a 40 MB product catalog from disk every time a worker starts. It parses the JSON into objects, builds a map from SKU to product, and answers price lookups until the next deploy. The parse costs seconds of startup. The object tree often costs several times the file&amp;rsquo;s size in memory, and every worker holds its own copy. A typical request touches two fields of one product. Multiply that by every deploy, every autoscale event and every cold start. Nothing here is broken. The format was built for exchange and it&amp;rsquo;s being used as a database.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
