Thank you for your interest in contributing to the AutoRoute project! Our goal is to simplify and automate the creation of SaaS/PaaS solutions. We're excited to welcome you to our community.
Project description
Introduction
Thank you for your interest in contributing to the AutoRoute project! Our goal is to simplify and automate the creation of SaaS/PaaS solutions. We’re excited to welcome you to our community.
Here’s a guide on how you can contribute:
Getting Started
Understanding the Project: Familiarize yourself with the project’s features, design philosophy, and architecture. Spend some time exploring the codebase and reading the existing documentation (md and docstrings).
Part 1 - Creating FastAPI Application and Auto-generating Class Method Endpoints.md
Part 2 - Generating OpenAPI Specification and Interactive Documentation for FastAPI.md
Part 3 - Exploring the Generated Python Client Library and Customizing Its Configuration.md
Part 4 - FastAPI Application and Generated Client Library: Complete Guide for Beginners.md
Quick and Incomplete Guide:
@auto_route:
The naming conversion for functions using this wrapper is http-method_tag_*detail :
where http_method is in [get, post, put, delete, patch, options, head, trace]
the tag is the name of the class that the function is in, e.g. customer
the detail is the name of the function, in the example above, the detail would be id
e.g. ## Areas of Contribution
api = APIAutoRouter() class User(BaseModel): id: int name: str @api.register() class User_Controller: @api.route() def get_user_by_id(id: int): return {"id": id, "name": "User"} @api.route() def post_user_by_id(user: User): return {"id": user.id, "name": user.name} @api.route() def delete_user_by_id(id: int): return {"id_deleted": id}
@auto_app:
Easy Integration
# Also includes AutoApp class for auto-generating FastAPI applications from auto_app import APIAutoApp APIAutoApp(routers_list=[api.router]).run(host='localhost', port=8000)
Flexible
stripe_router_config = AutoLoadRouterConfigObject( module_path='Stripe/stripe_class.py', router_names=['stripe_router'], init_classes=[ InitClassObject(class_name='Customer'), InitClassObject(class_name='Payment_Intent'), InitClassObject(class_name='Subscriptions'), ] ) api_auto_app = APIAutoApp(routers_list=[stripe_router_config]) # Can accept any FastAPI app including custom ones app = api_auto_app.build_app() # This is done under the hood if app obj not passed, here done explicitly for clarity api_auto_app.run(host='localhost', port=8000, app=app)
Documentation: Clear, comprehensive documentation is crucial for any successful open-source project. Help us improve our documentation by creating tutorials, adding usage examples, and improving descriptions of features and configurations.
Continuous Integration/Continuous Deployment (CI/CD): We’re always aiming to improve our automated testing and deployment processes. If you have experience with CI/CD platforms like GitHub Actions, Travis CI, or Jenkins, your expertise could be incredibly valuable.
Automated Testing: Robust testing is a core part of our commitment to code quality. Help us achieve this by writing unit tests and improving our code coverage.
Code Quality Checks: We’re committed to maintaining a clean and readable codebase. Contribute by improving our linting processes, static code analysis, and enforcing our code style guidelines.
Debugging Pipelines: This is an exciting part of our project. If you have ideas on how to include more common issues and security checks, or ways to extend our debugging with user-defined checks, we would love to hear from you.
Payment Integrations: We currently support Stripe, but we aim to provide more flexibility for our users. Help us integrate other payment providers like PayPal, Square, or even cryptocurrencies.
Configuration Options: We want to make our project as flexible as possible. Your contributions could help us support different deployment options, database backends, and more.
API Wrappers: We currently provide wrappers for Google applications. Help us extend our reach by adding wrappers for other popular APIs, such as social media APIs or other cloud service APIs.
Multi-Language Support: We already support over 50 languages thanks to openapi.json and the OpenAPI SDK generator. Help us extend our reach by translating our documentation or other parts of our project into other languages.
Community
Finally, we encourage all contributors to participate in our community. Join our forum or chat room, sign up for our mailing list, and help us build a friendly, active community around our project.
Thank you for considering contributing to AutoRoute. We look forward to working with you!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file auto_route-0.1.7.tar.gz
.
File metadata
- Download URL: auto_route-0.1.7.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 210e2b43fbe6742995c981d3ee8e28ffd0a0832cb35d4a00f6f5d9212bd9a54c |
|
MD5 | af8915cf190f0494e300dc5635a86462 |
|
BLAKE2b-256 | b5e15de471bb13e122604017dc019f0bab37c1b3e9a2465c005fabef7cd1d130 |
File details
Details for the file auto_route-0.1.7-py3-none-any.whl
.
File metadata
- Download URL: auto_route-0.1.7-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99a06f74210d4160b1ff5c701c517dbd5229459465de84ec74ffd2db620972ae |
|
MD5 | 473081650251a6cc65351a4e339ef34f |
|
BLAKE2b-256 | 96644699aa8a0c62c33d18d91807ba60f34b4729dff122dc8dbea63a9aa95d54 |