Open-RPC API hosting and interactive documentation.
Project description
Tabella
Open-RPC development framework with builtin interactive documentation.
Live Demo
A live demo is available here.
Install
Tabella is on PyPI and can be installed with:
pip install tabella
Or with Poetry
poetry add tabella
Python OpenRPC Docs
The RPC server hosted and documented by Tabella is powered by Python OpenRPC. Refer to the Python OpenRPC docs hosted here for advanced use.
Getting Started
A basic Tabella app:
import tabella
from openrpc import RPCServer
import uvicorn
rpc = RPCServer()
@rpc.method()
def echo(a: str, b: float) -> tuple[str, float]:
"""Echo parameters back in result."""
return a, b
app = tabella.get_app(rpc)
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)
Run this, then open http://127.0.0.1:8000/ in your browser to use the interactive documentation.
The Open-RPC API will be hosted over HTTP on http://127.0.0.1:8000/api
and over
WebSockets on ws://127.0.0.1:8000/api
.
Further Usage
Security and Depends Arguments
The tabella.get_app
function accepts argument, middleware
, which is a callable that
will be passed HTTP request headers/WebSocket connection headers. The middleware
function must return a tuple of two dictionaries, the first will be passed to the
RPC Server as
Depends Arguments
and the second as
Security Arguments.
Set Servers
Set RPC servers manually to specify transport and paths to host the RPC server on, e.g.
from openrpc import RPCServer, Server
import tabella
rpc = RPCServer(
servers=[
Server(name="HTTP API", url="http://localhost:8000/my/api/path"),
Server(name="WebSocket API", url="ws://localhost:8000/my/api/path"),
]
)
app = tabella.get_app(rpc)
This app will host the RPCServer over HTTP and over WebSockets with the
path /my/api/path
.
Pydantic
Pydantic is used for request/response deserialization/serialization as well as schema generation. Pydantic should be used for any models as seen here in the Python OpenRPC Docs.
FastAPI
Tabella HTTP and WebSocket server hosting is uses
FastAPI. The app returned by tabella.get_app
is a
FastAPI app.
Inspired By
Support The Developer
Project details
Release history Release notifications | RSS feed
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 tabella-1.0.2.tar.gz
.
File metadata
- Download URL: tabella-1.0.2.tar.gz
- Upload date:
- Size: 227.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.12 Linux/6.5.6-76060506-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3b37dbbc61595ac9e2cea398315ee814d9b62f5d2f48c70604ed0f2d27228f3 |
|
MD5 | 5ae5c42644c606307a4dca1d23be3397 |
|
BLAKE2b-256 | f0884828c4fdc345d240f13bec41b1cebf540fe36a6763bbe9ce17ab44284d25 |
File details
Details for the file tabella-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: tabella-1.0.2-py3-none-any.whl
- Upload date:
- Size: 264.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.12 Linux/6.5.6-76060506-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e4b1b8108d06e85cdbd7123b4b34e3a437208f5693fad93aee1985a9eede69a |
|
MD5 | 0ba0cc129d130fa88836e19dab2a2dad |
|
BLAKE2b-256 | 0928b59ffa9ac89a8d6439f76c3ff2f612e5bd6314008f3a520e73f67eeed620 |