2011-07-07 16 views
9

Recibo muchos clientes que me preguntan sobre cómo hacer aplicaciones móviles que se conectan a sus sitios web para recuperar datos, permitir el inicio de sesión, etc. La mayoría de ellos tienen sitios basados ​​en PHP, pero no tienen cualquier pista sobre cómo hacer que las API interactúen con ellos. Me preguntan por qué no puedo conectarme directamente a sus bases de datos SQL. No creo que sea bueno hacerlo desde una aplicación móvil. Preferiría que tuvieran algún tipo de API en su lugar.Cómo crear API de sitio web

En lo que respecta a los sitios basados ​​en PHP, ¿cuáles son las mejores opciones cuando se trata de implementar una API para este fin?

+0

Diles que hay 6 teléfonos bajillion por ahí en 3 tropecientos variantes de sistemas operativos móviles, y no hay controladores de base para todas las variantes de teléfono/os. –

+1

Además, probablemente sea una mala idea distribuir sus credenciales de base de datos a todo el mundo, que es lo que está haciendo si permite que una aplicación ejecute consultas SQL directamente. – ceejayoz

+0

@Marc '$ .getJSON (" http://example.com/db ", {consulta:" SELECCIONAR * FROM etiquetas "}, función (res) {});' Súper seguro Y puedes escribir SQL en UI código que es ideal para la mantenibilidad. – Novikov

Respuesta

2

Usted desea ver en servicios web RESTful. Eche un vistazo a la wiki para este here. La necesidad de su cliente de construir esencialmente aplicaciones PHP que sirvan a los datos subyacentes de sus sitios web a través de algún tipo de datos que cumpla con REST, p. JSON, XML, SOAP, etc. Hay una serie de funciones PHP incorporadas que permiten la conversión rápida de estructuras de datos PHP en estos formatos. Esto le permitiría crear aplicaciones móviles que realizan solicitudes HTTP para obtener datos que luego pueden mostrar de forma única.

Un ejemplo de un servicio impulsado JSON podría ser la siguiente:

$action = $_GET['action']; 
switch($action) { 
    case 'get-newest-products': 
    echo json_encode(getNewestProducts()); 
    break; 
    case 'get-best-products': 
    echo json_encode(getBestProducts()); 
    break; 
    . 
    . 
    . 
    default: 
    echo json_encode(array()); 
    break; 
} 

function getNewestProducts($limit = 10) { 
    $rs = mysql_query("SELECT * FROM products ORDER BY created DESC LIMIT $limit"); 

    $products = array(); 
    if (mysql_num_rows($rs) > 0) { 
    while ($obj = mysql_fetch_object($rs)) { 
     $products[] $obj; 
    } 
    } 
    return $products; 
} 

function getBestProducts($limit = 10) { 
    $rs = mysql_query("SELECT * FROM products ORDER BY likes DESC LIMIT $limit"); 

    $products = array(); 
    if (mysql_num_rows($rs) > 0) { 
    while ($obj = mysql_fetch_object($rs)) { 
     $products[] $obj; 
    } 
    } 
    return $products; 
} 

Usted puede consultar la API de la siguiente manera (con mod_rewrite activado) http://myapi.mywebsite.com/get-newest-products

+0

informativo. Gracias. – gonzobrains

1

REST es una muy buena forma de estructurar los recursos para la recuperación. Crear una API REST es una forma muy útil de definir el conjunto de operaciones que se pueden realizar en sus datos, mientras se mantiene una capa relativamente delgada de abstracción entre la API y los datos en la base de datos. Dicho esto, no es exactamente trivial, pero sí obliga a considerar los usos y las preocupaciones de seguridad, y es muy extensible y a prueba de futuro.

4

Simplemente crea un subdominio api con un solo controlador, y un método para cada tarea específica - Salida de los datos en JSON, y listo:

http://api.theirsite.com/get-users 
http://api.theirsite.com/get-news 

etc ...

+0

Correcto, Hacer que PHP consulte la base de datos y concluirlo como un documento JSON es muy fácil. – Soren

-2

En lugar de aplicaciones les aconseja la utilización de su sitio móvil y un contenedor para abrir un navegador y redirigirlos al sitio móvil.

+0

umm, no. no te vayas. no cobra $ 200. – gonzobrains

+0

¿qué? No pude comprenderte .. –

0

Bueno, he visto muchos sitios web en Drupal, Joomla o Wordpress. Si ese es el caso, esos tienen un módulo de API que puedes habilitar y luego construir una aplicación de Android usando esos.

0

Nos enfrentamos a este problema con la suficiente frecuencia que presentamos un servlet de Java simple utilizando XQUERY como capa entre nuestro propio formato y el sitio de destino, almacenado principalmente en las bases de datos. Convierte esos datos en JSON a través de servicios REST. Eso podría hacernos flexibles y rápidos para cada nuevo sistema como Joomla, Wordpress, etc. Funciona desde hace muchos años para nosotros. La adaptación de un nuevo sistema dura usualmente por día. Puede usar Stylus-Enterprise para diseñar los archivos de Xquery con una IU. Si quieres mantenerte en PHP, Luracast Restler hace un buen trabajo, de hecho.

0

Utilice Php Slim Micro Framework para crear REST APi. Es muy fácil configurar y escribir el código.

gracias

+0

Por favor proporciona detalles. – gonzobrains

Cuestiones relacionadas