Added some test endpoints and server configuration

This commit is contained in:
Donkie
2023-04-01 16:46:19 +02:00
parent c9b4705b28
commit 35fdd23ec0
6 changed files with 112 additions and 7 deletions

View File

@@ -3,9 +3,84 @@
from typing import Union
from fastapi import APIRouter
from spoolson.api.v1.models import Filament
from spoolson.api.v1.models import Filament, Vendor
router = APIRouter(
prefix="/filament",
tags=["filament"],
)
# ruff: noqa: D103
@router.get("/")
async def find(vendor: Union[int, None] = None) -> list[Filament]:
return []
@router.get("/{filament_id}")
async def get(filament_id: int) -> Filament:
return Filament(
id=0,
name=None,
vendor=Vendor(
id=0,
name="asdf",
comment=None,
),
material=None,
price=None,
density=1,
diameter=1,
weight=None,
spool_weight=None,
article_number=None,
comment=None,
)
@router.post("/")
async def create() -> Filament:
return Filament(
id=0,
name=None,
vendor=Vendor(
id=0,
name="asdf",
comment=None,
),
material=None,
price=None,
density=1,
diameter=1,
weight=None,
spool_weight=None,
article_number=None,
comment=None,
)
@router.put("/{filament_id}")
async def update() -> Filament:
return Filament(
id=0,
name=None,
vendor=Vendor(
id=0,
name="asdf",
comment=None,
),
material=None,
price=None,
density=1,
diameter=1,
weight=None,
spool_weight=None,
article_number=None,
comment=None,
)
@router.delete("/{filament_id}")
async def delete():
pass

View File

@@ -1,13 +1,21 @@
"""Router setup for the v1 version of the API."""
from fastapi import APIRouter
from fastapi import APIRouter, FastAPI
from . import filament, spool, vendor
router = APIRouter(
prefix="/v1",
tags=["v1"],
app = FastAPI(
title="Spoolson REST API v1",
version="1.0.0",
root_path_in_servers=False,
)
router = APIRouter(
prefix="/api/v1",
)
router.include_router(filament.router)
router.include_router(spool.router)
router.include_router(vendor.router)
app.include_router(router)

View File

@@ -1,9 +1,13 @@
"""Main entrypoint to the server."""
import uvicorn
from fastapi import FastAPI
import spoolson.api.v1.router
app = FastAPI()
app.include_router(spoolson.api.v1.router.router)
app.mount("/api/v1", spoolson.api.v1.router.app)
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)