Dudas Android webservice MySQL

HG_Tevez

Recurro a la sabiduria de MV despues de intentarlo mil y una vez y deseperarme mil y una vez.

Os pongo en antecedentes, estoy realizando una aplicacion movil en android que debe conectarse con una base de datos que se encuentra en AWS RDS, despues de bastante investigar me di cuenta que debia utilizar webservice.

Ya tengo desarrollado los .php (o eso creo) para realizar operaciones de conexion y de crud. El problema viene cuando quiero juntar los webservice con la app android. No tengo ni idea de como leches se hace. Asi que sabeis de un tutorial o pagina web que lo explique como para subnormales?

Y otra pregunta, los webservice deben estar dentro de al app o desplegados en en el servidor de AWS.

Gracias por vuestro tiempo y un saludo

dabolbi

Tú tendrás un web service en tu servidor. Ese web service expuesto se conectará internamente con la bbdd y sacará los resultados. Necesitas un lenguaje para comunicarte con el web service (te recomiendo JSON o XML). Entonces tú desde la app llamas al servicio para obtener los datos. Ejemplo:

Tengo una base de datos de alumnos, y un web service que haga el crud. La url de mi servidor es www.alumnos.com (tuve suerte con el dominio je je)

Entonces el endpoint de mi web service es, por ejemplo: www.alumnos.com/alumno, y las operaciones que tengo son crear, borrar, actualizar y consultar alumnos. Para ello usaré los métodos HTTP: GET, POST, PUT y DELETE

Para consultar alumnos simplemente llamo por GET a www.alumnos.com/alumno/{idAlumno} (www.alumnos.com/alumno/132465798), me devolverá un JSON con la info del alumno:

{
       "id":"132465798",
       "nombre": "Pepito",
       "apellidos":"Grillo",
       .....
}

Para crear un alumno llamo por POST a www.alumnos.com/alumno con un JSON como el anterior (sin el id, claro):

{
       "nombre": "Pepito2",
       "apellidos":"Grillo2",
       .....
}

y me devolverá otro JSON con el resultado, si ha sido OK o si ha habido errores y cuáles

 {
    "result": "ERROR"
    "desc": "No se ha podido crear el alumno, el nombre es demasiado largo"
}

Para un update le indico en la url a quien voy a actualizar, llamo por PUT a www.alumnos.com/alumno/{idAlumno} (www.alumnos.com/alumno/132465798) con un JSON con la info a actualizar

Y para borrar es como consultar pero con el método DELETE en vez de el GET.

También puedes hacer que todo sean POST y poner la operación en la url, en plan:

www.alumnos.com/alumno/consultar POST
www.alumnos.com/alumno/crear POST
www.alumnos.com/alumno/actualizar POST
www.alumnos.com/alumno/borrar POST

Como te sea más fácil.

Hasta aquí el web service, los tutoriales pues buscando "exponer servicio rest php" o algo así xdddddd
por ejemplo: https://www.leaseweb.com/labs/2015/10/creating-a-simple-rest-api-in-php/
Tienes que pensar que los datos que no te vengan en la url te vendrán en el json de entrada, con lo cuál necesitarás una biblioteca para traducir el JSON dentro del servicio php (aunque me suena que en php hacías un json_decode y a correr, bueno, sería otra cosa a buscar).

Luego desde android, simplemente tienes que generar un json con los datos que necesites (también necesitarás alguna biblioteca que te convierta a JSON), y mandas la petición HTTP, ya sea GET, POST, DELETE o PUT. Aquí un ejemplo de un POST.

1 1 respuesta
HG_Tevez

#2 Vale creo que lo medio entiendo...

Cuando tu pones alumno.com yo tengo que poner la url de mi servidor?

1 respuesta
dabolbi

#3 exactamente.

Luego lo suyo es hacer un endpoint para el propio web service (un /algo)

http://{url}:{puerto}/{endpoint}
http://www.alumno.com/alumno

(el puerto no tiene por qué ser necesario, depende de cómo esté configurado el servidor )

Luego en el código php enrutas el /alumno (depende del framework de php que uses se enrutará de una manera o de otra), es decir, que asocias el /alumno a un controlador o método, y ya dentro del método pues miras qué datos te llegan y qué operación tienes que hacer, etc.

1
HG_Tevez

Lo pregunto... Alguien sabe si en AWS RDS puedo desplegar mis propios webservices? Y si es asi como?

1 respuesta
s4suk3

#5 en aws tienes lambda o algo así que sirve para crear apis
http://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html
Espero que sepas lo que haces porque te has metido en un mundo complejo XD