What is a "stage" in the context of Amazon API Gateway? What is it's purpose and how to create one?
Is there any relation to "staging" in the production/staging/development convention?
What is a "stage" in the context of Amazon API Gateway? What is it's purpose and how to create one?
Is there any relation to "staging" in the production/staging/development convention?
Although you can use Stages as part of a different stages in your pipeline or environments this goes against AWS best practice for managing environments.
If you want a development environment, then create a development user/account and deploy using that. Likewise other environments like Production or Pre-Production.
Which does then beg the question about what Stages actually are in AWS gateways used for? Whenever I've used them I've put a sensible placeholder there.
I would consider API Gateway stages as different stages in your pipeline or different environments of your stack for the same application. You can have as many stages as you want. In a simple stack, we can think of 3 stages: dev, qa and prod. Few things which you can do with stages:
https://api-gateway-domain/dev/...
, https://api-gateway-domain/qa/..
,https://api-gateway-domain/prod/..
. Basically the URL would be https://api-gateway-domain/<stage_name>/..
. You can consider an API Gateway stage as a specific lifecycle stage or version of your API.
For example:
From these stages you can configure things like throttling and caching.
Use "v1". If you need to deploy breaking changes while still servicing clients that use the current version and cannot be updated, you can create v2 and keep them both running at the same time.