Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(apigatewayv2): fork APIGatewayV2 into its own package #5816

Merged
merged 6 commits into from
Jan 16, 2020

Conversation

nija-at
Copy link
Contributor

@nija-at nija-at commented Jan 15, 2020

To preserve backwards compatibility for existing customers, the
generated file apigatewayv2.generated.ts has been copied over as
apigatewayv2.ts. Throughout this file, the API stability has been
noted as deprecated with the note that it has been moved to the new
package.

MOTIVATION

The APIGatewayV2 service APIs are a substantial revision over v1. While
some of the fundamental primitives look and sound similar, such as
Deployment and Stage, the properties they hold and their relationships
have changed subtly.
For instance, in v1, Integration was defined inline to the Method, while
in v2, Integration is modeled as a first class resource. This means that
the same Integration resource can be used across multiple Methods.

The list of properties and their keys that are part of the resource
types with the same name across the two versions vary subtly.
For instance, with the Authorizer resource type across the two versions,
the same property is named AuthorizerCredentialsArn on one and
AuthorizerCredentials in the other.

There is also substantial differences in the two versions of the APIs.
While it's generally true that v1 supports more features than v2, given
that it launched first, there are several cases where the features in
versions have signficantly diverged.
For instance, v1 supports authorizer types - Token, Request and Cognito -
while v2 supports authorizer types - Jwt and Request.

Considering all of these differences between the two versions, trying to
keep both v1 and v2 within the same package would mean that there would
one of two options - either they are modeled behind existing CDK
constructs or as separate ones. With the former option, the complexity
of the construct would increase significantly with having to model the
varying properties, validations and relationships between v1 and v2.
With the latter option, there would be CDK constructs suffixed with
V2 which don't result in a good customer experience.

Finally, there is enough signal here to indicate that the APIGateway
team is motivated to move all of their customers using the new HTTP APIs
in v2. The HTTP APIs (in v2) are cheaper to operate than its
counterpart, the Rest APIs (in v1).


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

@nija-at nija-at added the contribution/core This is a PR that came from AWS. label Jan 15, 2020
@nija-at nija-at requested review from rix0rrr and eladb January 15, 2020 19:07
@nija-at nija-at changed the title feat(apigatewayv2): new CDK package available for APIGatewayV2 feat(apigatewayv2): fork APIGatewayV2 into its own package Jan 15, 2020
To preserve backwards compatibility for existing customers, the
generated file `apigatewayv2.generated.ts` has been copied over as
`apigatewayv2.ts`. Throughout this file, the API stability has been
noted as deprecated with the note that it has been moved to the new
package.

MOTIVATION

The APIGatewayV2 service APIs are a substantial revision over v1. While
some of the fundamental primitives look and sound similar, such as
Deployment and Stage, the properties they hold and their relationships
have changed subtly.
For instance, in v1, Integration was defined inline to the Method, while
in v2, Integration is modeled as a first class resource. This means that
the same Integration resource can be used across multiple Methods.

The list of properties and their keys that are part of the resource
types with the same name across the two versions vary subtly.
For instance, with the Authorizer resource type across the two versions,
the same property is named AuthorizerCredentialsArn on one and
AuthorizerCredentials in the other.

There is also substantial differences in the two versions of the APIs.
While it's generally true that v1 supports more features than v2, given
that it launched first, there are several cases where the features in
versions have signficantly diverged.
For instance, v1 supports authorizer types - Token, Request and Cognito -
while v2 supports authorizer types - Jwt and Request.

Considering all of these differences between the two versions, trying to
keep both v1 and v2 within the same package would mean that there would
one of two options - either they are modeled behind existing CDK
constructs or as separate ones. With the former option, the complexity
of the construct would increase significantly with having to model the
varying properties, validations and relationships between v1 and v2.
With the latter option, there would be CDK constructs suffixed with
`V2` which don't result in a good customer experience.

Finally, there is enough signal here to indicate that the APIGateway
team is motivated to move all of their customers using the new HTTP APIs
in v2. The HTTP APIs (in v2) are cheaper to operate than its
counterpart, the Rest APIs (in v1).
@nija-at nija-at added the pr/do-not-merge This PR should not be merged at this time. label Jan 15, 2020
@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • Result: FAILED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • Result: FAILED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

packages/@aws-cdk/aws-apigateway/README.md Outdated Show resolved Hide resolved
@bionicles
Copy link

Thanks so much! How do you interpret the build logs? It seems pretty complicated to parse that output into specific actions

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • Result: FAILED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • Result: FAILED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • Result: FAILED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@nija-at nija-at merged commit d58667e into master Jan 16, 2020
@nija-at nija-at deleted the nija-at/apigatewayv2-setup branch January 16, 2020 11:56
@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution/core This is a PR that came from AWS. pr/do-not-merge This PR should not be merged at this time.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants