Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Last active January 20, 2019 00:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/a24f93f4381f98883711683b1c4986b6 to your computer and use it in GitHub Desktop.
Save parzibyte/a24f93f4381f98883711683b1c4986b6 to your computer and use it in GitHub Desktop.
/**
* Consumir API de respuestas inmediatas (instant answers)
* de DuckDuckGo en español con Node.js y request,
* usando JSON para el intercambio de datos
*
* @author parzibyte
*/
const request = require("request-promise"),
RUTA = "https://api.duckduckgo.com";
/**
* Una función que devuelve una promesa, al resolverse
* se tendrá la respuesta que dio DuckDuckGo.
*
* @param {string} busqueda La definición, pregunta o búsqueda
*/
const respuestaInmediata = busqueda => request({
uri: `${RUTA}/?q=${encodeURIComponent(busqueda)}&format=json`,
headers: {
'Accept-Language': 'es_LA', // Para consumirla en español
},
json: true, // Para que lo decodifique automáticamente
});
respuestaInmediata("JavaScript")
.then(datosRespuesta => {
let definicion = datosRespuesta.Definition,
resumen = datosRespuesta.AbstractText,
respuesta = datosRespuesta.Answer,
url = datosRespuesta.AbstractURL,
imagen = datosRespuesta.Image,
relacionados = datosRespuesta.RelatedTopics.map(relacionado => relacionado.Text);
console.log({ definicion, resumen, respuesta, url, imagen, relacionados });
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment