Feda /dev/

B

#26430 Esas son las mejores.

Troyer

Va, suelto un problema que tengo ahora mismo.

Como haríais el manejo de archivos (img/pdfs/zips) en una api rest?

Voy a ir haciendo el diseño y si a alguien le interesa le paso el resultado.

3 respuestas
Merkury

#26432 Cuando dices manejo? A que te refieres?

1 respuesta
Saphyel

#26432 poniendo el path. Si usas GraphQL te seria mas obvio el por que no.

1 respuesta
B

#26432 Si son archivos pequeños lo puedes poner dentro de un json como base64 .

1 respuesta
Troyer

#26433 pues que la API reciba un archivo desde una petición y haga lo que tenga que hacer con ella, por ejemplo de un producto, guardarla en su carpeta y devolver un OK.

Luego en los request de producto devuelva aparte de la info normal del producto, las respectivas URLs a sus imágenes.

#26435 tiene que poder gestionar grandes también :(

#26434 path? a que te refieres

2 respuestas
B

#26436 Añadir POST, actualizar PUT y envias esos datos en la cabecera de la petición.

1 respuesta
Troyer

#26437 enviar los datos no es el problema, el problema es como gestionar la imagen en la rest api y como hacer que los modelos sepan si tienen archivos o no.

2 respuestas
B

#26438 Cómo guardarlos en la bd?, lo mejor es en la bd el path del archivo y los archivos guardarlos en algúna carpeta. El path puede tener por ejemplo la id de cliente : /uploads/id_cliente/pajas.pdf . Yo no recomendaria almacenarlo como BLOB en la bd.

Si no quieres darle acceso directo al archivo en tu sistema por temas de seguridad, implementas la subida del archivo a un servicio de terceros como backblaze ( https://www.backblaze.com/es_ES/cloud-storage.html ) y muestras la url compartida en el json.

Saphyel

#26436 pues la url o la andadura/camino al fichero.

Yo tampoco guardaria un fichero en la bd. El FE ya que se encargue de hacer las pajas que quieras con la imagen

1 respuesta
B

#26440 a andadura/camino al fichero.

Vamos, la ruta en cristiano.

1 respuesta
Saphyel

#26441 suena mejor de mi forma :(

1 respuesta
B

#26442 Si eres google translator si. Me recuerda a cuando alguien copia y pega algún artículo en inglés traducido de aquella forma.

1 respuesta
Saphyel

#26443 los robots tambien tenemos derechos!

Cambiando un poco de tema: https://github.com/dylanbeattie/rockstar para los que quieran ser rockstar developers

1 respuesta
Fyn4r

#26444 pensaba que hablabas del GTA VI, vaya susto

PaCoX

ya empezamos mal si no sabes que es un path xd

1 respuesta
Troyer

#26446 Se lo que es el path pero no entendía lo de "pones el path y ya" como solución, porque no la es :<

1
LLoid

Yo lo haría con un FTP y guardando los paths de los ficheros en la BBDD. La API mira a ver si tiene el fichero y devuelve al cliente el comando FTP para descargarlo.

O envías disketes por correo postal, yo qué sé.

1 2 respuestas
Merkury

#26448 Con FTP? WTF.

#26438 Basicamente para saber si tienes archivos o no tendras que mirar la request o que?

2 respuestas
eondev

#26428 pero esq una cosa es el flat design y otra q la ui sea putamente fea con los componentes enormes mal puestos porq no caben dos cosas una al lado de otra y sea todo scroll xD.

Saphyel

#26448 yo siempre pense que en bytes usando la luz del sol reflejandola es lo mejor para enviar informacion o pavos como en disenchantment http://disenchantment.wikia.com/wiki/Turkey .

1
Troyer

#26449 Ya lo estoy haciendo, luego explico como lo estoy haciendo.

Ejemplos como debería de funcionar:

Cuando el cliente pide productos:
Cliente GET: /product/id -> Api RESPONSE: Product { Data[], Images[1 => "URL"],Files[]}

Cuando el cliente actualiza una img de producto:

Cliente POST (PUT): /product/id/edit Product { Images[ 1=> "inputUploadData",]} ->
Api recibe el PUT -> Almacena los datos normales y cuando recibe las Images las pasa al FileManager Model y hace la magia.
Api RESPONSE: 200 OK.

eondev

@MisKo @Merkury wtf

4 respuestas
Merkury

#26453 WTF?

2 respuestas
MisKo

#26454 #26453 ???

EDIT: Ahora que se ve la foto..

Que cojones has puesto? xD

1 respuesta
eondev

#26454 #26455 editado :/

1 respuesta
LLoid

#26449 si son ficheros tochos mejor eso que no meterlo como binario en la base de datos no?

1 respuesta
B

#26453 No me fiaría mucho de una página que lleva sin actualizar su "copyright" desde 2016...

MisKo

#26456 Me da que han geolocalizado tu ip en algun pais subsahariano y de ahí que te hayan marcado como Fraude.

Escríbeles un correo a VPSDime.

Mas info de lo de fraude + geolocalización aqui: https://www.maxmind.com/es/home

1 respuesta
Markitos_182

#26453 WTF?

Tema cerrado