API del Diccionario de balear español - español balear

He creado esta API para que todo aquel que lo desee pueda crear su propio diccionario balear - español en su web. El uso es totalmente libre y lo único que pido a cambio es un simple enlace a esta web y que se indique que se está usando esta API.

¿Cómo funciona?

Su uso es realmente sencillo. Los parámetros se pasan por GET y son procesados por la base de datos, generando una respuesta JSON. La base de datos los procesará como expresiones regulares MYSQL a menos que no encuentre algún parámetro excepto el comodín "%", en cuyo caso los procesará como "LIKE"

Parece complicado, pero en realidad es muy sencillo y lo mejor es poner unos ejemplos:

http://diccionariobalear.com.es/api/?es=^eje$nos devolverá eje "Sólo la palabra que se haya buscado, sensible a acentos/tildes."
http://diccionariobalear.com.es/api/?es=ejenos devolverá eje "Como el caso anterior, pero insensible a acentos/tildes."
http://diccionariobalear.com.es/api/?es=%eje%nos devolverá eje, peje, ejercicio, ejército, etc. "Cualquier palabra/frase que contenga en cualquier parte la palabra eje, insensible a acentos/tildes."
http://diccionariobalear.com.es/api/?es=%ejenos devolverá eje, esqueje, etc "Cualquier palabra/frase que termine por eje, insensible a acentos/tildes."
http://diccionariobalear.com.es/api/?es=eje%nos devolverá eje, ejercicio, ejército, etc "Cualquier palabra/frase que empiece por eje, insensible a acentos/tildes."
http://diccionariobalear.com.es/api/?es=.ejenos devolverá peje, esqueje, etc "Cualquier palabra/frase que Contenga almenos un caracter a la izquierda de eje, sensible a acentos/tildes."
http://diccionariobalear.com.es/api/?es=eje.nos devolverá ejercicio, pejesapo, tejer, etc "Cualquier palabra/frase que Contenga almenos un caracter a la derecha de eje, sensible a acentos/tildes."
http://diccionariobalear.com.es/api/?es=eje|carronos devolverá eje, peje, carro, macarrones, etc "Cualquier palabra/frase que contenga eje o carro, sensible a acentos/tildes."

Si deseamos buscar en balear el método es exactamente el mismo pero con la variable GET "bal".

Por ejemplo: http://diccionariobalear.com.es/api/?bal=abre

En realidad se pueden usar infinidad de condiciones al realizar la búsqueda con patrones regulares. Aquí hemos visto un uso muy básico. Para todo aquel que quiera profundizar más en el tema, puede visitar esta web

Interesa tener claras dos cosas:
1ª - Si se usa la búsqueda por el método de expresiones regulares, ésta será sensible a las tildes/acentos y para solventarlo habrá que recurrir a condiciones más complejas, por lo que recomiendo el uso exclusivo del método LIKE, que será más que suficiente para la mayoría de necesidades.

2ª - Bajo ningún concepto se pueden mezclar, es decir, si usas el comodí "%", en dicha consulta no cabe ninguna expresión regular, o obtendrás un bonito error. Así mismo también encontrarás errores si las expresiones regulares que insertes no son correctas. Por ejemplo "??eje" devolverá un error.

¿Y ahora como recuperamos estos datos?

Son muchas las manera de hacerlo y lenguajes para usar. Dando por hecho que el lector sabe crear un formularo, partiremos de la base de datos recuperados despues de una solicitud por GET o por POST y en el ejemplo usaremos el lenguaje PHP:

if(!isset($_GET['es']) && !isset($_GET['bal'])) {$dato = "?bal=abre";} // en el ejemplo si no hay datos en el GET, se procesa la palabra balear "abre"
elseif(isset($_GET['es'])) {$dato = "?es=".$_GET['es'];} // en el ejemplo si se encuentra la palabra en español, se ignora todo lo demás y se procesa
else {$dato = "?bal=".$_GET['bal'];} // en el ejemplo si no se cumple lo anterior, se entiende que es balear

// leemos el contenido que devuelve el diccionario y decodificamos el JSON
$datos = file_get_contents("http://diccionariobalear.com.es/api/".$dato);
// Por alguna razón, por ejemplo la versión de PHP, pueden generarase caracteres basura antes del JSON, esto los eliminará
$datos = preg_replace('/\^.*?\[/', '[', $datos);
$resultados = json_decode($datos, true);

// evitamos el error del foreach si el array está vacío
if(!empty($resultados)) {

$cont = 0; // Opcional para obtener el total de resultados

// Para el ejemplo usaré una tabla, debe iniciarse y terminarse fuera del foreach obviamente.
echo "<table>";

// recorremos el array multidimensional
foreach ($resultados as $resultados => $resultados_array)
{
$cont += 1; // Opcional para obtener el total de resultados

echo "<tr><td><b>Baléà: </b></td><td>".$resultados_array['balea']."</td><td><b>Español: </b></td><td>".$resultados_array['espanol']."</td></tr>"; // presentamos en pantalla los resultados dentro de la tabla

} // cerramos el foreach

echo "</table>"; // cerramos la tabla

echo "<br />Se han encontrado ".$cont." resultados"; // Opcional para obtener el total de resultados

} // Fin del evitar error del foreach

else {echo "No se encontraron resultados";} // se muestra si no hay resultados
Para recuperar los datos por el método POST en lugar del GET del ejemplo, Sólo hay que cambiar todas las variables $_GET por $_POST.
Pero las consultas al diccionario, obligatóriamente se realizarán por GET, es decir, con parámetros de URL, tal y como se muestra en los ejemplos aquí citados.
Puedes ver un ejemplo del código totalmente funcional aquí.
Experimenta pasando parámetros por URL y observa los resultados obtenidos. Estos te pueden servir para determinar como deseas implementar la búsqueda en tu web.
Copyright mermelado 2017, todos los derechos reservados.