Skip to content
This repository was archived by the owner on Aug 7, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions content/en/references/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ This section covers configuration options that are specific to certain AWS servi

| Variable | Example Values | Description |
| - | - | - |
| `PROVIDER_OVERRIDE_APIGATEWAY` | `next_gen` | Use [the new API Gateway implementation]({{< ref "user-guide/aws/apigateway#new-api-gateway-implementation" >}}) for both API Gateway v1 and v2, available since LocalStack 3.8. |
| `PROVIDER_OVERRIDE_APIGATEWAY` | `legacy`\|`next_gen` (default)| The [new API Gateway implementation]({{< ref "user-guide/aws/apigateway#new-api-gateway-implementation" >}}) is active by default since LocalStack 4.0. |

### AppSync

Expand Down Expand Up @@ -296,10 +296,8 @@ Please consult the [migration guide]({{< ref "user-guide/aws/lambda#migrating-to

| Variable | Example Values | Description |
| - | - | - |
| `S3_DIR` || **Deprecated since 3.0.0** This is only supported for the `legacy_v2` provider. Configure a global parent directory that contains all buckets as sub-directories (`S3_DIR=/path/to/root`) or an individual directory that will get mounted as special bucket names (`S3_DIR=/path/to/root/bucket1:bucket1`). Only available for Localstack Pro.
| `S3_SKIP_SIGNATURE_VALIDATION`| `0` \| `1` (default) | Used to toggle validation of S3 pre-signed URL request signature. Set to `0` to validate. Note that validation can only pass if the `AWS_SECRET_ACCESS_KEY` is set to `test` or if using credentials returned from `STS.AssumeRole` |
| `S3_SKIP_KMS_KEY_VALIDATION` | `0` \| `1` (default) | Used to toggle validation of provided KMS key in S3 operations. |
| `PROVIDER_OVERRIDE_S3` | `legacy_v2` \| `v3` (default) | The new LocalStack-native S3 provider (v3) is active by default since LocalStack 3.0. |

### StepFunctions

Expand Down Expand Up @@ -433,6 +431,7 @@ These configurations have already been removed and **won't have any effect** on

| Variable | Removed in | Example Values | Description |
| - | - | - | - |
| `S3_DIR` | 4.0.0 | | `/path/to/root` | This was only supported for the `legacy_v2` provider. Configure a global parent directory that contains all buckets as sub-directories (`S3_DIR=/path/to/root`) or an individual directory that will get mounted as special bucket names (`S3_DIR=/path/to/root/bucket1:bucket1`). Only available for Localstack Pro.
| `<SERVICE>_BACKEND` | 3.0.0 | `http://localhost:7577` | Custom endpoint URL to use for a specific service, where `<SERVICE>` is the uppercase service name. |
| `<SERVICE>_PORT_EXTERNAL` | 3.0.0 | `4567` | Port number to expose a specific service externally . `SQS_PORT_EXTERNAL`, e.g. , is used when returning queue URLs from the SQS service to the client. |
| `ACTIVATE_NEW_POD_CLIENT` | 3.0.0 | `0`\|`1` (default) | Whether to use the new Cloud Pods client leveraging LocalStack container's APIs. |
Expand Down
37 changes: 23 additions & 14 deletions content/en/user-guide/aws/apigateway/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,14 +194,21 @@ Create a new deployment for the API using the [`CreateDeployment`](https://docs.
{{< command >}}
$ awslocal apigateway create-deployment \
--rest-api-id <REST_API_ID> \
--stage-name test
--stage-name dev
{{< /command >}}

Your API is now ready to be invoked.
You can use [curl](https://curl.se/) or any HTTP REST client to invoke the API endpoint:

{{< command >}}
$ curl -X GET http://localhost:4566/restapis/<REST_API_ID>/test/_user_request_/test
$ curl -X GET http://<REST_API_ID>.execute-api.localhost.localstack.cloud:4566/dev/test

{"message":"Hello World"}
{{< /command >}}

You can also use our [alternative URL format]({{< ref "#alternative-u-r-l-format" >}}) in case of DNS issues:
{{< command >}}
$ curl -X GET http://localhost:4566/_aws/execute-api/<REST_API_ID>/dev/test

{"message":"Hello World"}
{{< /command >}}
Expand All @@ -210,9 +217,11 @@ $ curl -X GET http://localhost:4566/restapis/<REST_API_ID>/test/_user_request_/t

{{< callout >}}

Since [3.8.0](https://blog.localstack.cloud/localstack-release-v-3-8-0/#new-api-gateway-provider), LocalStack supports a new API Gateway implementation for both API Gateway v1 (REST API) and v2 (HTTP API).
Since `4.0`, LocalStack uses a new API Gateway implementation for both API Gateway v1 (REST API) and v2 (HTTP API) by default.

It was released in [3.8.0](https://blog.localstack.cloud/localstack-release-v-3-8-0/#new-api-gateway-provider).
If you are using LocalStack 4.0 and have been using the new implementation, please remove the [following flag]({{< ref "configuration#api-gateway" >}}) `PROVIDER_OVERRIDE_APIGATEWAY=next_gen` as it is now default.
Comment on lines +220 to +223
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really like the wording here, not sure how to make it better 🤔


You can [set the following flag]({{< ref "configuration#api-gateway" >}}) `PROVIDER_OVERRIDE_APIGATEWAY=next_gen` to use the new implementation.
{{< /callout >}}

We're entirely reworked how REST and HTTP APIs are invoked, to closely match the behavior on AWS.
Expand Down Expand Up @@ -299,29 +308,29 @@ http://0v1p6q6.execute-api.localhost.localstack.cloud:4566/my/path1

#### Alternative URL format

{{< callout >}}
If you are using the [new API Gateway implementation]({{< ref "#new-api-gateway-implementation" >}}), the `_user_request_` format is deprecated, and you should use the following:
The alternative URL format is an endpoint with the predefined base path `/_aws/execute-api`:

```shell
http://localhost:4566/_aws/execute-api/<apiId>/<stageId>/<path>
```

This new endpoint more closely resembles the recommended URL format, and allows you to use HTTP APIs with a `$default` stage.
{{< /callout >}}

The alternative URL format is an endpoint with the predefined path marker `_user_request_`:
For the example above, the URL would be:

```shell
http://localhost:4566/restapis/<apiId>/<stageId>/_user_request_/<path>
http://localhost:4566/_aws/execute-api/0v1p6q6/local/my/path1
```

For the example above, the URL would be:
This format is sometimes used in case of local DNS issues.

{{< callout >}}

If you are using LocalStack 4.0, the following `_user_request_` format is deprecated, and you should use the format above.

```shell
http://localhost:4566/restapis/0v1p6q6/local/_user_request_/my/path1
http://localhost:4566/restapis/<apiId>/<stageId>/_user_request_/<path>
```

This format is sometimes used in case of local DNS issues.
{{< / callout >}}

### WebSocket APIs (Pro)

Expand Down