ApiResponse:
type: object
description: Standard API response wrapper used by the REST handlers.
properties:
success:
type: boolean
example: true
data:
description: Response payload. Omitted when the endpoint returns no typed payload.
error:
$ref: "#/ApiError"
message:
type: string
description: Optional human-readable message emitted by some success and error responses.
example: "Password changed successfully"
required:
- success
ApiError:
type: object
description: Machine-readable and human-readable error details attached to a failed ApiResponse.
properties:
code:
type: string
example: "INVALID_CREDENTIALS"
message:
type: string
example: "The provided credentials are invalid"
details:
type: object
nullable: true
description: Optional structured error context.
required:
- code
- message
Pagination:
type: object
description: Pagination metadata returned by list-style endpoints.
properties:
page:
type: integer
minimum: 1
example: 1
limit:
type: integer
minimum: 1
maximum: 100
example: 20
total:
type: integer
minimum: 0
example: 150
pages:
type: integer
minimum: 1
example: 8
required:
- page
- limit
- total
- pages
PaginatedResponse:
allOf:
- $ref: "#/ApiResponse"
- type: object
properties:
data:
type: object
properties:
items:
type: array
items:
type: object
pagination:
$ref: "#/Pagination"
required:
- items
- pagination