AWS API gateway reconciler
AWS API gateway reconciler checks and merges openapi schemas from services. Reconciler is cdk library construct, which could be deployed as part of AWS CDK application
npm i @affinidi/api-gw-reconciler
- Merging openapi schemas from different services in one openapi schema and updating single API gateway
- Checking for backwards compatibilty of schema
- schema path authentication for specifc service path prefix
- Pinning 1 schema to provide authorizers
- Generates and publishes json api doc
- Generates and publishes ReDoc HTML documentation
- Token Auth for documentation
For more complex example, take a look into [examples]
//Create API gw somewhere
const api = new apigateway.RestApi(this, 'api')
api.root.addMethod('ANY')
Create reconciler
//Reference apigateway in reconciler stack
const restApiId = 'fe3sdf4x'
restApiReference = apigateway.RestApi.fromRestApiId(this, 'restApiReference', restApiId)
//Create reconsiler
const reconciler = new APIGWReconciler(this, 'reconciler', {
restAPI: restApiReference
allowedAccounts: [
{
allowedApiPathPrefix: 'service1',
id: '1111111111'
},
{
allowedApiPathPrefix: 'service2',
id: '22222222222'
},
]
})
Upload openapi.json schema in service stack
const oas = {
"openapi": "3.0.0",
"paths:" : [...]
...
}
new BucketDeployment(this, 'openapiSchemaDeployment', {
destinationBucket: this.reconciler.openApiDefinitionBucket,
destinationKeyPrefix: 'service1',
prune: false,
sources: [Source.jsonData('openapi.json', oas)],
})
Take a look into detailed example
Please open an issue for support.
Please contribute using Github Flow. Create a branch, add commits, and open a pull request.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!