# layout-embedded
generate
  Next steps: implement the stubs in services/pets.py, services/store.py, services/default.py, then run the server:
    uv add uvicorn && uv run uvicorn --app-dir .. example.server.main:app --reload
  or: uv add "fastapi[standard]" && uv run --directory .. fastapi dev --entrypoint example.server.main:app
  See server/README.md.
tree
  models.py
  server/README.md
  server/__init__.py
  server/_generated/__init__.py
  server/_generated/contract.py
  server/_generated/openapi.json
  server/_generated/openapi.py
  server/application.py
  server/main.py
  server/py.typed
  server/routers/__init__.py
  server/routers/default.py
  server/routers/pets.py
  server/routers/store.py
  server/services.py
  services/__init__.py
  services/default.py
  services/pets.py
  services/store.py
  5 runtime modules ['present']
  DocumentationAnnotationWarning: server: /x-limit: The served document leaves out x-limit, which has no JSON form
show server/routers/pets.py
  | # generated by datamodel-codegen:
  | #   filename:  api.yaml
  | 
  | """Endpoints of the pets operations; regenerate them instead of editing."""
  | 
  | from collections.abc import Sequence
  | from typing import Annotated, Final
  | 
  | from example import models
  | from fastapi import APIRouter, Body, params
  | from fastapi.responses import Response
  | 
  | from .._generated import contract
  | from .._generated.contract import OperationDependencies
  | from .._runtime.server.application import Wiring, build, checked
  | from .._runtime.server.responses import dispatch
  | from ..services import PetsService
  | 
  | 
  | def _add_list_pets(
  |     router: APIRouter,
  |     wiring: Wiring,
  | ) -> None:
  |     pets: PetsService = wiring.services['pets']
  |     list_pets_handler = checked(
  |         pets.list_pets,
  |         'The pets.list_pets method of GET /pets',
  |         (),
  |     )
  | 
  |     def list_pets() -> object:
  |         return dispatch(
  |             list_pets_handler(),
  |             contract.ListPets.RESPONSES,
  |         )
  | 
  |     router.add_api_route(
  |         '/pets',
  |         list_pets,
  |         methods=['GET'],
  |         status_code=200,
  |         response_model=models.PetsGetResponse,
  |         response_model_by_alias=True,
  |         response_model_exclude_unset=True,
  |         operation_id='listPets',
  |         tags=['pets'],
  |         response_description='Pets',
  |         dependencies=wiring.dependencies.get('list_pets'),
  |     )
  | 
  | 
  | def _add_create_pet(
  |     router: APIRouter,
  |     wiring: Wiring,
  | ) -> None:
  |     pets: PetsService = wiring.services['pets']
  |     create_pet_handler = checked(
  |         pets.create_pet,
  |         'The pets.create_pet method of POST /pets',
  |         ('body',),
  |     )
  | 
  |     def create_pet(
  |         *,
  |         body: Annotated[models.Pet | None, Body(media_type='application/json')] = None,
  |     ) -> object:
  |         return dispatch(
  |             create_pet_handler(
  |                 body=body,
  |             ),
  |             contract.CreatePet.RESPONSES,
  |         )
  | 
  |     router.add_api_route(
  |         '/pets',
  |         create_pet,
  |         methods=['POST'],
  |         status_code=201,
  |         response_model=None,
  |         response_class=Response,
  |         operation_id='createPet',
  |         tags=['pets', 'admin'],
  |         response_description='Created',
  |         dependencies=wiring.dependencies.get('create_pet'),
  |     )
  | 
  | 
  | LITERAL_ROUTES: Final = (
  |     ('list_pets', _add_list_pets),
  |     ('create_pet', _add_create_pet),
  | )
  | TEMPLATED_ROUTES: Final = ()
  | 
  | 
  | def build_router(
  |     *,
  |     pets: PetsService,
  |     dependencies: Sequence[params.Depends] = (),
  |     operation_dependencies: OperationDependencies | None = None,
  |     prefix: str = "",
  | ) -> APIRouter:
  |     """Register the pets operations on a new router, literal paths first."""
  |     return build(
  |         (*LITERAL_ROUTES, *TEMPLATED_ROUTES),
  |         services={'pets': pets},
  |         dependencies=dependencies,
  |         operation_dependencies=operation_dependencies,
  |         prefix=prefix,
  |     )
