https://github.com/basalam/fastapi-classbase
https://github.com/basalam/fastapi-classbase
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/basalam/fastapi-classbase
- Owner: basalam
- License: mit
- Created: 2022-07-14T12:02:28.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2022-07-15T07:27:37.000Z (almost 4 years ago)
- Last Synced: 2023-03-05T07:11:14.219Z (over 3 years ago)
- Language: Python
- Size: 23.4 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# FastAPI ClassBase API
## install
`pip install git+https://github.com/basalam/fastapi-classbase`
## Usage
`API` and `BASEAPI` is subclass of `pydantic.BaseModel`; so your knife've been sharpened
```py
from fastapi import FastAPI, Query
from faclsbase import API, BaseAPI
from typing import List
from pydantic import Field
app = FastAPI()
@app.get('/simple-calc')
class SumAPI(metaclass=API): # THIS CLASS IS NOT EXTENDABLE
numbers: List[int] = Field(Query(None))
def run(self):
return f'={sum(self.numbers)}'
# or
@app.get('/simple-calc-deco')
@API.classic
class SumAPI2(BaseAPI): # THIS CLASS IS NOT EXTENDABLE TOO
numbers: List[int] = Field(Query(None))
run = lambda self: f'{=sum(self.numbers)}'
```
## inheritance
```py
from faclsbase import API, BaseAPI as _BaseAPI
app = ...
class BaseAPI(_BaseAPI):
...
@app.get('...')
class XAPI(BaseAPI, metaclass=API):
...
```