A browser blocking your own API call isn't a bug in your code - it's CORS doing its job. Configuring named CORS policies correctly in ASP.NET Core, and why AllowAnyOrigin quietly breaks the moment you also need cookies or credentials.
Returning every row and letting the client slice it up doesn't survive real data volume. Server-side pagination in a .NET 8 Minimal API - Skip/Take, pagination metadata in a response header, and a React Pagination component wired to it.
The moment an API has more than one consumer, changing a response shape becomes a breaking change for someone. URL-segment, query-string, and header-based versioning with Asp.Versioning.Http, and which one to actually pick.
Slow external API calls and database queries are usually your bottleneck. Cache them with IMemoryCache - cache keys, absolute vs. sliding expiration, and a real example that drops a Commodities API call from seconds to a few milliseconds.