Metadata-Version: 2.1
Name: fastapi-rf
Version: 0.1.0a3
Summary: A batteries-included REST framework for FastAPI.
Author-Email: godd0t <lirrishala@gmail.com>
License: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Classifier: Environment :: Web Environment
Classifier: Framework :: AsyncIO
Classifier: Framework :: FastAPI
Classifier: Framework :: Pydantic
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Internet
Classifier: Topic :: Software Development
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.12
Requires-Dist: fastapi[standard]>=0.115.6
Description-Content-Type: text/markdown

# FastAPI REST Framework

A **batteries-included REST framework** for [FastAPI](https://fastapi.tiangolo.com/).  
This project aims to provide a **Django-like** experience (class-based endpoints, built-in pagination, security helpers, etc.) on top of FastAPI’s asynchronous capabilities.

> **Status**: Alpha (Under Active Development)

## Features

- **Class-Based Endpoints**  
  Define your API routes in **classes** rather than large function-based modules.  
- **Single or Bulk Registration**  
  Include endpoints with minimal boilerplate.  
- **Extendable**  
  Built to be extended with future components, such as database integrations, pagination, security layers, etc.  

## Quick Start

### Installation

```bash
pip install fastapi-rf
```

> Requires Python **3.12+** and FastAPI **0.115.6+**.

### Usage Example

1. **Assuming you have a FastAPI project**:

   ```python
   # project/main.py

   from fastapi import FastAPI
   from frf.routers.base_router import BaseAPIRouter
   from frf.endpoints.base_endpoint import BaseEndpoint

   app = FastAPI()
   router = BaseAPIRouter()

   class MyEndpoint(BaseEndpoint):
       prefix = "/items"
       tags = ["Items"]

       @BaseEndpoint.route("/list", "GET")
       async def get_items(self):
           return {"message": "List of items"}

       @BaseEndpoint.route("/create", "POST")
       async def create_item(self, data: dict):
           return {"message": "Item created", "data": data}

   # Register the endpoint
   router.include_endpoints(MyEndpoint)
   app.include_router(router)
   ```

2. **Run the application**:

   ```bash
   uvicorn project.main:app --reload
   ```

3. **Open** [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) to see the automatically generated API documentation and test your new endpoints.
---

## Roadmap

- **ORM Integration**  
  Seamless database handling, migrations, and a Django-like “model” layer.  
- **Pagination, Security, & Schemas**  
  Built-in solutions for typical REST concerns.  

## Contributing

Contributions, feature requests, and bug reports are welcome. Feel free to open an issue or submit a PR. Please follow typical open-source etiquette (fork, branch, test, PR).

## License

This project is licensed under the [MIT License](LICENSE).

---

**Thank you for using fastapi-rf!** If you have any questions, suggestions, or feedback, feel free to open an issue.
