docs(templates): document CRUD and model CRUD apps and expose them in mkdocs
- Add comprehensive module and function docstrings to crud_app and model_app templates - Document OpenAPI-first guarantees, non-goals, and usage patterns in templates - Add template-level __init__.py files with CLI and client usage examples - Update mkdocs.yml to include CRUD and model-based CRUD template documentation - Ensure template documentation follows strict package-bound mkdocstrings rules
This commit is contained in:
@@ -3,27 +3,88 @@ In-memory mock data store for CRUD example.
|
||||
|
||||
This module intentionally avoids persistence and concurrency guarantees.
|
||||
It is suitable for demos, tests, and scaffolding only.
|
||||
|
||||
It intentionally avoids
|
||||
- persistence
|
||||
- concurrency guarantees
|
||||
- validation
|
||||
- error handling
|
||||
|
||||
The implementation is suitable for:
|
||||
- demonstrations
|
||||
- tests
|
||||
- scaffolding and example services
|
||||
|
||||
It is explicitly NOT suitable for production use.
|
||||
|
||||
This module is not part of the ``openapi_first`` library API surface.
|
||||
"""
|
||||
|
||||
from typing import Dict
|
||||
|
||||
|
||||
# In-memory storage keyed by item ID.
|
||||
_items: Dict[int, dict] = {
|
||||
1: {"id": 1, "name": "Apple", "price": 0.5},
|
||||
2: {"id": 2, "name": "Banana", "price": 0.3},
|
||||
}
|
||||
|
||||
# Auto-incrementing ID counter.
|
||||
_next_id = 3
|
||||
|
||||
|
||||
def list_items():
|
||||
"""
|
||||
Return all items in the data store.
|
||||
|
||||
This function performs no filtering, pagination, or sorting.
|
||||
The returned collection reflects the current in-memory state.
|
||||
|
||||
Returns
|
||||
-------
|
||||
list[dict]
|
||||
A list of item representations.
|
||||
"""
|
||||
return list(_items.values())
|
||||
|
||||
|
||||
def get_item(item_id: int):
|
||||
"""
|
||||
Retrieve a single item by ID.
|
||||
|
||||
This function assumes the item exists and will raise ``KeyError``
|
||||
if the ID is not present in the store.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
item_id : int
|
||||
Identifier of the item to retrieve.
|
||||
|
||||
Returns
|
||||
-------
|
||||
dict
|
||||
The stored item representation.
|
||||
"""
|
||||
return _items[item_id]
|
||||
|
||||
|
||||
def create_item(payload: dict):
|
||||
"""
|
||||
Create a new item in the data store.
|
||||
|
||||
A new integer ID is assigned automatically. No validation is
|
||||
performed on the provided payload.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
payload : dict
|
||||
Item attributes excluding the ``id`` field.
|
||||
|
||||
Returns
|
||||
-------
|
||||
dict
|
||||
The newly created item, including its assigned ID.
|
||||
"""
|
||||
global _next_id
|
||||
item = {"id": _next_id, **payload}
|
||||
_items[_next_id] = item
|
||||
@@ -32,10 +93,40 @@ def create_item(payload: dict):
|
||||
|
||||
|
||||
def update_item(item_id: int, payload: dict):
|
||||
"""
|
||||
Replace an existing item in the data store.
|
||||
|
||||
This function overwrites the existing item entirely and does not
|
||||
perform partial updates or validation. If the item does not exist,
|
||||
it will be created implicitly.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
item_id : int
|
||||
Identifier of the item to update.
|
||||
payload : dict
|
||||
Item attributes excluding the ``id`` field.
|
||||
|
||||
Returns
|
||||
-------
|
||||
dict
|
||||
The updated item representation.
|
||||
"""
|
||||
item = {"id": item_id, **payload}
|
||||
_items[item_id] = item
|
||||
return item
|
||||
|
||||
|
||||
def delete_item(item_id: int):
|
||||
"""
|
||||
Remove an item from the data store.
|
||||
|
||||
This function assumes the item exists and will raise ``KeyError``
|
||||
if the ID is not present.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
item_id : int
|
||||
Identifier of the item to delete.
|
||||
"""
|
||||
del _items[item_id]
|
||||
|
||||
Reference in New Issue
Block a user