openfaas-fastapi-template
Python template for OpenFAAS functions using FastAPI
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
About The Project
Python template for OpenFAAS functions using FastAPI. This template has two flavours, a simple project using fastapi and a more complex with authentication using JWE (encrypted JWT) for improved security.
Getting Started
To run this project locally, you will need to install the prerequisites and follow the installation section.
Prerequisites
- This Project depends on OpenFAAS
curl -sSL https://cli.openfaas.com | sudo -E sh
Installation
-
Pull the template
faas template pull https://github.com/nullhack/openfaas-fastapi-template/
-
Create a new function
faas new --lang openfaas-fastapi-template myf
or
faas new --lang openfaas-fastapi-jwe-template myf
-
Include the function name as environment variable into the
myf.yml
file... environment: FUNCNAME: myf ...
-
build and publish the function to the server
faas up -f myf.yml
Alternative Usage
It's possible to directly use the template without OpenFAAS or to test it before pushing to the server.
-
Install requirements
pip install poethepoet poetry # go to the function folder poe install-dev
-
Run tests
poe test
-
Generate API documentation
poe doc
-
Build a docker image for tests
poe docker-build --target test --build-tag 3.10-alpine docker run -ti --rm handler:test-3.10-alpine
-
Build a docker image to run the root files only without running any test
poe docker-build --target prod --build-tag 3.10-alpine --no-test docker run -ti --rm handler:prod-3.10-alpine
For more examples, please refer to the Documentation
Roadmap
- Improve JWE template coverage
See the open issues for a full list of proposed features (and known issues).
Contributing
Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Contact
Eric Lopes - @nullhack
Project Link: https://github.com/nullhack/openfaas-fastapi-template/
Acknowledgments
This project was created using cookiecutter and nullhack's python-project-template:
License
Distributed under the MIT License. See LICENSE
for more information.