## Smithy Server Generator for TypeScript Example Service ### Overview This repository is divided into three projects: - `model` contains the Smithy model for the service. - `typescript-client` contains the generated TypeScript client generated from `model`. - `server` contains the service, written in TypeScript, for `model`. ### Building #### Prerequisites Before beginning: - Install - [JDK](https://aws.amazon.com/corretto/) >= 8 - [NodeJS](https://nodejs.org/en/download/) >= 14 - [AWS CDK CLI](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) - Enable [corepack](https://nodejs.org/api/corepack.html#enabling-the-feature) by running `corepack enable` - Set up an [AWS account](https://portal.aws.amazon.com/billing/signup) if you do not have one - [Configure your workstation](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#getting_started_prerequisites) so the CDK can use your account ### Getting started 1. After the first checkout, you will need to kick off the initial code generation and build by running: ```bash ./gradlew build && yarn install && yarn build ``` After this initial build, `yarn build` in the root of the project will regenerate the client and server and recompile all of the code. 2. To deploy the service, switch to the `server` directory and run `cdk deploy`. When complete, the CDK will print out the endpoint URL for your newly deployed service. > Note: this step will create resources in your AWS account that may incur charges. 3. To test your service, switch to the `typescript-client` directory and use `yarn str-length` to call the `Length` operation. For example, given an output from the CDK of `https://somerandomstring.execute-api.us-west-2.amazonaws.com/prod/`, ```bash yarn str-length https://somerandomstring.execute-api.us-west-2.amazonaws.com/prod/ foobar ``` should print out `6`. ## Security See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information. ## License This library is licensed under the MIT-0 License. See the LICENSE file.