Package: auto-route
IntroductionThank 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 StartedUnderstanding 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).Components_Breakdown.mdProposal.mdPart 1 - Creating FastAPI Application and Auto-generating Class
Method
Endpoints.mdPart 2 - Generating OpenAPI Specification and Interactive
Documentation for
FastAPI.mdPart 3 - Exploring the Generated Python Client Library and
Customizing Its
Configuration.mdPart 4 - FastAPI Application and Generated Client Library: Complete
Guide for
Beginners.mdDockerfile_example.mdhow_to_improve_microservice.mdQuick and Incomplete Guide:@auto_route:Thenaming conversionfor functions using this wrapper ishttp-method_tag_*detail:wherehttp_method is in[get, post, put, delete, patch, options, head, trace]thetagis the name of the class that the function is in,
e.g.customerthedetailis the name of the function, in the example
above, the detail would beide.g.  ## Areas of Contributionapi = 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)Flexiblestripe_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.CommunityFinally, 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!