Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Blog postman draft (#69)
* basic newman generator

* delete original item id
  • Loading branch information
martzcodes committed Feb 7, 2021
1 parent 082e152 commit 6f3c3a5
Show file tree
Hide file tree
Showing 15 changed files with 2,001 additions and 429 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Expand Up @@ -35,6 +35,8 @@ jspm_packages/
.yarn-integrity
# parcel-bundler cache (https://parceljs.org/)
.cache
src/newman/newman-*
src/newman/customized.json
/lib
/dist
/coverage
Expand Down
20 changes: 19 additions & 1 deletion .projenrc.js
@@ -1,7 +1,7 @@
const { AwsCdkTypeScriptApp } = require("projen");

const project = new AwsCdkTypeScriptApp({
cdkVersion: "1.71.0",
cdkVersion: "1.88.0",
name: "blog-cdk-openapi",
authorName: "Matt Martz",
authorUrl: "https://matt.martz.codes",
Expand All @@ -16,7 +16,25 @@ const project = new AwsCdkTypeScriptApp({
},
devDependencies: {
"@types/aws-lambda": "8.10.63",
"@types/newman": "5.1.2",
"@types/postman-collection": "3.5.5",
"esbuild": "0.8.34",
"newman": "5.2.1",
"openapi-to-postmanv2": "2.2.0",
"postman-collection": "3.6.9",
},
gitignore: [
"src/newman/newman-*",
"src/newman/customized.json"
]
});

project.addScriptCommand(
"newman:convert",
"openapi2postmanv2 -s openapigenerated.json -o src/newman/api.json -p -c src/newman/config.json"
);

project.addScriptCommand("newman:pr", "ts-node src/newman/newman.ts -- 1");
project.addScriptCommand("newman:test", "ts-node src/newman/newman.ts");

project.synth();
2 changes: 1 addition & 1 deletion LICENSE
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2020 Matt Martz
Copyright 2021 Matt Martz

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
6 changes: 3 additions & 3 deletions openapigenerated.json
Expand Up @@ -2,10 +2,10 @@
"openapi": "3.0.1",
"info": {
"title": "OpenApi",
"version": "2020-11-05T04:33:45.699Z"
"version": "2021-02-07T04:47:28.606Z"
},
"paths": {
"/{hello}/basic": {
"/example/{hello}/basic": {
"post": {
"parameters": [
{
Expand Down Expand Up @@ -63,7 +63,7 @@
}
}
},
"/{hello}/advanced": {
"/example/{hello}/advanced": {
"post": {
"parameters": [
{
Expand Down
36 changes: 16 additions & 20 deletions package.json
Expand Up @@ -19,7 +19,10 @@
"synth": "cdk synth",
"deploy": "cdk deploy",
"diff": "cdk diff",
"destroy": "cdk destroy"
"destroy": "cdk destroy",
"newman:convert": "openapi2postmanv2 -s openapigenerated.json -o src/newman/api.json -p -c src/newman/config.json",
"newman:pr": "ts-node src/newman/newman.ts -- 1",
"newman:test": "ts-node src/newman/newman.ts"
},
"author": {
"name": "Matt Martz",
Expand All @@ -29,16 +32,22 @@
"devDependencies": {
"@types/aws-lambda": "8.10.63",
"@types/jest": "^26.0.7",
"@types/newman": "5.1.2",
"@types/node": "^10.17.0",
"@types/postman-collection": "3.5.5",
"@typescript-eslint/eslint-plugin": "^4.3.0",
"@typescript-eslint/parser": "^4.3.0",
"aws-cdk": "^1.71.0",
"aws-cdk": "^1.88.0",
"esbuild": "0.8.34",
"eslint": "^7.12.1",
"eslint-import-resolver-node": "^0.3.4",
"eslint-import-resolver-typescript": "^2.3.0",
"eslint-plugin-import": "^2.22.1",
"jest": "^26.4.2",
"json-schema": "^0.2.5",
"newman": "5.2.1",
"openapi-to-postmanv2": "2.2.0",
"postman-collection": "3.6.9",
"projen": "^0.3.138",
"standard-version": "^9.0.0",
"ts-jest": "^26.1.0",
Expand All @@ -47,11 +56,11 @@
},
"peerDependencies": {},
"dependencies": {
"@aws-cdk/assert": "^1.71.0",
"@aws-cdk/aws-apigateway": "^1.71.0",
"@aws-cdk/aws-lambda": "^1.71.0",
"@aws-cdk/aws-lambda-nodejs": "^1.71.0",
"@aws-cdk/core": "^1.71.0",
"@aws-cdk/assert": "^1.88.0",
"@aws-cdk/aws-apigateway": "^1.88.0",
"@aws-cdk/aws-lambda": "^1.88.0",
"@aws-cdk/aws-lambda-nodejs": "^1.88.0",
"@aws-cdk/core": "^1.88.0",
"ts-json-schema-generator": "0.77.0"
},
"bundledDependencies": [],
Expand Down Expand Up @@ -148,18 +157,5 @@
"tsconfig": "tsconfig.jest.json"
}
}
},
"targets": {
"cdk-lambda": {
"context": "node",
"includeNodeModules": {
"aws-sdk": false
},
"sourceMap": false,
"minify": false,
"engines": {
"node": ">= 12"
}
}
}
}
2 changes: 1 addition & 1 deletion src/lambdas/authorizer.ts
Expand Up @@ -28,5 +28,5 @@ export const handler = async (event: APIGatewayTokenAuthorizerEvent): Promise<AP

const token = event.authorizationToken.replace('Bearer ', '');

return generatePolicy(token, event.methodArn);
return generatePolicy(token, '*');
};
7 changes: 4 additions & 3 deletions src/main.ts
Expand Up @@ -2,7 +2,7 @@ import { join } from 'path';
import { TokenAuthorizer } from '@aws-cdk/aws-apigateway';
import { Runtime } from '@aws-cdk/aws-lambda';
import { NodejsFunction } from '@aws-cdk/aws-lambda-nodejs';
import { App, Construct, Stack, StackProps } from '@aws-cdk/core';
import { App, Construct, Duration, Stack, StackProps } from '@aws-cdk/core';
import { OpenApiConstruct, OpenApiSpec } from './api';

interface MyStackProps extends StackProps {
Expand Down Expand Up @@ -35,6 +35,7 @@ export class MyStack extends Stack {

const auth = new TokenAuthorizer(this, 'blogAuthorizer', {
handler: authorizerLambda,
resultsCacheTtl: Duration.millis(0),
});

const methodResponses = [
Expand Down Expand Up @@ -64,7 +65,7 @@ export class MyStack extends Stack {
models: `${__dirname}/interfaces`,
});

api.addEndpoint('/{hello}/basic', 'POST', {
api.addEndpoint('/example/{hello}/basic', 'POST', {
lambda: basicLambda,
requiredParameters: ['hello'],
requestModels: {
Expand All @@ -73,7 +74,7 @@ export class MyStack extends Stack {
methodResponses,
});

api.addEndpoint('/{hello}/advanced', 'POST', {
api.addEndpoint('/example/{hello}/advanced', 'POST', {
lambda: advancedLambda,
requiredParameters: ['hello'],
requestModels: {
Expand Down
10 changes: 10 additions & 0 deletions src/newman/ApiTestConfig.ts
@@ -0,0 +1,10 @@
export interface ApiTestConfig {
name: string;
description?: string;
path: string;
method: string;
status: number;
pathParams: Record<string, string>;
body?: any;
responseValues?: Record<string, string>;
}

0 comments on commit 6f3c3a5

Please sign in to comment.