Maintain consistent patterns across all API endpoints, including naming conventions, response structures, HTTP status codes, and interface design. This ensures a predictable and professional API surface that follows established conventions.
Key consistency requirements:
/end-users not /end_users, /context-variables not /context_variablesReadEvaluationResponse instead of returning internal DTOs directlyresponse_model everywhere or nowhere within the same moduleExample of consistent endpoint design:
@router.patch("/{customer_id}", response_model=CustomerDTO)
async def update_customer(params: CustomerUpdateParamsDTO) -> CustomerDTO:
# Returns 200 OK with updated entity
@router.get("/{evaluation_id}")
async def get_evaluation(evaluation_id: EvaluationId) -> ReadEvaluationResponse:
# Dedicated response DTO, not direct internal model
This prevents API fragmentation and reduces cognitive load for API consumers by establishing predictable patterns they can rely on across all endpoints.