routes method
List<WebRoute>
routes(
- String path, {
- required WebRequest rq,
- bool useRouteAll = true,
- bool useRouteDelete = true,
- bool useRouteInsert = true,
- bool useRouteUpdate = true,
- bool useRouteGetOne = true,
- bool paging = true,
- int pageSize = 20,
- bool orderReverse = true,
- String orderBy = '_id',
- Future<
ApiDoc> ? docAll()?, - Future<
ApiDoc> ? docDelete()?, - Future<
ApiDoc> ? docInsert()?, - Future<
ApiDoc> ? docUpdate()?, - Future<
ApiDoc> ? docOne()?, - List<
WebRoute> children = const [],
Generates a complete set of REST API routes for this collection.
This method creates standard CRUD (Create, Read, Update, Delete) routes for the collection, providing a full REST API interface. Each route type can be individually enabled or disabled.
Generated routes:
GET /path
- List all documents (with optional pagination)GET /path/{id}
- Get single document by IDPOST /path
- Create new documentPOST /path/{id}
- Update existing documentGET /path/delete/{id}
- Delete document by ID
Parameters:
path
- Base URL path for the API routesrq
- Web request instance for handling HTTP requestsuseRouteAll
- Enable/disable the get all documents routeuseRouteDelete
- Enable/disable the delete document routeuseRouteInsert
- Enable/disable the create document routeuseRouteUpdate
- Enable/disable the update document routeuseRouteGetOne
- Enable/disable the get single document routepaging
- Enable/disable pagination for the get all routepageSize
- Default page size for paginationorderReverse
- Default sort order (true for descending)orderBy
- Default field to sort bydocAll
- Optional API documentation generator for get all routedocDelete
- Optional API documentation generator for delete routedocInsert
- Optional API documentation generator for insert routedocUpdate
- Optional API documentation generator for update routedocOne
- Optional API documentation generator for get one routechildren
- Additional child routes to include
Returns a list of WebRoute objects ready to be registered with the router.
Example:
var apiRoutes = userCollection.routes('/api/users', rq: request);
router.addRoutes(apiRoutes);
Implementation
List<WebRoute> routes(
String path, {
required WebRequest rq,
bool useRouteAll = true,
bool useRouteDelete = true,
bool useRouteInsert = true,
bool useRouteUpdate = true,
bool useRouteGetOne = true,
bool paging = true,
int pageSize = 20,
bool orderReverse = true,
String orderBy = '_id',
Future<ApiDoc>? Function()? docAll,
Future<ApiDoc>? Function()? docDelete,
Future<ApiDoc>? Function()? docInsert,
Future<ApiDoc>? Function()? docUpdate,
Future<ApiDoc>? Function()? docOne,
List<WebRoute> children = const [],
}) {
return <WebRoute>[
if (children.isNotEmpty)
WebRoute(
rq: rq,
path: path,
children: children,
),
if (useRouteAll)
routeGetAll(
path,
rq: rq,
paging: paging,
pageSize: pageSize,
orderReverse: orderReverse,
orderBy: orderBy,
apiDoc: docAll,
),
if (useRouteGetOne) routeGetOne('$path/{id}', rq: rq, apiDoc: docOne),
if (useRouteDelete)
routeDeleteOne(
'$path/delete/{id}',
rq: rq,
apiDoc: docDelete,
),
if (useRouteInsert) routeInsert(path, rq: rq, apiDoc: docInsert),
if (useRouteUpdate) routeUpdate('$path/{id}', rq: rq, apiDoc: docUpdate),
];
}