SlideShare ist ein Scribd-Unternehmen logo
1 von 45
REST en PHP

                                                                          David J.
                                                                          Brenes
                                                                          Martínez
                                                                        Desarrollador
       Servicios Web REST con PHP                                        en Grupo
                                                                           Índigo


                                                                        Servir REST
                                                                        Lo Básico
                David J. Brenes Martínez                                Métodos HTTP
                                                                        Formatos de datos
              Desarrollador en Grupo Índigo                             Consumir
                                                                        Servicios
                                                                        REST
                   Curso de Extensión Universitaria                     PHP y HTTP

Desarrollo de aplicaciones web mediante servicios web y APIs abiertas   Rest con CouchDB
                                                                        Rest con Twitter
                        Universidad de Oviedo
                                                                        Extras
                                                                        OAuth

                           2009/07/20                                   Frameworks REST

                                                                        Conclusiones

                                                                        Créditos y
                                                                        Licencia
¿Qué es PHP?

                                                                REST en PHP

                                                                  David J.
                                                                  Brenes
                                                                  Martínez
                                                                Desarrollador
                                                                 en Grupo
                                                                   Índigo


   Lenguaje interpretado en el Servidor Web                     Servir REST
                                                                Lo Básico
   Su salida estándar es la Respuesta HTTP                      Métodos HTTP
                                                                Formatos de datos
       ‘print’ o ‘echo’ escriben directamente en la respuesta   Consumir
                                                                Servicios
   De este modo se sirven páginas web                           REST
                                                                PHP y HTTP
                                                                Rest con CouchDB
                                                                Rest con Twitter

                                                                Extras
                                                                OAuth
                                                                Frameworks REST

                                                                Conclusiones

                                                                Créditos y
                                                                Licencia
Devolviendo datos

                                        REST en PHP

                                          David J.
                                          Brenes
                                          Martínez
                                        Desarrollador
                                         en Grupo
                                           Índigo


                                        Servir REST
Mostrando datos por la respuesta HTTP   Lo Básico
                                        Métodos HTTP
echo "Hello World!!";                   Formatos de datos


print "Hello World!!";                  Consumir
                                        Servicios
                                        REST
                                        PHP y HTTP
                                        Rest con CouchDB
                                        Rest con Twitter

                                        Extras
                                        OAuth
                                        Frameworks REST

                                        Conclusiones

                                        Créditos y
                                        Licencia
Devolviendo datos

                                             REST en PHP

                                               David J.
                                               Brenes
                                               Martínez
                                             Desarrollador
                                              en Grupo
                                                Índigo

Mostrando estructuras en la respuesta HTTP
                                             Servir REST
$hello = array("hello", "world");            Lo Básico
                                             Métodos HTTP

print_r($hello);                             Formatos de datos


                                             Consumir
$hello = array("hello" => "world");          Servicios
                                             REST
var_dump($hello);                            PHP y HTTP
                                             Rest con CouchDB
                                             Rest con Twitter

                                             Extras
                                             OAuth
                                             Frameworks REST

                                             Conclusiones

                                             Créditos y
                                             Licencia
Extensión Poster

                                                         REST en PHP

                                                           David J.
                                                           Brenes
                                                           Martínez
                                                         Desarrollador
                                                          en Grupo
                                                            Índigo


    Extensión para Firefox que realiza peticiones HTTP   Servir REST
                                                         Lo Básico

    Ideal para depurar servicios REST                    Métodos HTTP
                                                         Formatos de datos

    https://addons.mozilla.org/en-US/                    Consumir
                                                         Servicios
    firefox/addon/2691                                   REST
                                                         PHP y HTTP
                                                         Rest con CouchDB
                                                         Rest con Twitter

                                                         Extras
                                                         OAuth
                                                         Frameworks REST

                                                         Conclusiones

                                                         Créditos y
                                                         Licencia
Extensión Poster

                                                     REST en PHP

                                                       David J.
                                                       Brenes
                                                       Martínez
                                                     Desarrollador
                                                      en Grupo
                                                        Índigo


    URL del servicio web con sus parámetros          Servir REST
                                                     Lo Básico

    Content-type para post:                          Métodos HTTP
                                                     Formatos de datos

    application/x-www-form-urlencoded                Consumir
                                                     Servicios
    ‘Content to Send’: Mismo formato que en la URL   REST
                                                     PHP y HTTP
                                                     Rest con CouchDB
                                                     Rest con Twitter

                                                     Extras
                                                     OAuth
                                                     Frameworks REST

                                                     Conclusiones

                                                     Créditos y
                                                     Licencia
Petición GET

                                                     REST en PHP

                                                       David J.
                                                       Brenes
                                                       Martínez
                                                     Desarrollador
                                                      en Grupo
                                                        Índigo


                                                     Servir REST
   Es el método más habitual de trabajo              Lo Básico
                                                     Métodos HTTP
   Los parámetros se mandan en la URL                Formatos de datos


                                                     Consumir
   Los parámetros se recogen en la variable $_GET.   Servicios
                                                     REST
                                                     PHP y HTTP
                                                     Rest con CouchDB
                                                     Rest con Twitter

                                                     Extras
                                                     OAuth
                                                     Frameworks REST

                                                     Conclusiones

                                                     Créditos y
                                                     Licencia
Petición GET

                                                       REST en PHP

                                                         David J.
                                                         Brenes
                                                         Martínez
                                                       Desarrollador
                                                        en Grupo
        http://url?param1=value1&param2=value2            Índigo


                                                       Servir REST
                                                       Lo Básico

Accediendo a los parámetros GET                        Métodos HTTP
                                                       Formatos de datos


echo $_GET["param1"]; // => value1                     Consumir
                                                       Servicios
// ...                                                 REST
                                                       PHP y HTTP
echo var_dump($_GET); // => array(2) { ["param1"]=>    Rest con CouchDB
                                                       Rest con Twitter
string(6) "value1" ["param2"]=> string(6) "value2" }   Extras
                                                       OAuth
                                                       Frameworks REST

                                                       Conclusiones

                                                       Créditos y
                                                       Licencia
Petición POST

                                                          REST en PHP

                                                            David J.
                                                            Brenes
                                                            Martínez
                                                          Desarrollador
                                                           en Grupo
                                                             Índigo

   Es otro método habitual de trabajo                     Servir REST
                                                          Lo Básico
   Usado en formularios web                               Métodos HTTP
                                                          Formatos de datos

   Los parámetros se mandan en el cuerpo de la petición   Consumir
                                                          Servicios
   Los parámetros se recogen en la variable $_POST.       REST
                                                          PHP y HTTP
                                                          Rest con CouchDB
                                                          Rest con Twitter

                                                          Extras
                                                          OAuth
                                                          Frameworks REST

                                                          Conclusiones

                                                          Créditos y
                                                          Licencia
Petición POST

                                                       REST en PHP

                                                         David J.
                                                         Brenes
                                                         Martínez
                                                       Desarrollador
                                                        en Grupo
                                                          Índigo

Accediendo a los parámetros POST
                                                       Servir REST
echo $_POST["param1"]; // => value1                    Lo Básico
                                                       Métodos HTTP

// ...                                                 Formatos de datos


                                                       Consumir
echo var_dump($_POST); // => array(2) { ["param1"]=>   Servicios
                                                       REST
string(6) "value1" ["param2"]=> string(6) "value2" }   PHP y HTTP
                                                       Rest con CouchDB
                                                       Rest con Twitter

                                                       Extras
                                                       OAuth
                                                       Frameworks REST

                                                       Conclusiones

                                                       Créditos y
                                                       Licencia
Petición PUT

                                                           REST en PHP

                                                             David J.
                                                             Brenes
                                                             Martínez
                                                           Desarrollador
                                                            en Grupo
   Método menos habitual de trabajo                           Índigo

   Los parámetros se mandan en el cuerpo de la petición    Servir REST
                                                           Lo Básico
   No hay variable $_PUT                                   Métodos HTTP
                                                           Formatos de datos

   Los parámetros se recogen de la entrada estandar        Consumir
                                                           Servicios
   (php://input)                                           REST
                                                           PHP y HTTP
   Tendremos que leer la entrada estandar y procesar los   Rest con CouchDB
                                                           Rest con Twitter
   datos                                                   Extras
                                                           OAuth
                                                           Frameworks REST

                                                           Conclusiones

                                                           Créditos y
                                                           Licencia
Petición PUT

                                                            REST en PHP

                                                              David J.
                                                              Brenes
                                                              Martínez
                                                            Desarrollador
                                                             en Grupo
Accediendo a la petición PUT                                   Índigo

$putdata = fopen("php://input", "r");                       Servir REST
$put_data = "";                                             Lo Básico
                                                            Métodos HTTP

while ($data = fread($putdata, 1024)) $put_data .= $data;   Formatos de datos


                                                            Consumir
fclose($putdata);                                           Servicios
                                                            REST
                                                            PHP y HTTP
                                                            Rest con CouchDB

         Tenemos en $putdata los datos enviados             Rest con Twitter

                                                            Extras
                                                            OAuth
                                                            Frameworks REST

                                                            Conclusiones

                                                            Créditos y
                                                            Licencia
Petición PUT

                                                            REST en PHP

                                                              David J.
                                                              Brenes
                                                              Martínez
                                                            Desarrollador
                                                             en Grupo
                                                               Índigo

Procesando los datos de la petición PUT                     Servir REST
                                                            Lo Básico

parse_str($put_data);                                       Métodos HTTP
                                                            Formatos de datos


                                                            Consumir
                                                            Servicios
    parse_str convierte los datos del string en variables   REST
                                                            PHP y HTTP
                                                            Rest con CouchDB
                                                            Rest con Twitter

                                                            Extras
                                                            OAuth
                                                            Frameworks REST

                                                            Conclusiones

                                                            Créditos y
                                                            Licencia
Petición DELETE

                                                    REST en PHP

                                                      David J.
                                                      Brenes
                                                      Martínez
                                                    Desarrollador
                                                     en Grupo
                                                       Índigo


                                                    Servir REST
   Método menos habitual de trabajo                 Lo Básico
                                                    Métodos HTTP
   Los parámetros normalmente se mandan en la URL   Formatos de datos


                                                    Consumir
   No hay variable $_DELETE, se usa $_GET           Servicios
                                                    REST
                                                    PHP y HTTP
                                                    Rest con CouchDB
                                                    Rest con Twitter

                                                    Extras
                                                    OAuth
                                                    Frameworks REST

                                                    Conclusiones

                                                    Créditos y
                                                    Licencia
Formatos soportados

                                              REST en PHP

                                                David J.
                                                Brenes
                                                Martínez
                                              Desarrollador
                                               en Grupo
                                                 Índigo


                                              Servir REST
   REST no impone un formato                  Lo Básico
                                              Métodos HTTP
   Con PHP podemos mandar lo que queramos     Formatos de datos


                                              Consumir
   Hay funciones especiales para XML y JSON   Servicios
                                              REST
                                              PHP y HTTP
                                              Rest con CouchDB
                                              Rest con Twitter

                                              Extras
                                              OAuth
                                              Frameworks REST

                                              Conclusiones

                                              Créditos y
                                              Licencia
HTML

                                                        REST en PHP

                                                          David J.
                                                          Brenes
                                                          Martínez
                                                        Desarrollador
                                                         en Grupo
                                                           Índigo


  Habitualmente se escribe con echo y print.            Servir REST
                                                        Lo Básico

  No suele ser necesaria ayuda extra para servir HTML   Métodos HTTP
                                                        Formatos de datos

  Bibliotecas: Tidy (http:                              Consumir
                                                        Servicios
  //es.php.net/manual/en/book.tidy.php)                 REST
                                                        PHP y HTTP
                                                        Rest con CouchDB
                                                        Rest con Twitter

                                                        Extras
                                                        OAuth
                                                        Frameworks REST

                                                        Conclusiones

                                                        Créditos y
                                                        Licencia
XML

                                                         REST en PHP

                                                           David J.
                                                           Brenes
  Al igual que HTML, con echo y print.                     Martínez
                                                         Desarrollador
  Existen bibliotecas de tratamiento de XML               en Grupo
                                                            Índigo
      Suelen ser más útiles para procesar XML que para
      generarlo.                                         Servir REST
                                                         Lo Básico
      Permiten generar un arbol XML y volcarlo           Métodos HTTP
                                                         Formatos de datos

  Bibliotecas:                                           Consumir
                                                         Servicios
      DOM:                                               REST
      http://es.php.net/manual/en/book.dom.php           PHP y HTTP
                                                         Rest con CouchDB
      SimpleXML: http:                                   Rest con Twitter

      //es.php.net/manual/en/book.simplexml.php          Extras
      XSL:                                               OAuth
                                                         Frameworks REST

      http://es.php.net/manual/en/book.xsl.php           Conclusiones

                                                         Créditos y
                                                         Licencia
JSON

                                                           REST en PHP

                                                             David J.
                                                             Brenes
                                                             Martínez
                                                           Desarrollador
                                                            en Grupo
                                                              Índigo
  PHP5 ofrece soporte directo para JSON
                                                           Servir REST
       json_encode: Codifica una variable en formato JSON   Lo Básico

       json_decode: Genera una variable a partir de una    Métodos HTTP
                                                           Formatos de datos
       cadena JSON
                                                           Consumir
                                                           Servicios
  Referencia: http:                                        REST
  //es.php.net/manual/en/book.json.php                     PHP y HTTP
                                                           Rest con CouchDB
                                                           Rest con Twitter

                                                           Extras
                                                           OAuth
                                                           Frameworks REST

                                                           Conclusiones

                                                           Créditos y
                                                           Licencia
Biblioteca cURL

                                               REST en PHP

                                                 David J.
                                                 Brenes
                                                 Martínez
                                               Desarrollador
                                                en Grupo
                                                  Índigo
    Biblioteca para realizar peticiones HTTP
                                               Servir REST
    En PHP5 activa por defecto                 Lo Básico
                                               Métodos HTTP

    Permite indicar proxy, método HTTP. . .    Formatos de datos


                                               Consumir
    http:                                      Servicios
                                               REST
    //es.php.net/manual/en/book.curl.php       PHP y HTTP
                                               Rest con CouchDB
                                               Rest con Twitter

                                               Extras
                                               OAuth
                                               Frameworks REST

                                               Conclusiones

                                               Créditos y
                                               Licencia
Realizando la conexión

                                                 REST en PHP

                                                   David J.
                                                   Brenes
                                                   Martínez
                                                 Desarrollador
                                                  en Grupo
Conexión GET mediante cURL                          Índigo

$conexion = curl_init();
                                                 Servir REST
curl_setopt($conexion, CURLOPT_RETURNTRANSFER,   Lo Básico
                                                 Métodos HTTP
TRUE);                                           Formatos de datos


curl_setopt($conexion, CURLOPT_HEADER, 0);       Consumir
                                                 Servicios
curl_setopt($conexion, CURLOPT_URL, $url);       REST
                                                 PHP y HTTP
$resultado = curl_exec($conexion);               Rest con CouchDB
                                                 Rest con Twitter
curl_close($conexion);                           Extras
                                                 OAuth
                                                 Frameworks REST

                                                 Conclusiones

                                                 Créditos y
                                                 Licencia
Realizando la conexión

                                        REST en PHP

                                          David J.
                                          Brenes
                                          Martínez
                                        Desarrollador
                                         en Grupo
                                           Índigo


                                        Servir REST
Especificando proxy HTTP                 Lo Básico
                                        Métodos HTTP
curl_setopt($conexion, CURLOPT_PROXY,   Formatos de datos


’http://proxy.uniovi.es:8888’);         Consumir
                                        Servicios
                                        REST
                                        PHP y HTTP
                                        Rest con CouchDB
                                        Rest con Twitter

                                        Extras
                                        OAuth
                                        Frameworks REST

                                        Conclusiones

                                        Créditos y
                                        Licencia
Realizando la conexión

                                                REST en PHP

                                                  David J.
                                                  Brenes
                                                  Martínez
                                                Desarrollador
                                                 en Grupo
                                                   Índigo


                                                Servir REST
Eligiendo método HTTP                           Lo Básico
                                                Métodos HTTP
curl_setopt($conexion, CURLOPT_CUSTOMREQUEST,   Formatos de datos


$method);                                       Consumir
                                                Servicios
                                                REST
                                                PHP y HTTP
                                                Rest con CouchDB
                                                Rest con Twitter

                                                Extras
                                                OAuth
                                                Frameworks REST

                                                Conclusiones

                                                Créditos y
                                                Licencia
Realizando la conexión

                                                     REST en PHP

                                                       David J.
                                                       Brenes
                                                       Martínez
                                                     Desarrollador
                                                      en Grupo
                                                        Índigo


                                                     Servir REST
Indicando los datos del cuerpo de la petición        Lo Básico
                                                     Métodos HTTP
                                                     Formatos de datos
curl_setopt($conexion, CURLOPT_POSTFIELDS, $data);
                                                     Consumir
                                                     Servicios
                                                     REST
                                                     PHP y HTTP
                                                     Rest con CouchDB
                                                     Rest con Twitter

                                                     Extras
                                                     OAuth
                                                     Frameworks REST

                                                     Conclusiones

                                                     Créditos y
                                                     Licencia
Sobre CouchDB

                                          REST en PHP

                                            David J.
                                            Brenes
                                            Martínez
                                          Desarrollador
                                           en Grupo
                                             Índigo


                                          Servir REST
   Base de Datos Orientada a Documentos   Lo Básico
                                          Métodos HTTP
                                          Formatos de datos
   Implementa una API RESTful             Consumir
                                          Servicios
                                          REST
                                          PHP y HTTP
                                          Rest con CouchDB
                                          Rest con Twitter

                                          Extras
                                          OAuth
                                          Frameworks REST

                                          Conclusiones

                                          Créditos y
                                          Licencia
Sobre la API de CouchDB

                                                          REST en PHP

                                                            David J.
                                                            Brenes
                                                            Martínez
                                                          Desarrollador
                                                           en Grupo
                                                             Índigo


                                                          Servir REST
   API basada en REST                                     Lo Básico
                                                          Métodos HTTP

   Soporta formato JSON para el intercambio de datos en   Formatos de datos


   las peticiones                                         Consumir
                                                          Servicios
                                                          REST
                                                          PHP y HTTP
                                                          Rest con CouchDB
                                                          Rest con Twitter

                                                          Extras
                                                          OAuth
                                                          Frameworks REST

                                                          Conclusiones

                                                          Créditos y
                                                          Licencia
Sobre Twitter

                                                      REST en PHP

                                                        David J.
                                                        Brenes
                                                        Martínez
                                                      Desarrollador
                                                       en Grupo
                                                         Índigo

    Famoso servicio de microblogging                  Servir REST
    API muy utilizada.                                Lo Básico
                                                      Métodos HTTP
                                                      Formatos de datos
        Más peticiones por API que en la Web
                                                      Consumir
        Decenas de clientes para muchas plataformas   Servicios
        (Nintendo DS)                                 REST
                                                      PHP y HTTP
                                                      Rest con CouchDB
                                                      Rest con Twitter

                                                      Extras
                                                      OAuth
                                                      Frameworks REST

                                                      Conclusiones

                                                      Créditos y
                                                      Licencia
Sobre la API de Twitter

                                                      REST en PHP

                                                        David J.
                                                        Brenes
                                                        Martínez
                                                      Desarrollador
                                                       en Grupo
                                                         Índigo
    API basada en REST
    Soporta formatos XML y JSON para las peticiones   Servir REST
                                                      Lo Básico

    Exige autenticación para algunos métodos.         Métodos HTTP
                                                      Formatos de datos


    Tiene limitación de peticiones a realizar         Consumir
                                                      Servicios
                                                      REST
                                                      PHP y HTTP
           http://apiwiki.twitter.com/                Rest con CouchDB
                                                      Rest con Twitter

                                                      Extras
                                                      OAuth
                                                      Frameworks REST

                                                      Conclusiones

                                                      Créditos y
                                                      Licencia
Problemática

                                                    REST en PHP

                                                      David J.
                                                      Brenes
                                                      Martínez
                                                    Desarrollador
                                                     en Grupo
   Algunas APIs requieren autenticación                Índigo

   Las aplicaciones deben conocer los detalles de   Servir REST

   autenticación                                    Lo Básico
                                                    Métodos HTTP
                                                    Formatos de datos
   ¿A quién confias tus claves?                      Consumir
                                                    Servicios
                                                    REST
 http://www.codinghorror.com/blog/archives/         PHP y HTTP
                                                    Rest con CouchDB
                001072.html                         Rest con Twitter

                                                    Extras
                                                    OAuth
                                                    Frameworks REST

                                                    Conclusiones

                                                    Créditos y
                                                    Licencia
Problemática

                                                       REST en PHP

                                                         David J.
                                                         Brenes
                                                         Martínez
                                                       Desarrollador
                                                        en Grupo
                                                          Índigo
   Se requiere un método más seguro para las APIs
   Las aplicaciones NO deben conocer los detalles de   Servir REST
                                                       Lo Básico

   autenticación                                       Métodos HTTP
                                                       Formatos de datos


   ¿Cómo se autentican?                                Consumir
                                                       Servicios
                                                       REST

            OAuth: http://oauth.net/                   PHP y HTTP
                                                       Rest con CouchDB
                                                       Rest con Twitter

                                                       Extras
                                                       OAuth
                                                       Frameworks REST

                                                       Conclusiones

                                                       Créditos y
                                                       Licencia
Vocabulario

                                                        REST en PHP

                                                          David J.
                                                          Brenes
                                                          Martínez
                                                        Desarrollador
                                                         en Grupo
                                                           Índigo
    Servicio: La aplicación que provee el servicio
                                                        Servir REST
    Consumidor: La aplicación que desea acceder a los   Lo Básico
                                                        Métodos HTTP
    recursos protegidos.                                Formatos de datos


    Recursos protegidos: Aquella información en el      Consumir
                                                        Servicios
    servicio que requiere autenticación por parte del   REST
                                                        PHP y HTTP

    usuario.                                            Rest con CouchDB
                                                        Rest con Twitter

                                                        Extras
                                                        OAuth
                                                        Frameworks REST

                                                        Conclusiones

                                                        Créditos y
                                                        Licencia
Paso 1: Dar de alta el consumidor

                                                            REST en PHP

                                                              David J.
                                                              Brenes
                                                              Martínez
                                                            Desarrollador
                                                             en Grupo
                                                               Índigo


    El consumidor se registra en el servicio. Ejemplo:      Servir REST
                                                            Lo Básico
    https://twitter.com/oauth_clients                       Métodos HTTP
                                                            Formatos de datos

    El consumidor obtiene una clave y una palabra secreta   Consumir
                                                            Servicios
    para identificarse                                       REST
                                                            PHP y HTTP
                                                            Rest con CouchDB
                                                            Rest con Twitter

                                                            Extras
                                                            OAuth
                                                            Frameworks REST

                                                            Conclusiones

                                                            Créditos y
                                                            Licencia
Paso 2: El consumidor solicita acceso a un
recurso
                                                             REST en PHP

                                                               David J.
                                                               Brenes
                                                               Martínez
                                                             Desarrollador
    El consumidor solicita un token de acceso                 en Grupo
                                                                Índigo
    Este token identifica el acceso de una aplicación a los
                                                             Servir REST
    recursos protegidos de un usuario                        Lo Básico
                                                             Métodos HTTP
    Se dirige al usuario a la página del servicio para que   Formatos de datos


    confirme que da acceso al consumidor                      Consumir
                                                             Servicios
                                                             REST
    La página del servicio solicitará al usuario que se      PHP y HTTP

    autentique y que verifique el acceso                      Rest con CouchDB
                                                             Rest con Twitter


    Si el usuario lo verifica, el token será aprobado         Extras
                                                             OAuth
                                                             Frameworks REST

                                                             Conclusiones

                                                             Créditos y
                                                             Licencia
Paso 3: El consumidor recibe acceso a un
recurso
                                                          REST en PHP

                                                            David J.
                                                            Brenes
                                                            Martínez
                                                          Desarrollador
                                                           en Grupo
                                                             Índigo


    El usuario es enviado a la página del consumidor de   Servir REST
                                                          Lo Básico
    nuevo                                                 Métodos HTTP
                                                          Formatos de datos

    El consumidor dispone ahora de un token válido para   Consumir
                                                          Servicios
    obtener los recursos protegidos                       REST
                                                          PHP y HTTP
                                                          Rest con CouchDB
                                                          Rest con Twitter

                                                          Extras
                                                          OAuth
                                                          Frameworks REST

                                                          Conclusiones

                                                          Créditos y
                                                          Licencia
Conclusión

                                                         REST en PHP

                                                           David J.
                                                           Brenes
                                                           Martínez
                                                         Desarrollador
                                                          en Grupo
                                                            Índigo


   El usuario no ha tenido que dar sus credenciales de   Servir REST
                                                         Lo Básico
   acceso en sitios de terceros (consumidores)           Métodos HTTP
                                                         Formatos de datos

   El usuario sabe para qué ha dado permiso al           Consumir
                                                         Servicios
   consumidor                                            REST
                                                         PHP y HTTP
                                                         Rest con CouchDB
                                                         Rest con Twitter

                                                         Extras
                                                         OAuth
                                                         Frameworks REST

                                                         Conclusiones

                                                         Créditos y
                                                         Licencia
Implementaciones en PHP

                                                          REST en PHP

                                                            David J.
                                                            Brenes
                                                            Martínez
                                                          Desarrollador
                                                           en Grupo
                                                             Índigo


                                                          Servir REST
   OAuth-PHP:                                             Lo Básico
                                                          Métodos HTTP
   http://code.google.com/p/oauth-php/                    Formatos de datos


   Biblioteca para implementar consumidores y servicios   Consumir
                                                          Servicios
                                                          REST
                                                          PHP y HTTP
                                                          Rest con CouchDB
                                                          Rest con Twitter

                                                          Extras
                                                          OAuth
                                                          Frameworks REST

                                                          Conclusiones

                                                          Créditos y
                                                          Licencia
Pero... ¿Hay frameworks?

                                                       REST en PHP

                                                         David J.
                                                         Brenes
                                                         Martínez
                                                       Desarrollador
                                                        en Grupo
                                                          Índigo


                                                       Servir REST
   REST no detalla protocolos                          Lo Básico
                                                       Métodos HTTP
   REST no describe formatos de intercambio de datos   Formatos de datos


                                                       Consumir
   ¿Cómo puede haber frameworks?                       Servicios
                                                       REST
                                                       PHP y HTTP
                                                       Rest con CouchDB
                                                       Rest con Twitter

                                                       Extras
                                                       OAuth
                                                       Frameworks REST

                                                       Conclusiones

                                                       Créditos y
                                                       Licencia
Con más razón

                                                          REST en PHP

                                                            David J.
                                                            Brenes
                                                            Martínez
                                                          Desarrollador
                                                           en Grupo
                                                             Índigo

   Las tareas REST son siempre las mismas
                                                          Servir REST
   No son necesarias descripciones de servicios, ya que   Lo Básico
                                                          Métodos HTTP

   se permiten tan solo 4 operaciones                     Formatos de datos


                                                          Consumir
   Las descripciones son necesarias para los recursos     Servicios
                                                          REST
   soportados                                             PHP y HTTP
                                                          Rest con CouchDB
                                                          Rest con Twitter

                                                          Extras
                                                          OAuth
                                                          Frameworks REST

                                                          Conclusiones

                                                          Créditos y
                                                          Licencia
Tonic

                                                         REST en PHP

                                                           David J.
                                                           Brenes
                                                           Martínez
                                                         Desarrollador
         http://tonic.sourceforge.net/                    en Grupo
                                                            Índigo


    Proceso de la Request e invocación de código para    Servir REST
                                                         Lo Básico

    cada método en cada recurso                          Métodos HTTP
                                                         Formatos de datos

    Permite usar distintos adaptadores para enlazar el   Consumir
    framework con distintas fuentes de datos             Servicios
                                                         REST
        Ficheros locales                                 PHP y HTTP
                                                         Rest con CouchDB
        Bases de Datos                                   Rest con Twitter


        Otros servicios Web                              Extras
                                                         OAuth

    Uso de Smarty para la representación de recursos     Frameworks REST

                                                         Conclusiones

                                                         Créditos y
                                                         Licencia
Tonic

                                     REST en PHP

                                       David J.
                                       Brenes
                                       Martínez
                                     Desarrollador
                                      en Grupo
                                        Índigo


                                     Servir REST
    Framework sencillo               Lo Básico
                                     Métodos HTTP
                                     Formatos de datos
    Buena documentación y ejemplos   Consumir
                                     Servicios
                                     REST
                                     PHP y HTTP
                                     Rest con CouchDB
                                     Rest con Twitter

                                     Extras
                                     OAuth
                                     Frameworks REST

                                     Conclusiones

                                     Créditos y
                                     Licencia
PHPRestSQL

                                                          REST en PHP

                                                            David J.
                                                            Brenes
                                                            Martínez
                                                          Desarrollador
                                                           en Grupo
                                                             Índigo
     http://phprestsql.sourceforge.net/
                                                          Servir REST
                                                          Lo Básico
                                                          Métodos HTTP
   Conector entre Base de Datos y Servicios Web           Formatos de datos


                                                          Consumir
   Necesita configurar la base de datos a la que se debe   Servicios
                                                          REST
   acceder                                                PHP y HTTP
                                                          Rest con CouchDB
   Realiza todo el CRUD para la Base de Datos             Rest con Twitter

                                                          Extras
                                                          OAuth
                                                          Frameworks REST

                                                          Conclusiones

                                                          Créditos y
                                                          Licencia
PHPRestSQL

                                                     REST en PHP

                                                       David J.
                                                       Brenes
                                                       Martínez
                                                     Desarrollador
                                                      en Grupo
                                                        Índigo


                                                     Servir REST
   Permite intercambiar datos en XML, HTML y texto   Lo Básico
                                                     Métodos HTTP
   plano                                             Formatos de datos


   Facilmente ampliable a otros formatos (JSON)      Consumir
                                                     Servicios
                                                     REST
                                                     PHP y HTTP
                                                     Rest con CouchDB
                                                     Rest con Twitter

                                                     Extras
                                                     OAuth
                                                     Frameworks REST

                                                     Conclusiones

                                                     Créditos y
                                                     Licencia
Servir Servicios REST

                                                     REST en PHP

                                                       David J.
                                                       Brenes
                                                       Martínez
                                                     Desarrollador
                                                      en Grupo
                                                        Índigo


    No más complicado que realizar una página web    Servir REST
                                                     Lo Básico

    Complicación por falta de soporte para algunos   Métodos HTTP
                                                     Formatos de datos

    métodos (PUT)                                    Consumir
                                                     Servicios
    Soporte para diversos formatos                   REST
                                                     PHP y HTTP
                                                     Rest con CouchDB
                                                     Rest con Twitter

                                                     Extras
                                                     OAuth
                                                     Frameworks REST

                                                     Conclusiones

                                                     Créditos y
                                                     Licencia
Consumir Servicios REST

                                                         REST en PHP

                                                           David J.
                                                           Brenes
                                                           Martínez
                                                         Desarrollador
                                                          en Grupo
                                                            Índigo


                                                         Servir REST
   Consumo sencillo (peticiones HTTP)                    Lo Básico
                                                         Métodos HTTP
   Procesado de datos no automático                      Formatos de datos


                                                         Consumir
   Falta de descripción => Sobrecarga de documentación   Servicios
                                                         REST
                                                         PHP y HTTP
                                                         Rest con CouchDB
                                                         Rest con Twitter

                                                         Extras
                                                         OAuth
                                                         Frameworks REST

                                                         Conclusiones

                                                         Créditos y
                                                         Licencia
¿Otros?

                                               REST en PHP

                                                 David J.
                                                 Brenes
                                                 Martínez
                                               Desarrollador
                                                en Grupo
                                                  Índigo


                                               Servir REST
   Problemas de seguridad en la autorización   Lo Básico
                                               Métodos HTTP
                                               Formatos de datos
   Automatización de operaciones               Consumir
                                               Servicios
                                               REST
                                               PHP y HTTP
                                               Rest con CouchDB
                                               Rest con Twitter

                                               Extras
                                               OAuth
                                               Frameworks REST

                                               Conclusiones

                                               Créditos y
                                               Licencia
Licencia

                                                             REST en PHP

                                                               David J.
                                                               Brenes
                                                               Martínez
                                                             Desarrollador
Estas transparencias se publican bajo licencia Creative       en Grupo
                                                                Índigo
Commons y se pueden redistribuir o modificar bajo las
siguientes condiciones:                                      Servir REST
                                                             Lo Básico

    Se dé reconocimiento al autor de estas transparencias.   Métodos HTTP
                                                             Formatos de datos


    No se use con propósitos comerciales.                    Consumir
                                                             Servicios
                                                             REST
    Se distribuya con la misma licencia.                     PHP y HTTP
                                                             Rest con CouchDB
Texto de la licencia: http:                                  Rest con Twitter


//creativecommons.org/licenses/by-nc-sa/3.0/                 Extras
                                                             OAuth
                                                             Frameworks REST

                                                             Conclusiones

                                                             Créditos y
                                                             Licencia

Weitere ähnliche Inhalte

Was ist angesagt?

Webinar AWS 201 - Using Amazon Virtual Private Cloud (VPC)
Webinar AWS 201 - Using Amazon Virtual Private Cloud (VPC)Webinar AWS 201 - Using Amazon Virtual Private Cloud (VPC)
Webinar AWS 201 - Using Amazon Virtual Private Cloud (VPC)Amazon Web Services
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical ApproachMadhaiyan Muthu
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Introduction to WSO2 ESB
Introduction to WSO2 ESB Introduction to WSO2 ESB
Introduction to WSO2 ESB WSO2
 
Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document FinalAli Ahmed
 
An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager WSO2
 
15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemasHelder da Rocha
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUDPrem Sanil
 
Mulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductionMulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductiongijish
 
What the Heck is OAuth and OpenID Connect - DOSUG 2018
What the Heck is OAuth and OpenID Connect - DOSUG 2018What the Heck is OAuth and OpenID Connect - DOSUG 2018
What the Heck is OAuth and OpenID Connect - DOSUG 2018Matt Raible
 
Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Guido Schmutz
 
What is an API Gateway?
What is an API Gateway?What is an API Gateway?
What is an API Gateway?LunchBadger
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET CoreMarco Parenzan
 
[Azure Governance] Lesson 4 : Azure Policy
[Azure Governance] Lesson 4 : Azure Policy[Azure Governance] Lesson 4 : Azure Policy
[Azure Governance] Lesson 4 : Azure Policy☁ Hicham KADIRI ☁
 
Postman Introduction
Postman IntroductionPostman Introduction
Postman IntroductionRahul Agarwal
 
Best practices for RESTful web service design
Best practices for RESTful web service designBest practices for RESTful web service design
Best practices for RESTful web service designRamin Orujov
 

Was ist angesagt? (20)

MVVM+Router with Swift
MVVM+Router with SwiftMVVM+Router with Swift
MVVM+Router with Swift
 
Webinar AWS 201 - Using Amazon Virtual Private Cloud (VPC)
Webinar AWS 201 - Using Amazon Virtual Private Cloud (VPC)Webinar AWS 201 - Using Amazon Virtual Private Cloud (VPC)
Webinar AWS 201 - Using Amazon Virtual Private Cloud (VPC)
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical Approach
 
AWS IAM
AWS IAMAWS IAM
AWS IAM
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Introduction to WSO2 ESB
Introduction to WSO2 ESB Introduction to WSO2 ESB
Introduction to WSO2 ESB
 
Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document Final
 
An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager
 
15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 
Mulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductionMulesoft Anypoint platform introduction
Mulesoft Anypoint platform introduction
 
What the Heck is OAuth and OpenID Connect - DOSUG 2018
What the Heck is OAuth and OpenID Connect - DOSUG 2018What the Heck is OAuth and OpenID Connect - DOSUG 2018
What the Heck is OAuth and OpenID Connect - DOSUG 2018
 
Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)
 
What is an API Gateway?
What is an API Gateway?What is an API Gateway?
What is an API Gateway?
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET Core
 
[Azure Governance] Lesson 4 : Azure Policy
[Azure Governance] Lesson 4 : Azure Policy[Azure Governance] Lesson 4 : Azure Policy
[Azure Governance] Lesson 4 : Azure Policy
 
Postman Introduction
Postman IntroductionPostman Introduction
Postman Introduction
 
Best practices for RESTful web service design
Best practices for RESTful web service designBest practices for RESTful web service design
Best practices for RESTful web service design
 
Kubernetes vs App Service
Kubernetes vs App ServiceKubernetes vs App Service
Kubernetes vs App Service
 

Andere mochten auch

Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reesebuildacloud
 
Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHPZoran Jeremic
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 
Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPElwin Huaman
 
RESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkRESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkBo-Yi Wu
 
REST API Best Practices & Implementing in Codeigniter
REST API Best Practices & Implementing in CodeigniterREST API Best Practices & Implementing in Codeigniter
REST API Best Practices & Implementing in CodeigniterSachin G Kulkarni
 
Tutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAPTutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAPElwin Huaman
 
Desarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootDesarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootCloudAppi
 
01. http basics v27
01. http basics v2701. http basics v27
01. http basics v27Eoin Keary
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acidJefer Lee Parra
 
JavaDayIV - Leoncini Writing Restful Applications With Resteasy
JavaDayIV - Leoncini Writing Restful Applications With ResteasyJavaDayIV - Leoncini Writing Restful Applications With Resteasy
JavaDayIV - Leoncini Writing Restful Applications With ResteasyJBug Italy
 
Tutorial diseño de PCB con Eagle 7.2
Tutorial diseño de PCB con Eagle 7.2Tutorial diseño de PCB con Eagle 7.2
Tutorial diseño de PCB con Eagle 7.2Antonio Ortega Valera
 
Palestra Flisol 2012 - Campinas
Palestra Flisol 2012 - CampinasPalestra Flisol 2012 - Campinas
Palestra Flisol 2012 - CampinasAnderson de Castro
 
Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPDaniel Arndt Alves
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01joaocarlobarros
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHPCezar Souza
 
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswani
Creating REST Applications with the Slim Micro-Framework by Vikram VaswaniCreating REST Applications with the Slim Micro-Framework by Vikram Vaswani
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswanivvaswani
 

Andere mochten auch (20)

Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reese
 
Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHP
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAP
 
RESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkRESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP Framework
 
REST API Best Practices & Implementing in Codeigniter
REST API Best Practices & Implementing in CodeigniterREST API Best Practices & Implementing in Codeigniter
REST API Best Practices & Implementing in Codeigniter
 
Tutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAPTutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAP
 
Desarrollo y consumo de web services
Desarrollo y consumo de web servicesDesarrollo y consumo de web services
Desarrollo y consumo de web services
 
Desarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootDesarrolla tu primera api con spring boot
Desarrolla tu primera api con spring boot
 
01. http basics v27
01. http basics v2701. http basics v27
01. http basics v27
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acid
 
JavaDayIV - Leoncini Writing Restful Applications With Resteasy
JavaDayIV - Leoncini Writing Restful Applications With ResteasyJavaDayIV - Leoncini Writing Restful Applications With Resteasy
JavaDayIV - Leoncini Writing Restful Applications With Resteasy
 
Tutorial diseño de PCB con Eagle 7.2
Tutorial diseño de PCB con Eagle 7.2Tutorial diseño de PCB con Eagle 7.2
Tutorial diseño de PCB con Eagle 7.2
 
Palestra Flisol 2012 - Campinas
Palestra Flisol 2012 - CampinasPalestra Flisol 2012 - Campinas
Palestra Flisol 2012 - Campinas
 
Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHP
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Slides
SlidesSlides
Slides
 
Php 05 Mvc
Php 05 MvcPhp 05 Mvc
Php 05 Mvc
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHP
 
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswani
Creating REST Applications with the Slim Micro-Framework by Vikram VaswaniCreating REST Applications with the Slim Micro-Framework by Vikram Vaswani
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswani
 

Ähnlich wie Servicio y Consumo de Servicios REST en PHP

Ähnlich wie Servicio y Consumo de Servicios REST en PHP (20)

Introduccion a los Servicios Web Rest
Introduccion a los Servicios Web RestIntroduccion a los Servicios Web Rest
Introduccion a los Servicios Web Rest
 
Paper ieee
Paper ieeePaper ieee
Paper ieee
 
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web Services
 
T final modulo_1
T final modulo_1T final modulo_1
T final modulo_1
 
Qué es la web 2 power point.
Qué es la web 2 power point.Qué es la web 2 power point.
Qué es la web 2 power point.
 
Qué es la web 2 power point.
Qué es la web 2 power point.Qué es la web 2 power point.
Qué es la web 2 power point.
 
SharePoint 2010 para IT Pros
SharePoint 2010 para IT ProsSharePoint 2010 para IT Pros
SharePoint 2010 para IT Pros
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 
POSTMAN.pdf
POSTMAN.pdfPOSTMAN.pdf
POSTMAN.pdf
 
Tecnologías Web
Tecnologías WebTecnologías Web
Tecnologías Web
 
Herramientas web
Herramientas webHerramientas web
Herramientas web
 
Herramientas web
Herramientas webHerramientas web
Herramientas web
 
Herramientas web
Herramientas webHerramientas web
Herramientas web
 
Presentac[2]..
Presentac[2]..Presentac[2]..
Presentac[2]..
 
Herramientas 2[1].0
Herramientas 2[1].0Herramientas 2[1].0
Herramientas 2[1].0
 
Herramientas 2[1].0
Herramientas 2[1].0Herramientas 2[1].0
Herramientas 2[1].0
 
Herramientas web barreto arana
Herramientas web barreto  aranaHerramientas web barreto  arana
Herramientas web barreto arana
 
13-Unidad 3. WebServices-3.3. Inicio de Proyecto (Desarrollo)
13-Unidad 3. WebServices-3.3. Inicio de Proyecto (Desarrollo)13-Unidad 3. WebServices-3.3. Inicio de Proyecto (Desarrollo)
13-Unidad 3. WebServices-3.3. Inicio de Proyecto (Desarrollo)
 
Ingeneria de software III
Ingeneria de software IIIIngeneria de software III
Ingeneria de software III
 

Mehr von David J. Brenes

Desarrollo rápido con PHP y Symfony (VI): Los formularios
Desarrollo rápido con PHP y Symfony (VI): Los formulariosDesarrollo rápido con PHP y Symfony (VI): Los formularios
Desarrollo rápido con PHP y Symfony (VI): Los formulariosDavid J. Brenes
 
Desarrollo rápido con PHP y Symfony (V): Las rutas
Desarrollo rápido con PHP y Symfony (V): Las rutasDesarrollo rápido con PHP y Symfony (V): Las rutas
Desarrollo rápido con PHP y Symfony (V): Las rutasDavid J. Brenes
 
Desarrollo rápido con PHP y Symfony (IV): El Modelo
Desarrollo rápido con PHP y Symfony (IV): El ModeloDesarrollo rápido con PHP y Symfony (IV): El Modelo
Desarrollo rápido con PHP y Symfony (IV): El ModeloDavid J. Brenes
 
Desarrollo rápido con PHP y Symfony (III): La vista
Desarrollo rápido con PHP y Symfony (III): La vistaDesarrollo rápido con PHP y Symfony (III): La vista
Desarrollo rápido con PHP y Symfony (III): La vistaDavid J. Brenes
 
Desarrollo rápido con PHP y Symfony (II): El controlador
Desarrollo rápido con PHP y Symfony (II): El controladorDesarrollo rápido con PHP y Symfony (II): El controlador
Desarrollo rápido con PHP y Symfony (II): El controladorDavid J. Brenes
 
Desarrollo rápido con PHP y Symfony (I): Introducción a Symfony
Desarrollo rápido con PHP y Symfony (I): Introducción a SymfonyDesarrollo rápido con PHP y Symfony (I): Introducción a Symfony
Desarrollo rápido con PHP y Symfony (I): Introducción a SymfonyDavid J. Brenes
 
Introducción a la Yahoo! Open Strategy
Introducción a la Yahoo! Open StrategyIntroducción a la Yahoo! Open Strategy
Introducción a la Yahoo! Open StrategyDavid J. Brenes
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaDavid J. Brenes
 
Cloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la NubeCloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la NubeDavid J. Brenes
 
Cloud Computing: Recursos de la Web 2.0
Cloud Computing: Recursos de la Web 2.0Cloud Computing: Recursos de la Web 2.0
Cloud Computing: Recursos de la Web 2.0David J. Brenes
 
Automatic detection of navigational queries according to Behavioural Characte...
Automatic detection of navigational queries according to Behavioural Characte...Automatic detection of navigational queries according to Behavioural Characte...
Automatic detection of navigational queries according to Behavioural Characte...David J. Brenes
 
Programación de Yahoo! Pipes
Programación de Yahoo! PipesProgramación de Yahoo! Pipes
Programación de Yahoo! PipesDavid J. Brenes
 
Yahoo! Pipes y la Web 2.0
Yahoo! Pipes y la Web 2.0Yahoo! Pipes y la Web 2.0
Yahoo! Pipes y la Web 2.0David J. Brenes
 
Presentación Lectura TFMI
Presentación Lectura TFMIPresentación Lectura TFMI
Presentación Lectura TFMIDavid J. Brenes
 

Mehr von David J. Brenes (15)

Desarrollo rápido con PHP y Symfony (VI): Los formularios
Desarrollo rápido con PHP y Symfony (VI): Los formulariosDesarrollo rápido con PHP y Symfony (VI): Los formularios
Desarrollo rápido con PHP y Symfony (VI): Los formularios
 
Desarrollo rápido con PHP y Symfony (V): Las rutas
Desarrollo rápido con PHP y Symfony (V): Las rutasDesarrollo rápido con PHP y Symfony (V): Las rutas
Desarrollo rápido con PHP y Symfony (V): Las rutas
 
Desarrollo rápido con PHP y Symfony (IV): El Modelo
Desarrollo rápido con PHP y Symfony (IV): El ModeloDesarrollo rápido con PHP y Symfony (IV): El Modelo
Desarrollo rápido con PHP y Symfony (IV): El Modelo
 
Desarrollo rápido con PHP y Symfony (III): La vista
Desarrollo rápido con PHP y Symfony (III): La vistaDesarrollo rápido con PHP y Symfony (III): La vista
Desarrollo rápido con PHP y Symfony (III): La vista
 
Desarrollo rápido con PHP y Symfony (II): El controlador
Desarrollo rápido con PHP y Symfony (II): El controladorDesarrollo rápido con PHP y Symfony (II): El controlador
Desarrollo rápido con PHP y Symfony (II): El controlador
 
Desarrollo rápido con PHP y Symfony (I): Introducción a Symfony
Desarrollo rápido con PHP y Symfony (I): Introducción a SymfonyDesarrollo rápido con PHP y Symfony (I): Introducción a Symfony
Desarrollo rápido con PHP y Symfony (I): Introducción a Symfony
 
Introducción a la Yahoo! Open Strategy
Introducción a la Yahoo! Open StrategyIntroducción a la Yahoo! Open Strategy
Introducción a la Yahoo! Open Strategy
 
Yahoo! Query Language
Yahoo! Query LanguageYahoo! Query Language
Yahoo! Query Language
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
 
Cloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la NubeCloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la Nube
 
Cloud Computing: Recursos de la Web 2.0
Cloud Computing: Recursos de la Web 2.0Cloud Computing: Recursos de la Web 2.0
Cloud Computing: Recursos de la Web 2.0
 
Automatic detection of navigational queries according to Behavioural Characte...
Automatic detection of navigational queries according to Behavioural Characte...Automatic detection of navigational queries according to Behavioural Characte...
Automatic detection of navigational queries according to Behavioural Characte...
 
Programación de Yahoo! Pipes
Programación de Yahoo! PipesProgramación de Yahoo! Pipes
Programación de Yahoo! Pipes
 
Yahoo! Pipes y la Web 2.0
Yahoo! Pipes y la Web 2.0Yahoo! Pipes y la Web 2.0
Yahoo! Pipes y la Web 2.0
 
Presentación Lectura TFMI
Presentación Lectura TFMIPresentación Lectura TFMI
Presentación Lectura TFMI
 

Kürzlich hochgeladen

BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfsolidalilaalvaradoro
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfHannyDenissePinedaOr
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdfEDNAMONICARUIZNIETO
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.monthuerta17
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FJulio Lozano
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................ScarletMedina4
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraJose Sanchez
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOEveliaHernandez8
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Gonella
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfJosé Hecht
 
Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Gonella
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 

Kürzlich hochgeladen (20)

¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdf
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldadura
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
 
Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 

Servicio y Consumo de Servicios REST en PHP

  • 1. REST en PHP David J. Brenes Martínez Desarrollador Servicios Web REST con PHP en Grupo Índigo Servir REST Lo Básico David J. Brenes Martínez Métodos HTTP Formatos de datos Desarrollador en Grupo Índigo Consumir Servicios REST Curso de Extensión Universitaria PHP y HTTP Desarrollo de aplicaciones web mediante servicios web y APIs abiertas Rest con CouchDB Rest con Twitter Universidad de Oviedo Extras OAuth 2009/07/20 Frameworks REST Conclusiones Créditos y Licencia
  • 2. ¿Qué es PHP? REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Lenguaje interpretado en el Servidor Web Servir REST Lo Básico Su salida estándar es la Respuesta HTTP Métodos HTTP Formatos de datos ‘print’ o ‘echo’ escriben directamente en la respuesta Consumir Servicios De este modo se sirven páginas web REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 3. Devolviendo datos REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Mostrando datos por la respuesta HTTP Lo Básico Métodos HTTP echo "Hello World!!"; Formatos de datos print "Hello World!!"; Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 4. Devolviendo datos REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Mostrando estructuras en la respuesta HTTP Servir REST $hello = array("hello", "world"); Lo Básico Métodos HTTP print_r($hello); Formatos de datos Consumir $hello = array("hello" => "world"); Servicios REST var_dump($hello); PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 5. Extensión Poster REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Extensión para Firefox que realiza peticiones HTTP Servir REST Lo Básico Ideal para depurar servicios REST Métodos HTTP Formatos de datos https://addons.mozilla.org/en-US/ Consumir Servicios firefox/addon/2691 REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 6. Extensión Poster REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo URL del servicio web con sus parámetros Servir REST Lo Básico Content-type para post: Métodos HTTP Formatos de datos application/x-www-form-urlencoded Consumir Servicios ‘Content to Send’: Mismo formato que en la URL REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 7. Petición GET REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Es el método más habitual de trabajo Lo Básico Métodos HTTP Los parámetros se mandan en la URL Formatos de datos Consumir Los parámetros se recogen en la variable $_GET. Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 8. Petición GET REST en PHP David J. Brenes Martínez Desarrollador en Grupo http://url?param1=value1&param2=value2 Índigo Servir REST Lo Básico Accediendo a los parámetros GET Métodos HTTP Formatos de datos echo $_GET["param1"]; // => value1 Consumir Servicios // ... REST PHP y HTTP echo var_dump($_GET); // => array(2) { ["param1"]=> Rest con CouchDB Rest con Twitter string(6) "value1" ["param2"]=> string(6) "value2" } Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 9. Petición POST REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Es otro método habitual de trabajo Servir REST Lo Básico Usado en formularios web Métodos HTTP Formatos de datos Los parámetros se mandan en el cuerpo de la petición Consumir Servicios Los parámetros se recogen en la variable $_POST. REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 10. Petición POST REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Accediendo a los parámetros POST Servir REST echo $_POST["param1"]; // => value1 Lo Básico Métodos HTTP // ... Formatos de datos Consumir echo var_dump($_POST); // => array(2) { ["param1"]=> Servicios REST string(6) "value1" ["param2"]=> string(6) "value2" } PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 11. Petición PUT REST en PHP David J. Brenes Martínez Desarrollador en Grupo Método menos habitual de trabajo Índigo Los parámetros se mandan en el cuerpo de la petición Servir REST Lo Básico No hay variable $_PUT Métodos HTTP Formatos de datos Los parámetros se recogen de la entrada estandar Consumir Servicios (php://input) REST PHP y HTTP Tendremos que leer la entrada estandar y procesar los Rest con CouchDB Rest con Twitter datos Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 12. Petición PUT REST en PHP David J. Brenes Martínez Desarrollador en Grupo Accediendo a la petición PUT Índigo $putdata = fopen("php://input", "r"); Servir REST $put_data = ""; Lo Básico Métodos HTTP while ($data = fread($putdata, 1024)) $put_data .= $data; Formatos de datos Consumir fclose($putdata); Servicios REST PHP y HTTP Rest con CouchDB Tenemos en $putdata los datos enviados Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 13. Petición PUT REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Procesando los datos de la petición PUT Servir REST Lo Básico parse_str($put_data); Métodos HTTP Formatos de datos Consumir Servicios parse_str convierte los datos del string en variables REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 14. Petición DELETE REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Método menos habitual de trabajo Lo Básico Métodos HTTP Los parámetros normalmente se mandan en la URL Formatos de datos Consumir No hay variable $_DELETE, se usa $_GET Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 15. Formatos soportados REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST REST no impone un formato Lo Básico Métodos HTTP Con PHP podemos mandar lo que queramos Formatos de datos Consumir Hay funciones especiales para XML y JSON Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 16. HTML REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Habitualmente se escribe con echo y print. Servir REST Lo Básico No suele ser necesaria ayuda extra para servir HTML Métodos HTTP Formatos de datos Bibliotecas: Tidy (http: Consumir Servicios //es.php.net/manual/en/book.tidy.php) REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 17. XML REST en PHP David J. Brenes Al igual que HTML, con echo y print. Martínez Desarrollador Existen bibliotecas de tratamiento de XML en Grupo Índigo Suelen ser más útiles para procesar XML que para generarlo. Servir REST Lo Básico Permiten generar un arbol XML y volcarlo Métodos HTTP Formatos de datos Bibliotecas: Consumir Servicios DOM: REST http://es.php.net/manual/en/book.dom.php PHP y HTTP Rest con CouchDB SimpleXML: http: Rest con Twitter //es.php.net/manual/en/book.simplexml.php Extras XSL: OAuth Frameworks REST http://es.php.net/manual/en/book.xsl.php Conclusiones Créditos y Licencia
  • 18. JSON REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo PHP5 ofrece soporte directo para JSON Servir REST json_encode: Codifica una variable en formato JSON Lo Básico json_decode: Genera una variable a partir de una Métodos HTTP Formatos de datos cadena JSON Consumir Servicios Referencia: http: REST //es.php.net/manual/en/book.json.php PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 19. Biblioteca cURL REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Biblioteca para realizar peticiones HTTP Servir REST En PHP5 activa por defecto Lo Básico Métodos HTTP Permite indicar proxy, método HTTP. . . Formatos de datos Consumir http: Servicios REST //es.php.net/manual/en/book.curl.php PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 20. Realizando la conexión REST en PHP David J. Brenes Martínez Desarrollador en Grupo Conexión GET mediante cURL Índigo $conexion = curl_init(); Servir REST curl_setopt($conexion, CURLOPT_RETURNTRANSFER, Lo Básico Métodos HTTP TRUE); Formatos de datos curl_setopt($conexion, CURLOPT_HEADER, 0); Consumir Servicios curl_setopt($conexion, CURLOPT_URL, $url); REST PHP y HTTP $resultado = curl_exec($conexion); Rest con CouchDB Rest con Twitter curl_close($conexion); Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 21. Realizando la conexión REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Especificando proxy HTTP Lo Básico Métodos HTTP curl_setopt($conexion, CURLOPT_PROXY, Formatos de datos ’http://proxy.uniovi.es:8888’); Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 22. Realizando la conexión REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Eligiendo método HTTP Lo Básico Métodos HTTP curl_setopt($conexion, CURLOPT_CUSTOMREQUEST, Formatos de datos $method); Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 23. Realizando la conexión REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Indicando los datos del cuerpo de la petición Lo Básico Métodos HTTP Formatos de datos curl_setopt($conexion, CURLOPT_POSTFIELDS, $data); Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 24. Sobre CouchDB REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Base de Datos Orientada a Documentos Lo Básico Métodos HTTP Formatos de datos Implementa una API RESTful Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 25. Sobre la API de CouchDB REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST API basada en REST Lo Básico Métodos HTTP Soporta formato JSON para el intercambio de datos en Formatos de datos las peticiones Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 26. Sobre Twitter REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Famoso servicio de microblogging Servir REST API muy utilizada. Lo Básico Métodos HTTP Formatos de datos Más peticiones por API que en la Web Consumir Decenas de clientes para muchas plataformas Servicios (Nintendo DS) REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 27. Sobre la API de Twitter REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo API basada en REST Soporta formatos XML y JSON para las peticiones Servir REST Lo Básico Exige autenticación para algunos métodos. Métodos HTTP Formatos de datos Tiene limitación de peticiones a realizar Consumir Servicios REST PHP y HTTP http://apiwiki.twitter.com/ Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 28. Problemática REST en PHP David J. Brenes Martínez Desarrollador en Grupo Algunas APIs requieren autenticación Índigo Las aplicaciones deben conocer los detalles de Servir REST autenticación Lo Básico Métodos HTTP Formatos de datos ¿A quién confias tus claves? Consumir Servicios REST http://www.codinghorror.com/blog/archives/ PHP y HTTP Rest con CouchDB 001072.html Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 29. Problemática REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Se requiere un método más seguro para las APIs Las aplicaciones NO deben conocer los detalles de Servir REST Lo Básico autenticación Métodos HTTP Formatos de datos ¿Cómo se autentican? Consumir Servicios REST OAuth: http://oauth.net/ PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 30. Vocabulario REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servicio: La aplicación que provee el servicio Servir REST Consumidor: La aplicación que desea acceder a los Lo Básico Métodos HTTP recursos protegidos. Formatos de datos Recursos protegidos: Aquella información en el Consumir Servicios servicio que requiere autenticación por parte del REST PHP y HTTP usuario. Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 31. Paso 1: Dar de alta el consumidor REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo El consumidor se registra en el servicio. Ejemplo: Servir REST Lo Básico https://twitter.com/oauth_clients Métodos HTTP Formatos de datos El consumidor obtiene una clave y una palabra secreta Consumir Servicios para identificarse REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 32. Paso 2: El consumidor solicita acceso a un recurso REST en PHP David J. Brenes Martínez Desarrollador El consumidor solicita un token de acceso en Grupo Índigo Este token identifica el acceso de una aplicación a los Servir REST recursos protegidos de un usuario Lo Básico Métodos HTTP Se dirige al usuario a la página del servicio para que Formatos de datos confirme que da acceso al consumidor Consumir Servicios REST La página del servicio solicitará al usuario que se PHP y HTTP autentique y que verifique el acceso Rest con CouchDB Rest con Twitter Si el usuario lo verifica, el token será aprobado Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 33. Paso 3: El consumidor recibe acceso a un recurso REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo El usuario es enviado a la página del consumidor de Servir REST Lo Básico nuevo Métodos HTTP Formatos de datos El consumidor dispone ahora de un token válido para Consumir Servicios obtener los recursos protegidos REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 34. Conclusión REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo El usuario no ha tenido que dar sus credenciales de Servir REST Lo Básico acceso en sitios de terceros (consumidores) Métodos HTTP Formatos de datos El usuario sabe para qué ha dado permiso al Consumir Servicios consumidor REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 35. Implementaciones en PHP REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST OAuth-PHP: Lo Básico Métodos HTTP http://code.google.com/p/oauth-php/ Formatos de datos Biblioteca para implementar consumidores y servicios Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 36. Pero... ¿Hay frameworks? REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST REST no detalla protocolos Lo Básico Métodos HTTP REST no describe formatos de intercambio de datos Formatos de datos Consumir ¿Cómo puede haber frameworks? Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 37. Con más razón REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Las tareas REST son siempre las mismas Servir REST No son necesarias descripciones de servicios, ya que Lo Básico Métodos HTTP se permiten tan solo 4 operaciones Formatos de datos Consumir Las descripciones son necesarias para los recursos Servicios REST soportados PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 38. Tonic REST en PHP David J. Brenes Martínez Desarrollador http://tonic.sourceforge.net/ en Grupo Índigo Proceso de la Request e invocación de código para Servir REST Lo Básico cada método en cada recurso Métodos HTTP Formatos de datos Permite usar distintos adaptadores para enlazar el Consumir framework con distintas fuentes de datos Servicios REST Ficheros locales PHP y HTTP Rest con CouchDB Bases de Datos Rest con Twitter Otros servicios Web Extras OAuth Uso de Smarty para la representación de recursos Frameworks REST Conclusiones Créditos y Licencia
  • 39. Tonic REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Framework sencillo Lo Básico Métodos HTTP Formatos de datos Buena documentación y ejemplos Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 40. PHPRestSQL REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo http://phprestsql.sourceforge.net/ Servir REST Lo Básico Métodos HTTP Conector entre Base de Datos y Servicios Web Formatos de datos Consumir Necesita configurar la base de datos a la que se debe Servicios REST acceder PHP y HTTP Rest con CouchDB Realiza todo el CRUD para la Base de Datos Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 41. PHPRestSQL REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Permite intercambiar datos en XML, HTML y texto Lo Básico Métodos HTTP plano Formatos de datos Facilmente ampliable a otros formatos (JSON) Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 42. Servir Servicios REST REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo No más complicado que realizar una página web Servir REST Lo Básico Complicación por falta de soporte para algunos Métodos HTTP Formatos de datos métodos (PUT) Consumir Servicios Soporte para diversos formatos REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 43. Consumir Servicios REST REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Consumo sencillo (peticiones HTTP) Lo Básico Métodos HTTP Procesado de datos no automático Formatos de datos Consumir Falta de descripción => Sobrecarga de documentación Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 44. ¿Otros? REST en PHP David J. Brenes Martínez Desarrollador en Grupo Índigo Servir REST Problemas de seguridad en la autorización Lo Básico Métodos HTTP Formatos de datos Automatización de operaciones Consumir Servicios REST PHP y HTTP Rest con CouchDB Rest con Twitter Extras OAuth Frameworks REST Conclusiones Créditos y Licencia
  • 45. Licencia REST en PHP David J. Brenes Martínez Desarrollador Estas transparencias se publican bajo licencia Creative en Grupo Índigo Commons y se pueden redistribuir o modificar bajo las siguientes condiciones: Servir REST Lo Básico Se dé reconocimiento al autor de estas transparencias. Métodos HTTP Formatos de datos No se use con propósitos comerciales. Consumir Servicios REST Se distribuya con la misma licencia. PHP y HTTP Rest con CouchDB Texto de la licencia: http: Rest con Twitter //creativecommons.org/licenses/by-nc-sa/3.0/ Extras OAuth Frameworks REST Conclusiones Créditos y Licencia