Cita:
Iniciado por razpeitia
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 String, Integer, 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.TypeNotFound: Type 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!