2011-01-14 5 views
5

PHP y MySQLEl uso de una API REST para los sitios web dinámicos

en la construcción de sitios web dinámicos (puede ser, aplicación web personal, etc ..), es conveniente utilizar la API de solicitud de llamadas, en lugar de consultas de MySQL?

ejemplo en mi función getArticles(), debería usar una consulta de MySQL nativa como:

$sql = 'SELECT id, title, content 
     FROM r_articles' 
$result = mysql_query($sql) or die ('.. bla bla'); 

O, simplemente ejecutar una solicitud GET a: http://mysite.com/api/articles. Entonces (se supone que la respuesta está en JSON) formatee la respuesta.

NOTA: La API por supuesto debe crearse primero.

+0

Llego tarde a la fiesta, lo sé, pero ¿su enfoque REST no llevaría al doble de solicitudes HTTP? – chelmertz

Respuesta

6

Eso depende completamente del tipo de su sitio. Si está construyendo un proyecto pequeño solo con la interfaz web, quédese con sus llamadas a mysql.

Si está haciendo un sitio que crecerá y servirá a más de un servicio, p. una aplicación para Android/iPhone ya está planeada, construya la API y deje que ambas aplicaciones la utilicen. Las API son excelentes para la escalabilidad y sirven a muchos clientes. Sin embargo, para una representación web, p. para su dentista local es simplemente por encima.

1

Mis dos centavos:

creo que mucho de eso depende de la aplicación. Si se espera que la aplicación se implemente ampliamente (a través de la empresa/etc.) de manera que más de un sitio necesite acceder a los mismos objetos que esta aplicación, consultar un servicio web para su objeto Artículo probablemente lo conduzca a una mayor limpieza, más código reutilizable.

Al mismo tiempo, yo diría que hay un trabajo adicional relacionado con la ingeniería y la implementación de ese tipo de solución, y una mayor sobrecarga implicada en hacer que las solicitudes GET adicionales del script PHP hagan ese tipo de procesamiento . Además, podría haber riesgos de seguridad relacionados con la disponibilidad de una interfaz externa como esta, que podría necesitar ser examinada.

Por lo tanto, mi recomendación sería mantener los objetos muy bien encapsulados y compilarlos con SQL si el sitio es local y/o pequeño (ya que siempre existe la opción de ofrecerlos a través de SOAP o JSON o más adelante, si lo haces bien :). Si, por otro lado, esto va a ser una aplicación distribuida a gran escala, entonces votaría por pasar el tiempo al principio para construir algún tipo de API de marco de servicios, porque probablemente lo necesitará más tarde. .

1

Personalmente, considero que este método es bastante impresionante. Si sabe que utilizará esa API en el futuro, le asegura que su API tiene la misma funcionalidad que el sitio web y consolida toda su lógica. La desventaja es que probablemente tendrá un poco de sobrecarga adicional.

P.S. Dependiendo del tamaño previsto de su servicio/sitio web, puede poner esa API en su subdominio (api.website.com).