/passthrough-proxy-darksky

A pass-through proxy to communicate with DarkSky API server

Primary LanguageHCLMIT LicenseMIT

DarkSky API pass-through proxy server

GitHub workflow status Maintenance Release License

A pass-through proxy to communicate with DarkSky API server.

How it works

It acts as a simple web proxy that sends all requests it receives to https://api.darksky.net. You may need to send your secret key to the proxy if it is a protected API. Check the official documentation.

The proxy runs on AWS Lambda.

Supported APIs

  • /forecast

Setup

Terraform is used for deployment on AWS.

Development

LocalStack is used to provide local AWS services.

Requirements

Steps

  1. Start LocalStack
    docker run --rm -it -p 4566:4566 -p 4571:4571 -e "SERVICES=iam,lambda,apigateway,cloudwatch,logs,sts" localstack/localstack
  2. Run Terraform scripts
    cd terraform/local
    terraform init
    terraform apply -auto-approve
  3. Take note of the outputs when Terraform completes. Example:
    Outputs:
    
    rest_api_url = "http://localhost:4566/restapis/7rujauhl95/api/_user_request_"
  4. Test the deployed endpoint
    curl http://localhost:4566/restapis/7rujauhl95/api/_user_request_/forecast/[secretKey]/[latitude],[longitude]

Production

Requirements

  • Have an AWS account ready. We will need the Access and Secret Keys to run the Terraform scripts.
  • Have a Terraform account ready. We will need it to store the Terraform states.

Steps

  1. Run Terraform scripts
    cd terraform/remote
    terraform init
    terraform apply -auto-approve
  2. Take note of the outputs when Terraform completes
  3. Test the deployed endpoint