<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cronicas de un geek &#187; web service</title>
	<atom:link href="/tag/web-service/feed/" rel="self" type="application/rss+xml" />
	<link>https://cronicasgeek.com</link>
	<description>Programación y tecnología</description>
	<lastBuildDate>Sun, 31 May 2015 23:33:31 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>Cómo crear un api RESTful con slim php &#8211; introducción</title>
		<link>https://cronicasgeek.com/como-crear-un-api-rest-con-slim-php-introduccion/</link>
		<comments>https://cronicasgeek.com/como-crear-un-api-rest-con-slim-php-introduccion/#comments</comments>
		<pubDate>Thu, 24 Jul 2014 04:28:53 +0000</pubDate>
		<dc:creator><![CDATA[Kelvi S. Padilla]]></dc:creator>
				<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[restful]]></category>
		<category><![CDATA[slim]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">https://cronicasgeek.com/?p=37</guid>
		<description><![CDATA[<p>Últimamente se ha vuelto popular consumir servicios web a través de RESTful, según Wikipedia el término se refiere a “una técnica de arquitectura software para sistemas hipermedia distribuidos como la World Wide Web” pero comúnmente se utiliza para interfaces web a través de xml, json y http.  las ventajas de utilizar un servicio RESTful es que...</p>
<p>La entrada <a rel="nofollow" href="/como-crear-un-api-rest-con-slim-php-introduccion/">Cómo crear un api RESTful con slim php &#8211; introducción</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Últimamente se ha vuelto popular consumir servicios web a través de <a href="http://en.wikipedia.org/wiki/Representational_state_transfer">RESTful</a>, según Wikipedia el término se refiere a “<i>una técnica de arquitectura software para sistemas </i><a href="http://es.wikipedia.org/wiki/Hipermedia"><i>hipermedia</i></a><i> distribuidos como la </i><a href="http://es.wikipedia.org/wiki/World_Wide_Web"><i>World Wide Web</i></a>” pero comúnmente se utiliza para interfaces web a través de xml, json y http. <span id="more-37"></span></p>
<p>las ventajas de utilizar un servicio RESTful es que podemos utilizar un formato ligero de objetos Javascript llamado <a href="http://en.wikipedia.org/wiki/JSON">JSON</a>, el cual nos permite tener diferentes aplicaciones en distintos lenguajes que pueden interactuar entre sí, gracias a la flexibilidad del protocolo, y con el aumento de aplicaciones móviles es común que las bases de datos y en algunos casos la capacidad de procesamiento la realiza un servidor en la nube y no el teléfono, un ejemplo podría ser el de crear una aplicación en Android para un blog en WordPress, si queremos mostrar una lista de nuestros últimos artículos de manera personalizada, lo ideal sería recoger los datos del servidor y mostrarlos en una lista o en secciones, incluso el plugin jetpack permite el acceso de tu blog a través de su api json sin crearla nosotros lo que lo hace aún mas fácil, mas adelante haré un tutorial de como hacerlo pero por ahora supongamos que no tenemos la api y tenemos que hacerla de forma manual.</p>
<p>Se puede crear un api RESTful en varios lenguajes, en Ruby, PHP o Java por ejemplo, lo que nos da más opciones para escoger, en este caso por flexibilidad y facilidad de uso utilizaremos php y el micro framework <a href="http://slimframework.com"><b>slim</b></a> el cual nos agiliza el tiempo de desarrollo y entre sus ventajas podemos mencionar:</p>
<ol>
<li>Manejo de métodos HTTP estándar y personalizados</li>
<li>Configuración sencilla</li>
<li>Manejo de rutas</li>
<li>Manejo de plantillas para vistas</li>
<li>Es software libre.</li>
</ol>
<h2><i>Métodos HTTP utilizados en RESTful</i></h2>
<p><a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol">HTTP</a> es un protocolo de transferencias usado en Internet, la mayoría de navegadores sólo utilizan los métodos GET y POST para realizar transferencias dejando de lado los otros métodos (para ver todos lo métodos y su explicación da click <a href="http://trevinca.ei.uvigo.es/~txapi/espanol/proyecto/superior/memoria/node46.html">aqui</a> ). CRUD es el acrónimo utilizado para referirse a las funciones de Crear, Obtener, Actualizar y Borrar (<b>C</b>reate, <b>R</b>ead, <b>U</b>pdate, <b>D</b>elete en inglés), es lo que básicamente haremos con <b>slim</b> utilizando los métodos http para hacerlo, la función de cada método es la siguiente:</p>
<ul>
<li>GET: utilizado para obtener información (visibles en la url en el navegador).</li>
<li>POST: utilizado para insertar información.</li>
<li>PUT: utilizado para para actualizar datos.</li>
<li>DELETE: utilizado para eliminar datos.</li>
</ul>
<p>Existen otros métodos en el protocolo http que no usaremos aquí y cabe mencionar que esta es la utilización conocida como RESTful.</p>
<h2><i>Instalación de slim</i></h2>
<p>Primero debes descargar el código, existen dos formas y la más recomendada es por medio de <a href="https://getcomposer.org/">composer</a> lo único que necesitas para hacerlo es agregar en el archivo composer.json.</p><pre class="crayon-plain-tag">{
"require": {
"slim/slim": "2.*"
}
}</pre><p>y ejecutamos <i>php composer.phar install </i>desde la consola (también agregare a la lista un tutorial de composer), y la segunda opción es de manera manual que simplemente bajas la última versión del código que puedes descargar <a href="https://github.com/codeguy/Slim/zipball/master">aquí</a>, una vez descargado el código, dentro de la carpeta creas un archivo llamado index.php en el caso de haber hecho la descarga a través de composer agrega el siguiente código:</p><pre class="crayon-plain-tag">require 'vendor/autoload.php';</pre><p>si lo descargaste manual solo necesitas incluir la carpeta slim y en el archivo index.php agregamos el siguiente código:</p><pre class="crayon-plain-tag">require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();</pre><p>Para iniciar la clase utilizamos lo siguiente:</p><pre class="crayon-plain-tag">$app = new \Slim\Slim();</pre><p>y de esta manera ya tenemos todo listo para comenzar a agregar nuestras funciones, como prueba de que todo esta funcionando podemos agregar el siguiente ejemplo:</p><pre class="crayon-plain-tag">require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
// GET route
$app-&gt;get(
    '/',
    function () {
        $template = &lt;&lt;&lt;EOT
&lt;!DOCTYPE html&gt;
    &lt;html&gt;
        &lt;head&gt;
            &lt;meta charset="utf-8"/&gt;
            &lt;title&gt;Test de funcionamiento&lt;/title&gt;
        &lt;/head&gt;
        &lt;body&gt;
            &lt;h1&gt;Slim funciona perfectamente&lt;/h1&gt;
        &lt;/body&gt;
    &lt;/html&gt;
EOT;
        echo $template;
    }
);
$app-&gt;run();</pre><p>Si vemos en pantalla el mensaje “<i>Slim funciona perfectamente”</i> es porque todo esta funcionado bien. Para no hacer mas largo el tutorial dejaré hasta aquí este primer artículo, en la próxima entrada hablaré sobre las rutas y conexión a mysql, lo cual nos será de utilidad en muchas formas, si te gusto el articulo no olvides en comentar.</p>
<p>La entrada <a rel="nofollow" href="/como-crear-un-api-rest-con-slim-php-introduccion/">Cómo crear un api RESTful con slim php &#8211; introducción</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://cronicasgeek.com/como-crear-un-api-rest-con-slim-php-introduccion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
