-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstruccionesM3integracion.txt
154 lines (111 loc) · 4.91 KB
/
instruccionesM3integracion.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Crea una segunda carpeta al mismo nivel **`Server`**. Dentro de esta crea una carpeta con el nombre **src** y otra con el nombre **test**.
3. Dentro de la carpeta **src** crea lo siguiente:
- Un archivo llamado **`index.js`**.
- Una carpeta llamada **`controllers`**.
- Una carpeta llamada **`routes`**.
- Una carpeta llamada **`utils`**.
Copia el archivo [**data.js**](./data.js) que se encuentra en esta carpeta y pégalo dentro de tu pryecto en la carpeta **utils**.
data.js:
module.exports = [
{
id: 1,
name: 'Rick Sanchez',
status: 'Alive',
species: 'Human',
gender: 'Male',
origin: {
name: 'Earth (C-137)',
url: 'https://rickandmortyapi.com/api/location/1',
},
image: 'https://rickandmortyapi.com/api/character/avatar/1.jpeg',
},
{
id: 2,
name: 'Morty Smith',
status: 'Alive',
species: 'Human',
gender: 'Male',
origin: {
name: 'unknown',
url: '',
},
image: 'https://rickandmortyapi.com/api/character/avatar/2.jpeg',
},
{
id: 3,
name: 'Summer Smith',
status: 'Alive',
species: 'Human',
gender: 'Female',
origin: {
name: 'Earth (Replacement Dimension)',
url: 'https://rickandmortyapi.com/api/location/20',
},
image: 'https://rickandmortyapi.com/api/character/avatar/3.jpeg',
},
{
id: 4,
name: 'Beth Smith',
status: 'Alive',
species: 'Human',
gender: 'Female',
origin: {
name: 'Earth (Replacement Dimension)',
url: 'https://rickandmortyapi.com/api/location/20',
},
image: 'https://rickandmortyapi.com/api/character/avatar/4.jpeg',
},
{
id: 5,
name: 'Jerry Smith',
status: 'Alive',
species: 'Human',
gender: 'Male',
origin: {
name: 'Earth (Replacement Dimension)',
url: 'https://rickandmortyapi.com/api/location/20',
},
image: 'https://rickandmortyapi.com/api/character/avatar/5.jpeg',
},
];
De esta manera crearás un archivo **`package.json`**. En este solo deberás instalar la librería **nodemon** de la siguiente manera:
```bash
npm install nodemon
```
Una vez hecho esto, dentro del objeto **scripts** tienes que dejar el script **`start`** de la siguiente manera:
```json
"start": "nodemon ./src/index.js"
```
<br />
---
### **👩💻 EJERCICIO 3 | Servidor**
Dírigete al archivo llamado **`index.js`** que creaste en el ejercicio 1. Dentro de este deberás:
1. Importar **http** desde el módulo **`http`**.
2. A partir de **http** crea y levanta un servidor en el puerto **3001**.
3. Copia y pega la siguiente línea dentro del callback de tu servidor
```js
res.setHeader('Access-Control-Allow-Origin', '*');
```
4. Crea un condicional que verfique si la **url** incluye el string "**`/rickandmorty/character`**". En el caso de que si lo haga deberás obtener el **id** del personaje que te llega por la **url**. Luego de obtener el **id**, búscalo dentro del archivo **`data.js`** (deberás importar el archivo). Ten en cuenta que el **id** de la url es un string, y los **id** de los personajes son números.
> [**NOTA**]: la url te llegará con la siguiente estructura. Ejemplo: **`/rickandmorty/character/:id`**. Piensa en una lógica que te permita obtener el **id** del final.
5. Envía como respuesta un JSON que contenga al personaje.
<br />
---
### **👩💻 EJERCICIO 4 | Front & Back**
1. Abre tu proyecto en la carpeta **`Client`** y dirígete al archivo **`App.js`** en el que realizarás un pequeño cambio.
2. Busca tu función **`onSearch`**. Deberás reemplazar la url a la que se le está haciendo la petición:
- **URL anitgua**: "**https://rickandmortyapi.com/api/character/${id}**".
- **URL por la que debes reemplazar**: "**http://localhost:3001/rickandmorty/character/${id}**".
3. Ahora dirígete a tu componente **`Detail`** . Aquí tienes un **`useEffect`** que también está haciendo una petición a la API, por lo que debemos hacer el mismo cambio que antes:
- **URL anitgua**: "**https://rickandmortyapi.com/api/character/${id}**".
- **URL por la que debes reemplazar**: "**http://localhost:3001/rickandmorty/character/${id}**".
> **[NOTA]:** recuerda agregar el **id** como parámetro al final.
<br />
---
### **👀 ¡COMPROBEMOS NUESTRO TRABAJO!**
Ahora comprobaremos que todo funciona correctamente. Para esto:
1. Abre dos terminales. En una deberás levantar tu proyecto del lado Front-End, y en la otra levantar tu proyecto en el lado Back-End.
2. Una vez que todo esté arriba, intenta utilizar tu aplicación. Trae personajes e ingresa a sus detalles para chequear que no haya ningún error.
> [**NOTA**]: solo podrás buscar a los personajes con id **1**, **2**, **3**, **4** y **5**, ya que estos son los que tienes guardados en tu archivo **`data.js`**.
</br >
<img src="./img/example.gif" alt="" />