我有一个端点,它正在使用一个安静的 url 服务/getDocument/:documentId 我已经设置了一个带有验证的路径对象,并且当使用 documentId 调用端点时一切都很好。当我离开 documentId 时,我收到一个 404 错误,它没有给我来自 @IsNotEmpty 消息的消息。当我将端点转换为使用 @Query 时,我得到了我期待的消息。
服务
@Controller('service') // Define this class as a controller
export class Controller {
constructor() {}
// Gets all prescriptions with pagination
@Get('getDocument/:documentId')
async getDocument(
@Res() res: Response,
@Param() params: Path,
@Headers() headers: Headers
): Promise<any> {
...
这是我收到的信息
"message": "Cannot GET /service/getDocument/"
我的路径
import { IsString, IsNotEmpty } from 'class-validator';
import { ApiModelProperty } from '@nestjs/swagger';
export class Path {
@IsString()
@IsNotEmpty({ message: 'documentId required in url as rest param <serviceURL>/<endpoint>/<documentId>' })
@ApiModelProperty({
required: true,
description: 'document reference id'
})
documentId: string;
}
当我将端点转换为使用 @Query 时,我得到了预期的响应。状态 422 和来自 dto 的此消息
更新的控制器
@Get('getDocument')
async getDocument(
@Res() res: Response,
@Query() params: Path,
@Headers() headers: Headers
): Promise<any> {
回复
{
"errors": [
"documentId required in url as rest param <serviceURL>/<endpoint>/<documentId>",
"documentId must be a string"
]
}