Foros del Web » Programando para Internet » Python »

WebService en Python Como?

Estas en el tema de WebService en Python Como? en el foro de Python en Foros del Web. Hola a todos, hace rato que no pasaba x aki y ahora con nuevas inquietudes. Quiero desarrollar un WebService en Python, pero no tengo ni ...
  #1 (permalink)  
Antiguo 24/11/2011, 12:30
 
Fecha de Ingreso: julio-2011
Ubicación: Mexico
Mensajes: 36
Antigüedad: 13 años, 4 meses
Puntos: 1
Pregunta WebService en Python Como?

Hola a todos, hace rato que no pasaba x aki y ahora con nuevas inquietudes.
Quiero desarrollar un WebService en Python, pero no tengo ni idea de como hacerlo, xke estoy confundido con Apache, SOAP, WSGI, WSDL, mod_wsgi... no entiendo no se que es cada uno, que necesito de ellos.... bueno pero las preguntas serian.

¿Que necesito para crear un WebService en Python usando SOAP y WSDL?

¿Que servidor necesito? Estoy acostumbrado al desarrollo en PHP, simple... para pruebas/desarrollo pues uso WAMP y luego para trabajos formales pues obvio se sube a un servidor Apache con PHP y MySQL y bueno si quisiera hacer un WebService en PHP no necesitaria nada mas pues tanto en mi WAMP de pruebas o en el servidor en linea ya estaria todo lo necesario para crear Webservices en PHP bueno, se necesitan mas cosas para PHP, etc.

Bueno pues mi duda es esa.... y para Python? he visto que hay un servidor Apache MySQL Python pero es para desarrollar sitios con Python... yo necesito crear WebService y xke digo ke no es lo ke necesito, xke me he dado cuentaque va mas haya de solo tener el servidor con Apache, MySQL y Python.

He escuchado de Django pero mi impresion de el es como una especie de gestor de contenidos/sitios basado en Python.
Otra cosa que he visto es que se puede usar un servidor Apache, MySQL y usar MOD_WSGI y Python para crear WebServices en Python usando soaplib v 0.8. Mi jefe me ha dicho que la v 0.8 de soaplib es mejor xke en ella solo llamamos a la aplicacion sin usar un servidor SOAP.... creo ke eso me dijo no le entendi... pero la bronca es que no soporta manejo de Arrays... hasta la version 1.0 y en ella ya tienes que crear un servidor para consumir el Webservice y no quisieramos eso... para cada webservice un servirdor!!!!.... que tampoco entiendo mucho!!!!

En fin para no hacer mas largo el asunto.... que podria hacer!
Que librerias SOAP me recomiendan para Python que pueda usar con WSGI... que es WSGI xke depende de eso el crear WebService en Phtyon y SOAP!!! jajajaa com configuro mi servidor....

Es decir que DEMONIOS HAGO, COMO CREO WEBSERVICES EN PYTHON..... Queeeee alguien me expliqueee... como dijera Eugenio Derbez!!!!


Les agradezco la lectura y cualkier idea o respuesta que me ayude a decrifrar este enigma...

o sera que simplemente... crear un WebService en Python es un dolor de cabeza?

Última edición por charlie27; 24/11/2011 a las 12:38
  #2 (permalink)  
Antiguo 24/11/2011, 13:25
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: WebService en Python Como?

Cita:
Iniciado por charlie27 Ver Mensaje
He escuchado de Django pero mi impresion de el es como una especie de gestor de contenidos/sitios basado en Python.
No, Django es un framework muy completo para desarrollar sistemas web de manera muy rápida.

Ahora web services es un concepto muy simple.

Solo haces un GET o POST request y te regresa un XML o un JSON. Así de simple. Esto lo puedes hacer en php o en python o en lo que sea que quieras hacerlo.

Solo necesitas crear una pagina(s) que responda(n) a esas peticiones, realmente no estan complicado.

De hecho los ejemplos de Django y web services que usan SOAP son muy sencillos.

Pero claro primero necesitaras aprender lo básico sobre Django.
  #3 (permalink)  
Antiguo 24/11/2011, 20:31
 
Fecha de Ingreso: julio-2011
Ubicación: Mexico
Mensajes: 36
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: WebService en Python Como?

Cita:
Iniciado por razpeitia Ver Mensaje

Solo haces un GET o POST request y te regresa un XML o un JSON. Así de simple. Esto lo puedes hacer en php o en python o en lo que sea que quieras hacerlo.

Solo necesitas crear una pagina(s) que responda(n) a esas peticiones, realmente no estan complicado.

De hecho los ejemplos de Django y web services que usan SOAP son muy sencillos.

Pero claro primero necesitaras aprender lo básico sobre Django.
Hola gracias por tu respuesta.
El concepto lo entiendo, pero mi duda es mas bien relacionada al entorno que estamos usando para desarrollar y probar los webservices. por que segun entendi a mi jefe y no es que el este mal, si no que quiza yo no entendi bien, usamos un servidor Linux 11 (linea de comandos) con Apache, MySQL, Python 2.6 y la libreria soaplib 0.8. y MOD_WSGI Esto lo usamos por que creamos un webservice de la siguiente manera, como un ejemplo que viene en la doc de soaplib

Código PHP:
#!/usr/bin/python
import os
import MySQLdb
os
.environ['PYTHON_EGG_CACHE'] = '/tmp/'
from soaplib.wsgi_soap import SimpleWSGISoapApp
from soaplib
.service import soapmethod
from soaplib
.serializers.primitive import StringInteger, Array


class 
LoginService(SimpleWSGISoapApp):

    @
soapmethod(Integer,_returns=Array(String))
    
def getUserData(self,id):
        
result = [] 
        
db MySQLdb.connect('192.168.0.12','root','password','db')
        
cursor db.cursor()
        try:
            
cursor.execute('SELECT * FROM usuarioWHERE id_usuario = %s', (id))
            
lista cursor.fetchone()         
            if (
lista == None):
                
result = ['0']
            else:
                for 
n in lista:
                    
r=str(n)
                    
result.append(r)
        
except:
            
result = ['-1']
        
db.close()
        
        return 
result
#===========================    

application=LoginService() 
Aqui quiero recalcar 2 cosas x las cuales hice este post
1.- Que cuando consumo este webservice en el mismo python de la siguiente manera
Código PHP:
>>> from suds.client import Client
>>> client Client('http://192.168.0.12/ws/?wsdl')
>>> 
result client.service.getUserData(5)
>>> print 
result 
me marca el siguiente error

Código PHP:
suds.TypeNotFoundType Not Found'(string, _mod_wsgi_c2a793595ca6c89ed10c1adf666a5b9.LoginService, )' 
Ya probe mucho, devolviendo una tupla, devolviendo una lista, ambos con solo strings (al final parece que todos son arrays, solo varia si es mutable o no...creo) entonces vi que la version de soaplib que soporta Arrays de Strings era la 1.0 en adelante pero el problema es que la forma de "EJECUTAR" los webservices era ya atraves de una llamada a un instancia de un Servidor, donde se definia el puerto de escucha... entonces dije un puerto de escucha para cada Webservices y cada vez que se consuman andar instanciando y abriendo ......... si son miles de peticiones ..... no funcionara!!!!!

Bueno... en realidad lo pensamos entre mi jefe y yo.... dijimos que deberiamos usar la soaplib 0.8 y hacer que funcionara el maldito array que devuelvo como resultado..... u encontrar otra forma de hacer webservices en Python usando SOAP pero que se ejeutaran usando MOD_WSGI que a lo que entendi es como una especie de interprete o compilador para Apache que se ejecuta una sola vez... o algo asi y asi todas las peticiones se realizan usando ese unico motor... compilador... como kieran llamarle, en vez de hacer "Servidores" y puertos de escucha por cada peticion o consumo de Webservice..... la verdad kizas tenga bastante errores xke no se bien ke onda con esto... el caso es ese... no tengo idea de lo ke me habla mi jefe y
2.- la segunda cosa x la ke hice el post fue para ver si alguien me podia orientar sobre como hacer un entorno como les explike para desarrollar webservices en python que usen wsgi y mod_wsgi....... NO MOD_PYTHON les recuerdo uso una virtual box con un servidor LINUX APACHE CON MYSQL PYTHON 2.6 Y LIBRERIA SOAPLIB 0.8 Y MOD_WSGI........

Bueno ojala alguien pueda orientarme..... un saludo y gracias de nuevo x la respuesta!

Etiquetas: servidor, webservice
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:30.