Features
Strongly typed
Strapi api

types for controllers

types for services

Http decorators
@Controller('/products')
class ProductController {
@Post('/')
@Policies(['plugins::users-permissions.isAuthenticated'])
async create(ctx: KoaAuthenticatedContext<ICreateProduct>) {
await strapi
.query('product')
.create({ ...ctx.request.body, user: ctx.state.user.id });
// ...
}
}
The above code will auto-generate a route configuration in routes.json. Same config in routes.json will be overriden.
{
"routes": [
{
"method": "POST",
"path": "/products",
"handler": "product.create",
"config": {
"policies": ["plugins::users-permissions.isAuthenticated"]
}
}
]
}
Path alias
Only @/ is supported. You could edit resolvePathAlias.ts for other path alias
import { IProduct } from '@/typings';
import { Policies } from '@/decorators/http';
Unit / E2e test
See the Test section
Schema
See the Schema section