# Routes
Esta sección del servicio se compone de archivos dentro del directorio `/src/routes`, cada uno asociado a la ruta que lleva su nombre. En este directorio debe existir un archivo `index.ts` que será el indice de las rutas, puntualmente, si por ejemplo queremos definir la ruta de `User` que internamente tiene los métodos `getAll` y `update`, el archivo debería llamarse `user.ts` y su código sería:
Como regla general para los parámetros, es importante considerar que se puede utilizar:
- `body` siempre cuando sea una ruta de tipo `post` o `put`
- `params` siempre cuando sea una ruta de tipo `get` o se indique algún `id` en una ruta de tipo `put` o `delete`
- `query` siempre cuando sean varios parámetros, la ruta sea de tipo `get` y algunos de ellos puedan ser opcionales
Al menos se debe considerar el middleware `auth`. El código resultante quedaría como sigue:
```typescript=
// routers/post.ts
import { Router } from "express";
import auth from "../middlewares/auth";
import { getAll, getById, upsert, deleteById } from "../controllers/post";
const PostRouter = Router();
PostRouter.get("/getAll", auth, getAll);
PostRouter.get("/getById/:id", auth, getById);
PostRouter.post("/upsert/:id", auth, upsert);
PostRouter.delete("/deleteById/:id", auth, deleteById);
export default PostRouter;
```
Dentro de `index.ts` debe definirse de esta forma:
```typescript=
// routers/index.ts
import PostRouter from "./post";
export { PostRouter };
```
Ver los siguientes documentos:
- [**Creación de servicio BackEnd**](https://hackmd.io/@mGoZaVHZQTWgwFlq-J3U0w/B1eLiECDa)<br>
- [**Controllers**](https://hackmd.io/@mGoZaVHZQTWgwFlq-J3U0w/SyFI9PAvT)<br>
- [**Models**](https://hackmd.io/@mGoZaVHZQTWgwFlq-J3U0w/Hy5jcPCvp)<br>
- [**Queries**](https://hackmd.io/@mGoZaVHZQTWgwFlq-J3U0w/B1KJswCv6)<br>
- [**Schemas**](https://hackmd.io/@mGoZaVHZQTWgwFlq-J3U0w/Syhv28zk0)<br>