Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Interacción con Android App con Laravel Action methods

Ya tengo páginas web de Laravel donde puedo añadir / actualizar / borrar / Leer registros de la base de datos MySQL. La versión de Laravel es 5.2.15

Ahora, tengo que integrar la base de datos con la aplicación para Android. Para ello tengo que publicar y leer Json Data.

Aquí la pregunta es: ¿Debo tener 2 métodos de acción pública? En primer lugar para la página web que mostrará los registros en la página web y segundo volverá los datos json en Android.

Quiero decir, cuando vuelva los datos a webPage .. Voy a tener que escribir el código a continuación.

return View("View-Path", array("Data" => $Data)); 

Pero en el caso de la aplicación de Android, tendré que solicitar datos de Json.

Por favor sugiera el enfoque correcto.

  • ¿Cómo puedo comprobar la compra en la aplicación de google en php?
  • Detectar si la aplicación de Android se ha instalado en el dispositivo mediante una página web móvil: PHP y JS
  • Conectar aplicaciones de Android a la base de datos mysql
  • Enviar solicitud de correo utilizando Volley y recibir en PHP
  • Algunas consultas sobre C2DM en Android
  • Generar android apk utilizando shell script de php?
  • ¿Por qué la función no obtiene datos de php en android?
  • ¿Hay una manera de comprobar si la página se cargó desde el caché del navegador?
  • 3 Solutions collect form web for “Interacción con Android App con Laravel Action methods”

    Debe desarrollar una API sencilla para acceder a los datos de APP de un cliente android:

    Rutas

    En primer lugar, necesita crear algunas rutas específicas para la API a través de la cual va a servir sus datos en formato JSON

    Autenticación

    Las rutas de la API deben manejar la autenticación de una manera diferente con respecto a lo que estás haciendo ahora: no puedes usar el enfoque clásico basado en sesiones. En su lugar, tiene que utilizar un enfoque básico o basado en tokens. Tienes diferentes alternativas, estas son algunas de las más utilizadas (desde las más simples, hasta las más complicadas)

    Autenticación básica HTTP de Laravel

    Autenticación de Token Web de Laravel Json

    Laravel OAUTH2

    Acceso a datos

    Una vez que hayas configurado tus rutas y tu autenticación, tendrás que enviar tus datos a través de las rutas de la API. Puesto que utiliza los mismos datos en sus rutas de APP y rutas de API, puede envolver la lógica de creación y recuperación de datos en los servicios y utilizar los servicios para obtener los datos tanto en las rutas de APP como en las rutas de la API.

    Utilizando diferentes controladores para rutas API y APP, dispone de:

     //APP Controller method for route: www.app.com/app-route/users public function getUsers() { //wrap the logic to build the data inside the service $service = App::make('your_service'); //once is ready, get the built data from the service $data = $service->getData(); return View("View-Path", array("Data" => $data)); } //API Controller method for route: www.app.com/api/users public function getUsers() { //use the same service to build and get the data you need $service = App::make('your_service'); $data = $service->getData(); return response()->json( $data ); } 

    De esta manera usted puede:

    • Encapsular la creación y recuperación de datos en los servicios, para que no tenga la necesidad de duplicar el código para la recuperación de datos entre las rutas APP y API

    • Tener controladores diferentes para acceder a las rutas APP o API; Para que pueda obtener los datos, transformarlos según sus necesidades y servirlos a las vistas oa los clientes api

    Acerca de la clase de servicio

    Con respecto a la clase de servicio que he mencionado, podría ser simplemente una o varias clases de contenedor que utilice tanto en los controladores de API como de APP para crear y obtener los datos sin repetir el código. La estructura de estas clases depende del funcionamiento de la aplicación.

    Por ejemplo, supongamos que necesita calcular algunos datos para el proyecto de cada usuario, almacenarlo en una variable y luego enviarlo a la vista:

     public function getUsers($request) { $user = Users::with('projects')->find( $request->user_id )->get(); $data = []; foreach ( $user->projects as $p ) { //compute some data you need and store it in $data; } return View("View-Path", array("Data" => $data)); } 

    Ahora si desea hacer lo mismo en el controlador de API, tendría que repetir este código para obtener los proyectos y crear los datos. Para evitar esto, podría "ajustar" el acceso a los datos en una clase de servicio y utilizar la misma clase en los controladores boh:

    Clase de servicio

     public class UserDataBuilder { protected $user; public function setUser( Authenticatable $user ) { $this->user = $user; } public function getData() { $user = Users::with('projects')->find( $this-user->id )->get(); $data = []; foreach ( $user->projects as $p ) { //compute some data you need and store it in $data; } return $data; } } 

    Y utilizar la misma clase en los controladores de API y APP:

     //APP controller: get the data and pass to the view public function getUsers($request) { $service = App::make( UserDataBuilder::class ); $service->setUser( User::find( $request->user_id )->get() ); return View("View-Path", array("Data" => $service->getData() ); } //API controller: get the data and convert to JSON public function getUsers($request) { $service = App::make( UserDataBuilder::class ); $service->setUser( User::find(1)->get() ); return response()->json( $data ); } 

    Para Android tienes que escribir un servicio web independiente.

    Puede utilizar un método para hacer eso. Ejemplo

     public function someMethod(Request $request){ $Data = ['laravel','is','awesome']; // If the request has the content type is json return a json response // So you android request will be true for this request // else return data to webpage if($request->isJson()){ return response()->json($Data); } return View("View-Path", array("Data" => $Data)); } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.