Servir XML

Problema

¿Cómo servir ficheros XML correctamente?

Esto es necesario cuando usted tiene una aplicación de terceros que para enviar los datos de su servicio esperán algún tipo de respuesta XML.

Solución

Cree su plantilla XML con el archivo XML que desee servir (i.e response.xml). Si el XML tiene alguna variable, use la correspondiente plantilla Web.py. Esto es sólo un ejemplo:

$ vim templates/response.xml
  1 $def with (code)
  2 <?xml version="1.0"?>
  3 <RequestNotification-Response>
  4 <Status>$code</Status>
  5 </RequestNotification-Response>
  6


Para servir este fichero XML, cree un programa estándar de Web.py (i.e. response.py) y utilice el siguiente código.

$ vim response.py
  1 # -*- coding: utf-8 -*-
  2 import web
  3 
  4 render = web.template.render('templates/', cache=False)
  5 
  6 urls = (
  7     '/(.*)', 'index'
  8 )
  9 
 10 app = web.application(urls, globals())
 11 
 12 class index:
 13     def GET(self, code):
 14         web.header('Content-Type', 'text/xml')
 15         return render.response(code)
 16 
 17 
 18 web.webapi.internalerror = web.debugerror
 19 
 20 if __name__ == '__main__': app.run()

Tenga en cuenta que usted debe utilizar “web.header(‘Content-Type’, ‘text/xml’)” para decirle al cliente que está enviando un fichero XML (No es necesario establecer el web.header() para los ficheros XML, si el fichero plantilla tiene la extensión .xml).

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s