<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Gursimran Singh Bhatia on Medium]]></title>
        <description><![CDATA[Stories by Gursimran Singh Bhatia on Medium]]></description>
        <link>https://medium.com/@gursimranbhatia?source=rss-df0f1f2a42d1------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*29Bw-z5L7v9Wmi-by6CRVg.jpeg</url>
            <title>Stories by Gursimran Singh Bhatia on Medium</title>
            <link>https://medium.com/@gursimranbhatia?source=rss-df0f1f2a42d1------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 04:31:18 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@gursimranbhatia/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[There’s More to APIs Than REST]]></title>
            <link>https://medium.com/@gursimranbhatia/theres-more-to-apis-than-rest-cdde3ebbd57f?source=rss-df0f1f2a42d1------2</link>
            <guid isPermaLink="false">https://medium.com/p/cdde3ebbd57f</guid>
            <category><![CDATA[microservices]]></category>
            <dc:creator><![CDATA[Gursimran Singh Bhatia]]></dc:creator>
            <pubDate>Fri, 22 May 2026 07:17:35 GMT</pubDate>
            <atom:updated>2026-05-22T07:17:35.740Z</atom:updated>
            <content:encoded><![CDATA[<p>Most of us learned REST first and kind of just… stayed there. It works, so why look further, right?</p><p>Turns out there are 6 other API types worth knowing. Not because REST is bad, but because some problems genuinely need a different tool.</p><p><strong>REST</strong></p><p>The default for a reason. Stateless, HTTP-based, and everyone on your team already knows it. Great for most web and mobile apps.It starts showing cracks when your client needs very specific data — you either fetch too much or make too many calls. But for 80% of use cases, REST is fine.</p><p><strong>SOAP</strong></p><p>Probably the one you’ll least choose voluntarily. XML-heavy and verbose. But if you’re ever integrating with a bank or a healthcare system, it’s almost certainly SOAP on the other end.The strictness that makes it annoying is also what makes it trusted in regulated industries. You don’t have to like it, but it’s good to know it exists.</p><p><strong>gRPC</strong></p><p>This one clicked for me when I started working with microservices. Instead of JSON, it uses binary (Protocol Buffers) over HTTP/2 — which means faster and smaller payloads.The tradeoff is debugging is less straightforward. But for internal service-to-service calls where you own both sides, it’s noticeably more efficient than REST.</p><p><strong>GraphQL</strong></p><p>The client asks for exactly what it needs. No over-fetching, fewer round trips. Frontend devs love it because they’re not waiting on backend changes to update a view.Where it gets messy: badly written queries can murder your database. It moves complexity from the API into query design and resolvers. Worth it when used carefully.</p><p><strong>Webhooks</strong></p><p>Simple concept — instead of your app asking “anything new?”, the other service calls you when something happens. Way more efficient than polling.You do need to handle retries and verify incoming requests, but for payment events or third-party integrations, it’s cleaner than constantly checking for updates.</p><p><strong>WebSockets</strong></p><p>HTTP is request-response. You ask, you get an answer, connection closes. WebSockets keep the connection open so the server can push data whenever it wants.Useful for chat, live dashboards, anything where waiting to be asked doesn’t make sense. Managing connections at scale takes some thought, but the model itself is straightforward.</p><p><strong>WebRTC</strong></p><p>Peer-to-peer, no server in the middle for the actual data. Built for real-time audio and video. It’s what powers most video calling apps</p><p><strong>So when do you use what?</strong></p><ul><li>Request/response, standard data → **REST**</li><li>- Client needs very specific data shapes → **GraphQL**</li><li>- Fast internal service calls → **gRPC**</li><li>- React to external events → **Webhooks**</li><li>- Server pushes updates live → **WebSockets**</li><li>- Real-time audio/video → **WebRTC**</li><li>- Someone else’s legacy system → **SOAP**</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cdde3ebbd57f" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>