programacion - Blog Juegosocio

Posts sobre la categoría programacion

creando un api en php: paso 2

Por mameyugo el 19.Jan.2010 facebook_16 twitter_16 delicious_16

la elecccion del protocolo, es una de las primeras decisiones que hay que tomar en la creaccion de un web service, existen varios metodos:

- SOAP: es un protocolo para el intercambio de informacion entre ordenadores (independientemente del sistema, y del lenguaje), puede usar distintos protocolos, pero aqui el que nos interesa es HTTP, utiliza XML como encapsulamiento de datos, lo normal seria tener un xml de definicion de servicio( que es un xml que describe los metodos que se puedesn usar y los parametros a pasar). Es considerablemente lento, ya que aparte del tamaño de la llamada esta requiere una gran cantidad de flujo de informacion. La manera normal de usarlo seria, el cliente pide el xml de definicion, el servidor lo sirve, el cliente lo procesa y crea una llamada de acuerdo a esta definicion, el servidor recibe esta llamada y devuelve la respuesta al la llamada.

La manera normal de usarlo seria (ejemplo de wikipedia):

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
     <getProductDetails xmlns="http://warehouse.example.com/ws">
       <productId>827635</productId>
     </getProductDetails>
   </soap:Body>
</soap:Envelope>

Esta peticion devolveria los datos del producto con ese identificador.

Desde PHP 5 soap tiene soporte nativo, lo que lo hace muy facil de usar para crear nuestra propia API o consumir servicios web de otra pagina, en otro post explicare una manera facil de hacerlo.

- REST: al igual que SOAP es un protocolo para el intercambio de informacion entre ordenadores, pero solo puede usarse con el protocolo HTTP, que por otro lado es el que nos interesa. No tiene restricciones en cuanto a encapsulamiento de datos, podemos enviarlos y recibirlos de la manera que queramos JSON, XML, HTML, CSV... y utiliza los metodos propios de HTML, los comunmente conocidos y que manejan nuestros navegadores: GET y POST, y los menos conocidos pero igualmente utiles PUT y DELETE. Es un protocolo muchisimo mas rapido que SOAP, ya que realmente SOAP es un REST con un monton de restricciones, de formato, de envio, de encapsulamiento...

La manera normal de usarlo seria:

- POST -> http://www.ejemplo.com/mensaje/nuevo (el metodo nos indica la accion a realizar, INSERTAR un nuevo dato y la url nos indicaria el que, un nuevo mensaje, los parametros que se envian con la peticion, nos dan los datos a insertar, titulo=nuevo titulo&mensaje=hola mundo)

- PUT -> http://www.ejemplo.com/mensaje/5 (el metodo nos indica la accion a realizar, MODIFICAR y la url el que, el mensaje 5, los parametros que se envian con la peticion, nos dan los datos a modificar, titulo=nuevo titulo 2&mensaje=adios mundo)

- GET -> http://www.ejemplo.com/mensaje/8 (el metodo nos indica la accion a realizar, MOSTRAR y la url el que, el mensaje 8)

- DELETE -> http://www.ejemplo.com/mensaje/13/comentario/2 (el metodo nos indica la accion a realizar, BORRAR y la url el que, el comentario 2 del mensaje 13)

 PHP no tiene una libreria especifica para el manejo de peticiones REST, dado que no tendria sentido, ya que REST esta basado en el mismo protocolo que la web, por lo tanto no se puede distinguir a priori entre peticiones al web service y peticiones normales de web.

 

Tags: php, api, webservice, Categorías: PHP, programacion, Comentarios: 0, Lecturas: 66

creando un api en php: paso 1

Por mameyugo el 19.Jan.2010 facebook_16 twitter_16 delicious_16

crear un api en php, en principio es facil, no deja de ser peticiones y respuestas, un cliente api, te envia una peticion en un formato, y tu servidor de api tiene que responderle de manera adecuada.

cliente: dameUltimosProductos

servidor:

<ultimosProductos>

<producto>12</producto>

<producto>11</producto>

<producto>10</producto>

</ultimosProductos>

no existe mucha documentacion al respecto, pero lo que si es seguro es que necesitas una herramienta para realizar las primeras pruevas, pues la herramienta podria ser este addon para firefox: addons.mozilla.org/en-US/firefox/addon/2691

 

Tags: api, webservice, addon, Categorías: PHP, programacion, Comentarios: 0, Lecturas: 62

eclipse indentar correctamente todo el archivo

Por mameyugo el 22.Dec.2009 facebook_16 twitter_16 delicious_16

puedes pasarte tranquilamente 5 min indentando correctamente un archivo, hasta que queda a tu gusto, (malditos editores chungos). Pues bien, si trabajas con eclipse acabas de perder 5 minutos, simplemente pulsa:

 Ctrl + Shift + F

ya has terminado!

Tags: php, Categorías: programacion, Comentarios: 1, Lecturas: 73

eclipse: agregar soporte a php a cualquier proyecto

Por mameyugo el 10.Nov.2009 facebook_16 twitter_16 delicious_16

cuando creas un nuevo proyecto con eclipse, en mi caso el caso es un nuevo proyecto Mercurial, si no creas el proyecto especificamente con soporte php, no se lo puedes agregar mas tarde, al menos en modo grafico.

existe solucion al problema, entra en la carpeta en la que has creado el proyecto y busca el archivo oculto proyect, en Linux ( .proyect), editalo:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>stocks</name>
        <comment>
                Cloned from default ([protocolo]://[tu_ruta]/)
        </comment>
        <projects></projects>
        <buildSpec></buildSpec>
        <natures></natures>
</projectDescription>

y cambialo por:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>stocks</name>
        <comment>
                Cloned from default (
[protocolo]://[tu_ruta]/)
        </comment>
        <projects></projects>
        <buildSpec>
                <buildCommand>
                        <name>org.eclipse.php.core.PhpIncrementalProjectBuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
                <buildCommand>
                        <name>org.eclipse.php.core.ValidationManagerWrapper</name>
                        <arguments>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>
                <nature>org.eclipse.php.core.PHPNature</nature>
        </natures>
</projectDescription>

despues crea un nuevo proyecto php y copia los archivos que tendra tu proyecto en la carpeta oculta .settings, a la carpeta .settings de tu proyecto.

Cierra eclipse, y vuelve a abrirlo, tendras un proyecto mercurial con soporte php.

Tags: Categorías: PHP, programacion, Comentarios: 1, Lecturas: 72

expresiones regulares con mysql

Por mameyugo el 04.Nov.2009 facebook_16 twitter_16 delicious_16

Existe la posibilidad de hacer busquedas en mysql a traves de expresiones regulares, para ello utilizaremos REGEXP.
esta seria la sintaxis:

SELECT * FROM tabla WHERE (SELECT campo REGEXP '^[a-f.]{7,9}' )=1

Esta query nos devuelve el resultado de todos los resgistros en los que campo contenga en su inicio entre 7 y 9 letras de de las comprendidas entre la a y la f.

Pero hay que tener mucho cuidado al hacer

Tags: mysql, Categorías: programacion, Comentarios: 0, Lecturas: 31

almacenar imagenes en mysql

Por mameyugo el 07.Aug.2009 facebook_16 twitter_16 delicious_16

como almacenar imagenes en una base de datos, es una pregunta que me hizo el amigo nico hace unos dias, y respondo en forma de post, si, es posible, y depende la situacion puede ser ventajoso (desde luego, no desde el punto de vista del rendimiento).
realmente el proceso es bien sencillo, abrimos el archivo almacenandolo en una variable, que contiene datos indescifrables (puedes probar a abrir una imagen con un editor de textos), a continuacion cambiamos la codificacion de esta variable a

Tags: gd, mysql, Categorías: PHP, programacion, Comentarios: 0, Lecturas: 70

rotar imagenes con php

Por mameyugo el 02.Jun.2009 facebook_16 twitter_16 delicious_16

existe una maravillosa función en php que nos ayuda en esta tarea, es imagerotate()
resource imagerotate ( resource $image , float $angle , int $bgd_color [, int $ignore_transparent= 0 ] )
pero existe un gran problema, esta función sólo está disponible si PHP está compilado con la versión incrustada de la librería GD, que no es muy habitual. para solucionarlo podemos rompernos la cabeza, y girar a mano las imágenes, pero para que vamos a hacer tonterias. la solución (o una de ellas), es

Tags: php, gd, Categorías: PHP, programacion, Comentarios: 5, Lecturas: 31

medidor de bateria para android

Por mameyugo el 28.May.2009 facebook_16 twitter_16 delicious_16

para android existen infinidad de aplicaciones en el Market, pero hecho en falta una importante, un medidor de bateria real.

por eso me he propuesto intentar hacer un programa, cuyo unico objetivo sea medir el estado de la bateria, y tiempo estimado de carga, medianamente decente.

Tags: android, Categorías: programacion, Comentarios: 4, Lecturas: 151

if en consultas mysql

Por mameyugo el 11.Nov.2008 facebook_16 twitter_16 delicious_16

cuanto tiempo ahorrariamos( tiempo de proceso, y de programacion), si la informacion ya nos llegara procesada de mysql (o cualquier sistema gestor de bases de datos, pero mysql mola mas). la respuesta es, MUCHISIMO!!

bien, pues una buena manera de hacer esto es utilizar el sistema gestor de base de datos como algo mas que un simple cajon en donde meter cosas y despues reclamarlas.

como hacemos esto:

supongamos que queremos agrupar en una tabla a todas aquellas personas cuya edad este comprendida entre los 0 y los 18, y otro grupo para el resto de las personas.

partimos de una tabla con el nombre, la edad, el sexo y la estatura.

Tags: mysql, Categorías: PHP, programacion, Comentarios: 2, Lecturas: 31

huecos en una serie mysql

Por mameyugo el 25.Sep.2008 facebook_16 twitter_16 delicious_16

cuantas veces te habra pasado que estas llenando una tabla, borras registros y despues intentas rellenar los huecos pero es un caos, bueno pues existe una solucion sencilla, que puedes aplicar en cualquier caso, se trata de una consulta que te devuelve el campo numerico mas pequeño libre de la serie. la consulta usa variables de mysql de una forma sencilla sin entrar a funciones.

poniendonos en situacion

Tags: mysql, Categorías: PHP, programacion, Comentarios: 2, Lecturas: 50

Social

Twitter