1
2import axios from 'axios';
3
4
5import { Actor } from 'apify';
6
7
8await Actor.init();
9
10interface Input {
11 word: string;
12}
13
14
15const input = await Actor.getInput<Input>();
16if (!input) throw new Error("Input is missing!");
17const { word } = input;
18
19
20if (!word || word.trim() === '') {
21 throw new Error("Debe proporcionar una palabra para consultar");
22}
23
24try {
25
26 const apiUrl = `https://rae-api.com/api/words/${encodeURIComponent(word.trim())}`;
27
28
29 const response = await axios.get(apiUrl);
30
31
32 if (response.status !== 200) {
33 throw new Error(`Error al consultar la API: ${response.status} ${response.statusText}`);
34 }
35
36
37 await Actor.pushData(response.data);
38
39 console.log(`Datos para la palabra "${word}" obtenidos y guardados correctamente.`);
40
41} catch (error) {
42
43 if (axios.isAxiosError(error)) {
44 if (error.response?.status === 404) {
45 console.error(`La palabra "${word}" no se encontró en el diccionario de la RAE.`);
46 } else {
47 console.error(`Error al realizar la petición: ${error.message}`);
48 }
49 } else {
50 console.error(`Error inesperado: ${error instanceof Error ? error.message : String(error)}`);
51 }
52
53
54 throw error;
55}
56
57
58await Actor.exit();