The honest answer is that deployment is far more varied than the word suggests, and there is no single right approach. APIs get deployed from containers, from serverless functions behind a gateway, from managed platforms, straight out of databases and spreadsheets, and push-button from marketplaces. Each fits different needs, skills and constraints.
Serverless plus a gateway remains one of the most accessible paths: you write the handler, wire it up, and get something that scales from zero without provisioning anything. It collapsed a lot of the infrastructure overhead that used to sit between an idea and a running API. Containers give you more control and portability at the cost of running the platform. Managed API platforms trade flexibility for speed.
The choice that actually matters is not the runtime — it is whether the path from definition to deployed endpoint is repeatable, automated, and observable. Can you redeploy from source and get the identical result? Is the gateway configuration derived from the contract? Is every deployment recorded somewhere you can query later?
Where teams get burned is not choosing “wrong.” It is having six deployment paths across an organization, each hand-operated, none documented, and no consistent way to know what is running.