π Swagger β
Use ApiPaginatedResponse on endpoints that return PaginatedDTO<T>.
ts
import { Controller, Get, Query } from '@nestjs/common';
import { ApiPaginatedResponse, PaginatedDTO, QueryDTO } from '@querry-kit/nest-prisma-query';
@Controller('projects')
export class ProjectsController {
constructor(private readonly projectsService: ProjectsService) {}
@Get()
@ApiPaginatedResponse({ model: ProjectDTO, description: 'Projects' })
async query(@Query() query: QueryDTO<ProjectTypeMap>): Promise<PaginatedDTO<ProjectDTO>> {
const { items, pageMeta } = await this.projectsService.query<Project>(query);
return new PaginatedDTO(items.map(ProjectDTO.fromModel), pageMeta);
}
}The decorator registers PaginatedDTO, PageMetaDTO, and the item model as extra Swagger models, then composes a response schema with:
ts
{
items: ProjectDTO[];
meta: PageMetaDTO;
}ApiPaginatedResponse accepts normal ApiOkResponse options except schema and type, which are managed by the helper.