Custom parameter decorators
Parameter decorators are there to simplify the task of geting a specific data you need by using the request (req
) object or by generating it. For example the @Body
decorator we provide simply returns the req.body
object.
By using the createParamDecorator
function, you can create your own decorators that fulfill the needs of your application.
As a basic example, let's get the browser information of the client via a decorator.
First we create our decorator:
import { createParamDecorator } from 'next-api-decorators';
export const UserAgent = createParamDecorator<string | undefined>(
req => req.headers['user-agent']
);
Later we can use the decorator in our handler:
...
class CommentHandler {
@Get()
public comments(@UserAgent() userAgent?: string) {
return `Someone requested the comments via "${userAgent ?? 'Unknown browser'}"`;
}
}
...