<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Api-Gateway - vo.rs</title><link>https://vo.rs/tags/api-gateway/</link><description>Latest from the Api-Gateway desk at vo.rs.</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Tue, 09 Sep 2025 10:00:00 +0000</lastBuildDate><atom:link href="https://vo.rs/tags/api-gateway/" rel="self" type="application/rss+xml"/><item><title>LiteLLM: One API Gateway for Every Model</title><link>https://vo.rs/story/litellm-one-api-gateway-for-every-model/</link><description>&lt;p&gt;Somewhere around my fourth self-hosted model backend, I noticed every one of my scripts had a slightly different way of talking to it. The &lt;a href="https://vo.rs/story/local-ai-on-your-own-metal-running-llms-with-ollama/"&gt;Ollama&lt;/a&gt; box used its native API for one script and the OpenAI-compat shim for another. The &lt;a href="https://vo.rs/story/vllm-serving-local-models-fast-enough-to-use/"&gt;vLLM&lt;/a&gt; server took a different base URL and a different model-name format. And two of my tools still called out to a cloud provider directly whenever the local box was overloaded, with their own hard-coded API key sitting in a config file I kept forgetting was there. None of this was hard, individually. Collectively, it was the kind of accumulated friction that means you stop experimenting because switching backends is annoying.&lt;/p&gt;</description><pubDate>Tue, 09 Sep 2025 10:00:00 +0000</pubDate></item></channel></rss>