Metadata-Version: 2.1
Name: interactions-restful
Version: 2.0.0
Summary: A library for interactions.py allowing runtime API structures
Home-page: https://github.com/interactions-py/restful
Author: Damego
Author-email: damego.dev@gmail.com
License: MIT
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: discord-py-interactions <6.0.0,>=5.0.0
Provides-Extra: daphne
Requires-Dist: daphne >=4.0.0 ; extra == 'daphne'
Provides-Extra: fastapi
Requires-Dist: fastapi >=0.92.0 ; extra == 'fastapi'
Provides-Extra: hypercorn
Requires-Dist: hypercorn >=0.14.0 ; extra == 'hypercorn'
Provides-Extra: quart
Requires-Dist: quart >=0.15.0 ; extra == 'quart'
Provides-Extra: uvicorn
Requires-Dist: uvicorn >=0.15.0 ; extra == 'uvicorn'

# interactions restful

A library for interactions.py allowing runtime API structures

## Installation

Using pip:
`pip install interactions-restful`

Using poetry:
`poetry add interactions-restful`

Don't forget to specify backend you want to use:
- [FastAPI](https://fastapi.tiangolo.com/): `pip install interactions-restful[fastapi]`
- [Quart](https://pgjones.gitlab.io/quart/index.html): `pip install interactions-restful[quart]`

Also make sure to install an ASGI server:
- [Uvicorn](https://www.uvicorn.org/): `pip install interactions-restful[uvicorn]`
- [Hypercorn](https://pgjones.gitlab.io/hypercorn/): `pip install interactions-restful[hypercorn]`
- [Daphne](https://github.com/django/daphne): `pip install interactions-restful[daphne]`

You can also install both your backend and ASGI server at once, for example
`pip install interactions-restful[fastapi,uvicorn]`

## Simple (FastAPI) example

### Main file
- `main.py`

```python
import interactions
from fastapi import FastAPI
from interactions_restful.backends.fastapi import FastAPIHandler

app = FastAPI()

client = interactions.Client(token="token")
FastAPIHandler(client, app)

client.load_extension("api")
```

### Extension file
- `api.py`

```python
import interactions
from interactions_restful import route


class MyAPI(interactions.Extension):
    @route("GET", "/")
    def index(self):
        return {"status": "Hello, i.py"}

    @interactions.slash_command()
    async def test_command(self, ctx):
        await ctx.send("Hello, API")
```

### Run

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

## Backends

Currently, the library support only Quart and FastAPI as a backend for building an API, but if you don't want to use them you can create own backend.
