This is a modern 🍪 Cookiecutter template to create REST APIs for multiple cloud platforms in multiple languages. This template supports the multiple cloud platforms and languages.
Install Cookiecutter using pip package manager:
# pipx is strongly recommended.
pipx install cookiecutter
# If pipx is not an option,
# you can install Cookiecutter in your Python user directory.
python -m pip install --user cookiecutter
To create a Cookiecutter API project, run the following for each implemented template.
# Create using the GH CLI
cookiecutter gh:Code-and-Sorts/cookiecutter-api/{LANGUAGE_OPTION}
# Create using the GH URL
cookiecutter https://github.com/Code-and-Sorts/cookiecutter-api.git --directory {LANGUAGE_OPTION}
Follow the prompts and answer them with your own desired options.
Azure | AWS | GCP | |
Function App | Lambda | Cloud Function | |
✅ | 📋 | 📋 | |
✅ | 📋 | 📋 | |
✅ | 📋 | 📋 | |
📋 | 📋 | 📋 |
Note
Each project follows the controller-service-repository pattern.
Python
Typescript
Dotnet
Below is a list of resources and documentation for the types of SDKs and frameworks used in the various Cookiecutter APIs.
- Nuget for dependency management
- xUnit for testing
- FluentValidation for schema validtion
- Azure Function Apps for hosting the APIs
- Cosmos DB for data storage
- Lambda docs for hosting the APIs
- DynamoDB for data storage
- Cloud Functions for hosting the APIs
- Firestore for data storage
Florian Maas' cookiecutter-poetry repository was a very helpful resource for building out this Cookiecutter template.