Start here. This is the direct spoken answer to practice first.
Why this matters
Controllers and minimal APIs share the same ASP.NET Core host but offer different organization and extension models. The useful choice is the one that keeps a service's endpoint contracts consistent as it grows.
Controllers group actions into classes and use MVC conventions, attributes, filters, and action results. Minimal APIs map endpoints directly with route mappings and can be concise. I use controllers when a large resource-oriented API benefits from structure and conventions. I use minimal APIs for small services, focused endpoint groups, or internal APIs where directness improves readability.