@softchef/cdk-restapi
Version:
Easy to manage Rest-API
77 lines • 9.05 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const lambda = require("aws-cdk-lib/aws-lambda-nodejs");
const cdk = require("aws-cdk-lib/core");
const index_1 = require("../index");
const app = new cdk.App();
const stack = new cdk.Stack(app, 'cdk-restapi-demo');
const LAMBDA_ASSETS_PATH = path.join(__dirname, '../../src/demo/functions');
const demoRestApi = new index_1.RestApi(stack, 'RestApiDemo', {
resources: [
{
path: '/articles',
httpMethod: index_1.HttpMethod.GET,
lambdaFunction: new lambda.NodejsFunction(stack, 'GetArticles', {
entry: `${LAMBDA_ASSETS_PATH}/articles/get-articles/app.ts`,
}),
},
{
path: '/articles',
httpMethod: index_1.HttpMethod.POST,
lambdaFunction: new lambda.NodejsFunction(stack, 'CreateArticle', {
entry: `${LAMBDA_ASSETS_PATH}/articles/create-article/app.ts`,
}),
},
{
path: '/articles/{articleId}',
httpMethod: index_1.HttpMethod.GET,
lambdaFunction: new lambda.NodejsFunction(stack, 'GetArticle', {
entry: `${LAMBDA_ASSETS_PATH}/articles/get-article/app.ts`,
}),
},
{
path: '/articles/{articleId}',
httpMethod: index_1.HttpMethod.PUT,
lambdaFunction: new lambda.NodejsFunction(stack, 'UpdateArticle', {
entry: `${LAMBDA_ASSETS_PATH}/articles/update-article/app.ts`,
}),
},
{
path: '/articles/{articleId}/comments',
httpMethod: index_1.HttpMethod.GET,
lambdaFunction: new lambda.NodejsFunction(stack, 'GetComments', {
entry: `${LAMBDA_ASSETS_PATH}/articles/get-comments/app.ts`,
}),
},
{
path: '/articles/{articleId}/comments',
httpMethod: index_1.HttpMethod.POST,
lambdaFunction: new lambda.NodejsFunction(stack, 'CreateComment', {
entry: `${LAMBDA_ASSETS_PATH}/articles/create-comment/app.ts`,
}),
},
{
path: '/authors',
httpMethod: index_1.HttpMethod.GET,
lambdaFunction: new lambda.NodejsFunction(stack, 'GetAuthors', {
entry: `${LAMBDA_ASSETS_PATH}/authors/get-authors/app.ts`,
}),
},
{
path: '/authors/{authorId}',
httpMethod: index_1.HttpMethod.GET,
lambdaFunction: new lambda.NodejsFunction(stack, 'GetAuthor', {
entry: `${LAMBDA_ASSETS_PATH}/authors/get-author/app.ts`,
}),
},
],
enableCors: true,
});
new cdk.CfnOutput(stack, 'ApiId', {
value: demoRestApi.restApiId,
});
new cdk.CfnOutput(stack, 'ApiUrl', {
value: demoRestApi.url,
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZW1vL2RlbW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBNkI7QUFDN0Isd0RBQXdEO0FBQ3hELHdDQUF3QztBQUN4QyxvQ0FBK0M7QUFFL0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBRXJELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztBQUU1RSxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFO0lBQ3BELFNBQVMsRUFBRTtRQUNUO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsVUFBVSxFQUFFLGtCQUFVLENBQUMsR0FBRztZQUMxQixjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBQzlELEtBQUssRUFBRSxHQUFHLGtCQUFrQiwrQkFBK0I7YUFDNUQsQ0FBQztTQUNIO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsV0FBVztZQUNqQixVQUFVLEVBQUUsa0JBQVUsQ0FBQyxJQUFJO1lBQzNCLGNBQWMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRTtnQkFDaEUsS0FBSyxFQUFFLEdBQUcsa0JBQWtCLGlDQUFpQzthQUM5RCxDQUFDO1NBQ0g7UUFDRDtZQUNFLElBQUksRUFBRSx1QkFBdUI7WUFDN0IsVUFBVSxFQUFFLGtCQUFVLENBQUMsR0FBRztZQUMxQixjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBQzdELEtBQUssRUFBRSxHQUFHLGtCQUFrQiw4QkFBOEI7YUFDM0QsQ0FBQztTQUNIO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLFVBQVUsRUFBRSxrQkFBVSxDQUFDLEdBQUc7WUFDMUIsY0FBYyxFQUFFLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFO2dCQUNoRSxLQUFLLEVBQUUsR0FBRyxrQkFBa0IsaUNBQWlDO2FBQzlELENBQUM7U0FDSDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGdDQUFnQztZQUN0QyxVQUFVLEVBQUUsa0JBQVUsQ0FBQyxHQUFHO1lBQzFCLGNBQWMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtnQkFDOUQsS0FBSyxFQUFFLEdBQUcsa0JBQWtCLCtCQUErQjthQUM1RCxDQUFDO1NBQ0g7UUFDRDtZQUNFLElBQUksRUFBRSxnQ0FBZ0M7WUFDdEMsVUFBVSxFQUFFLGtCQUFVLENBQUMsSUFBSTtZQUMzQixjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUU7Z0JBQ2hFLEtBQUssRUFBRSxHQUFHLGtCQUFrQixpQ0FBaUM7YUFDOUQsQ0FBQztTQUNIO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixVQUFVLEVBQUUsa0JBQVUsQ0FBQyxHQUFHO1lBQzFCLGNBQWMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFDN0QsS0FBSyxFQUFFLEdBQUcsa0JBQWtCLDZCQUE2QjthQUMxRCxDQUFDO1NBQ0g7UUFDRDtZQUNFLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsVUFBVSxFQUFFLGtCQUFVLENBQUMsR0FBRztZQUMxQixjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBQzVELEtBQUssRUFBRSxHQUFHLGtCQUFrQiw0QkFBNEI7YUFDekQsQ0FBQztTQUNIO0tBQ0Y7SUFDRCxVQUFVLEVBQUUsSUFBSTtDQUNqQixDQUFDLENBQUM7QUFFSCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRTtJQUNoQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFNBQVM7Q0FDN0IsQ0FBQyxDQUFDO0FBQ0gsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7SUFDakMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxHQUFHO0NBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgUmVzdEFwaSwgSHR0cE1ldGhvZCB9IGZyb20gJy4uL2luZGV4JztcblxuY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbmNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayhhcHAsICdjZGstcmVzdGFwaS1kZW1vJyk7XG5cbmNvbnN0IExBTUJEQV9BU1NFVFNfUEFUSCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi9zcmMvZGVtby9mdW5jdGlvbnMnKTtcblxuY29uc3QgZGVtb1Jlc3RBcGkgPSBuZXcgUmVzdEFwaShzdGFjaywgJ1Jlc3RBcGlEZW1vJywge1xuICByZXNvdXJjZXM6IFtcbiAgICB7XG4gICAgICBwYXRoOiAnL2FydGljbGVzJyxcbiAgICAgIGh0dHBNZXRob2Q6IEh0dHBNZXRob2QuR0VULFxuICAgICAgbGFtYmRhRnVuY3Rpb246IG5ldyBsYW1iZGEuTm9kZWpzRnVuY3Rpb24oc3RhY2ssICdHZXRBcnRpY2xlcycsIHtcbiAgICAgICAgZW50cnk6IGAke0xBTUJEQV9BU1NFVFNfUEFUSH0vYXJ0aWNsZXMvZ2V0LWFydGljbGVzL2FwcC50c2AsXG4gICAgICB9KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcvYXJ0aWNsZXMnLFxuICAgICAgaHR0cE1ldGhvZDogSHR0cE1ldGhvZC5QT1NULFxuICAgICAgbGFtYmRhRnVuY3Rpb246IG5ldyBsYW1iZGEuTm9kZWpzRnVuY3Rpb24oc3RhY2ssICdDcmVhdGVBcnRpY2xlJywge1xuICAgICAgICBlbnRyeTogYCR7TEFNQkRBX0FTU0VUU19QQVRIfS9hcnRpY2xlcy9jcmVhdGUtYXJ0aWNsZS9hcHAudHNgLFxuICAgICAgfSksXG4gICAgfSxcbiAgICB7XG4gICAgICBwYXRoOiAnL2FydGljbGVzL3thcnRpY2xlSWR9JyxcbiAgICAgIGh0dHBNZXRob2Q6IEh0dHBNZXRob2QuR0VULFxuICAgICAgbGFtYmRhRnVuY3Rpb246IG5ldyBsYW1iZGEuTm9kZWpzRnVuY3Rpb24oc3RhY2ssICdHZXRBcnRpY2xlJywge1xuICAgICAgICBlbnRyeTogYCR7TEFNQkRBX0FTU0VUU19QQVRIfS9hcnRpY2xlcy9nZXQtYXJ0aWNsZS9hcHAudHNgLFxuICAgICAgfSksXG4gICAgfSxcbiAgICB7XG4gICAgICBwYXRoOiAnL2FydGljbGVzL3thcnRpY2xlSWR9JyxcbiAgICAgIGh0dHBNZXRob2Q6IEh0dHBNZXRob2QuUFVULFxuICAgICAgbGFtYmRhRnVuY3Rpb246IG5ldyBsYW1iZGEuTm9kZWpzRnVuY3Rpb24oc3RhY2ssICdVcGRhdGVBcnRpY2xlJywge1xuICAgICAgICBlbnRyeTogYCR7TEFNQkRBX0FTU0VUU19QQVRIfS9hcnRpY2xlcy91cGRhdGUtYXJ0aWNsZS9hcHAudHNgLFxuICAgICAgfSksXG4gICAgfSxcbiAgICB7XG4gICAgICBwYXRoOiAnL2FydGljbGVzL3thcnRpY2xlSWR9L2NvbW1lbnRzJyxcbiAgICAgIGh0dHBNZXRob2Q6IEh0dHBNZXRob2QuR0VULFxuICAgICAgbGFtYmRhRnVuY3Rpb246IG5ldyBsYW1iZGEuTm9kZWpzRnVuY3Rpb24oc3RhY2ssICdHZXRDb21tZW50cycsIHtcbiAgICAgICAgZW50cnk6IGAke0xBTUJEQV9BU1NFVFNfUEFUSH0vYXJ0aWNsZXMvZ2V0LWNvbW1lbnRzL2FwcC50c2AsXG4gICAgICB9KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcvYXJ0aWNsZXMve2FydGljbGVJZH0vY29tbWVudHMnLFxuICAgICAgaHR0cE1ldGhvZDogSHR0cE1ldGhvZC5QT1NULFxuICAgICAgbGFtYmRhRnVuY3Rpb246IG5ldyBsYW1iZGEuTm9kZWpzRnVuY3Rpb24oc3RhY2ssICdDcmVhdGVDb21tZW50Jywge1xuICAgICAgICBlbnRyeTogYCR7TEFNQkRBX0FTU0VUU19QQVRIfS9hcnRpY2xlcy9jcmVhdGUtY29tbWVudC9hcHAudHNgLFxuICAgICAgfSksXG4gICAgfSxcbiAgICB7XG4gICAgICBwYXRoOiAnL2F1dGhvcnMnLFxuICAgICAgaHR0cE1ldGhvZDogSHR0cE1ldGhvZC5HRVQsXG4gICAgICBsYW1iZGFGdW5jdGlvbjogbmV3IGxhbWJkYS5Ob2RlanNGdW5jdGlvbihzdGFjaywgJ0dldEF1dGhvcnMnLCB7XG4gICAgICAgIGVudHJ5OiBgJHtMQU1CREFfQVNTRVRTX1BBVEh9L2F1dGhvcnMvZ2V0LWF1dGhvcnMvYXBwLnRzYCxcbiAgICAgIH0pLFxuICAgIH0sXG4gICAge1xuICAgICAgcGF0aDogJy9hdXRob3JzL3thdXRob3JJZH0nLFxuICAgICAgaHR0cE1ldGhvZDogSHR0cE1ldGhvZC5HRVQsXG4gICAgICBsYW1iZGFGdW5jdGlvbjogbmV3IGxhbWJkYS5Ob2RlanNGdW5jdGlvbihzdGFjaywgJ0dldEF1dGhvcicsIHtcbiAgICAgICAgZW50cnk6IGAke0xBTUJEQV9BU1NFVFNfUEFUSH0vYXV0aG9ycy9nZXQtYXV0aG9yL2FwcC50c2AsXG4gICAgICB9KSxcbiAgICB9LFxuICBdLFxuICBlbmFibGVDb3JzOiB0cnVlLFxufSk7XG5cbm5ldyBjZGsuQ2ZuT3V0cHV0KHN0YWNrLCAnQXBpSWQnLCB7XG4gIHZhbHVlOiBkZW1vUmVzdEFwaS5yZXN0QXBpSWQsXG59KTtcbm5ldyBjZGsuQ2ZuT3V0cHV0KHN0YWNrLCAnQXBpVXJsJywge1xuICB2YWx1ZTogZGVtb1Jlc3RBcGkudXJsLFxufSk7XG4iXX0=