<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>API Design on Ikwuka Okoye</title><link>https://ikwukao.dev/tags/api-design/</link><description>Recent content in API Design on Ikwuka Okoye</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sun, 09 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ikwukao.dev/tags/api-design/index.xml" rel="self" type="application/rss+xml"/><item><title>Caching API Responses in PokedexCLI: Reducing Network Work in Go</title><link>https://ikwukao.dev/journal/pokedexcli-caching/</link><pubDate>Sun, 09 Aug 2026 00:00:00 +0000</pubDate><guid>https://ikwukao.dev/journal/pokedexcli-caching/</guid><description>&lt;h2 id="caching-api-responses-in-pokedexcli-reducing-network-work-in-go"&gt;Caching API Responses in PokedexCLI: Reducing Network Work in Go&lt;/h2&gt;
&lt;p&gt;One of the easiest performance problems to overlook in an API-driven application is repeated work.&lt;/p&gt;
&lt;p&gt;If an application repeatedly requests the same resource from a remote service, every request introduces network latency and another dependency on the availability of that service.&lt;/p&gt;
&lt;p&gt;PokedexCLI provides a useful environment for exploring this problem because the application repeatedly interacts with the Pokémon API while the user navigates locations and explores areas.&lt;/p&gt;</description></item><item><title>Designing a CLI Architecture for PokedexCLI in Go</title><link>https://ikwukao.dev/journal/pokedexcli-architecture/</link><pubDate>Sun, 09 Aug 2026 00:00:00 +0000</pubDate><guid>https://ikwukao.dev/journal/pokedexcli-architecture/</guid><description>&lt;h2 id="designing-a-cli-architecture-for-pokedexcli-in-go"&gt;Designing a CLI Architecture for PokedexCLI in Go&lt;/h2&gt;
&lt;p&gt;Building a command-line application can look deceptively simple.&lt;/p&gt;
&lt;p&gt;At first, the requirements for PokedexCLI seem straightforward: accept a command, execute it, call the Pokémon API when necessary, and print the result.&lt;/p&gt;
&lt;p&gt;But even a small CLI becomes difficult to maintain when command handling, application state, networking, caching, and presentation logic are allowed to grow together.&lt;/p&gt;
&lt;p&gt;For PokedexCLI, I wanted to approach the problem as a real software-engineering exercise rather than simply building a collection of commands that happened to work.&lt;/p&gt;</description></item></channel></rss>