---
# System prepended metadata

title: Routes

---

# 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>