- Notifications
You must be signed in to change notification settings - Fork0
sv3ndk/weather_api_demo_go
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
REST integration:
- aREST API exposed via the API Gateway allows to query weather events.
- aCLI client app queries this REST endpoint
- API keys are configured to limit traffic (usage/quotas)
- authentication is based on mutual TLS
websocket integration:
- a websocket endpoint is exposed on the API Gateway
- theon-connect lambda keeps track of the currently connected websocket clients
- thews-push lambda is notified when events are added to DynamoDB and forwards them to all currently connected websocket clients
- aCLI websocket client streams weather events from the websocket endpoint and prints them
both the REST and websocket endpoints are exposed on a custom DNS domain
adata generator lambda, triggered every minute, adds random weather events to DynamoDB
- handle SIGINT correcty in ws socket client
- add Webocket security: API key? Or first request a temp token through REST, then pass it in the
connect
ws phase - add OpenAPI spec to REST endpoint
AWS GO SDK v2https://aws.github.io/aws-sdk-go-v2/docs/making-requests/
Go lambda handlerhttps://docs.aws.amazon.com/lambda/latest/dg/golang-handler.html
Lambda events for each kind of integrationhttps://github.com/aws/aws-lambda-go/tree/main/events
API client, operations, and parameter types for Amazon DynamoDBhttps://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/dynamodb#Client
Types and functions to create Amazon DynamoDB Expression strings, ExpressionAttributeNames maps, and ExpressionAttributeValues mapshttps://pkg.go.dev/github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression#hdr-Using_the_Package
Marshal slices, maps, structs, and scalar values to and from the AttributeValue typehttps://pkg.go.dev/github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue
AWS GO SDK exampleshttps://github.com/awsdocs/aws-doc-sdk-examples/tree/main/go
API Gateways usage plans and API keyshttps://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html
Blog on mutual TLS using the API Gatewayhttps://aws.amazon.com/blogs/compute/introducing-mutual-tls-authentication-for-amazon-api-gateway/