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 all 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-url-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