Muy buenas, vereis, me ha tocado diseñar una aplicación con este esquema(muchos estareis hartos de verlo seguramente)
interfaz para manejar datos(la que quiera)
api con los metodos para hacer el crud de la BBDD
base de datos.
Bien, tengo la base de datos probada, tengo las queries que hacen lo que se pide.
Los metodos POST, PUT y DELETE funcionan con json sin problemas.
El problema me viene por concepto en los metodos GET.
De entrada decir que no soy desarrollador y no era mi intencion serlo
pero soy el chico de los recados y nunca viene mal adquirir nuevos conocimientos, por lo que en apenas una semana he apredido lo suficiente de javascript para poder hacer que lo explicado funcione. Sin embargo me he topado con un error de concepto por mi parte, ya que conseguia que el GET hiciera todo lo que yo quería pero claro usando un json(y funciona, me devuelve lo que le pido). El problema viene cuando me entero que el concepto para el GET no es ese, investigando un poco he llegado a las siguientes cuestiones:
- Manteniendo el asunto sencillo, con un endpoint /api/tabla la api me devuelve todos los datos de la tabla como si un "SELECT * FROM tabla;" fuera
- con el endpoint /api/tabla/:id consigo que me devuelva los datos concretos pertenecientes a esa id( WHERE id = $1). Esto si no estoy equivocado se le denomina path param.
- y aqui viene mi problema. con un get igual ademas necesitaria lo siquiente(perdonad mi pseudocodigo):
select * from tabla where id = $1
and fecha between (fecha1=valor AND fecha2=valor);
si no me equivoco, los valores de fecha1 y fecha2 los puedo conseguir de la url de una forma tal que asi /api/tabla?fecha1=valor&fecha2=valor
y esto se llamaría query params, sin embargo no consigo dar con la tecla y no consigo llegar a un punto donde ponerme a investigar como deberia ir. mas adelante vendran mas problemas xD, pero eso para otro dia.
Mirando me perida con searchParams, con fetch...
Alguien me puede dar algo de claridad? me imagino que una vez saque los datos de la url bastará con pasarlos a variables y simplemente usar algo del estilo:
let valor1 = ...
let valor2=...
`select * from tabla where id = $1
and fecha between (fecha1=${valor1} AND fecha2 = ${valor2});`
Pero no se como pedirle que saque esos datos de la url para pode aplicar filtros bien.