/ API / DetallesDetalles generales de la API.

La API de Bee2Bee está implementada en XML sobre HTTP. Para identificar correctamente el formato de envio, compruebe que el header del mismo tenga seteado el “Content-Type” a “application/xml” (o “application/x-yaml” si envia datos en formato YAML). Asi mismo, para que Bee2Bee le envie una respuesta en XML (y no HTML), debe setear el header “Accept” a “application/xml”.

OBS: El servicio podrá ser utilizado solo por aquellos usuarios que traten nuestra aplicación con cariño.

Utilizando CURL…

Veamos unos ejemplos usando

curl

en Unix (o wget en Windows):

> curl -H ‘Accept: application/xml’ -H ‘Content-Type: application/xml’ -d ‘texto_XML’ http://url

Para autenticar cada Empresa (y Usuario) utilizamos ‘autenticación básica’ junto con una APPKEY (Application Key) que nosotros proveemos. Por ejemplo, si su usuario es lucas@mephisto.com con contraseña ‘knikcata’ y su APPKEY es ‘1ab56dce676dff’, el comando se vería asi (sin incluir el APPKEY que iría dentro del objeto XML):

> curl -u lucas@mephisto.com:knikcata -H ‘Accept: application/xml’ -H ‘Content-Type: application/xml’ -d ‘texto_XML ‘ http://url

En general para los métodos más simples, seguimos la convención RESTful, donde el resultado de la operación se devuelve en el status del mensaje HTTP:

HTTP/1.1 500 Internal Server Error
Connection: close
Date: Fri, 07 Mar 2008 11:56:15 GMT
Set-Cookie: _bee2bee_session=...

Para otros operaciones más complejas, la respuesta será un mensaje XML con un tag raiz ‘hash’ y un hijo ‘status’ indicando el resultado de la operación:

Especificamos más abajo la respuesta de cada método.

 <hash>
   <status>OK</status>
 </hash>

Posteado por zeta

Mar 14, 2008

Tips para usar WGET

Para utilizar el comando wget las opciones útiles son: > wget --http-user=lucas --http-passwd=mephisto --header="Accept: application/xml" --header="Content-Type: application/xml" --post-data="<syncro></syncro>" http://url donde en vez de la opción --post-data se puede enviar --post-file archivo para enviar un archivo. Bajo Windows, notar que es importante la doble comilla para los headers. La diferencia con curl es que la devolucion se hace creando un archivo local con el nombre de la ruta url utilizada. Utilizando la opción -O - todo el resultado del envio se manda a STDOUT. Otras opciones de utilidad son:
  • --proxy=on para prender la opción de salir por un servidor de proxy. El mismo se puede especificar o por medio de una variable del entorno http_proxy, junto con las opciones --proxy-user y --proxy-passwd correspondientes. Alternativamente, se puede setear todo desde la misma linea de comando wget, junto al servidor y puerto del proxy como http_proxy=http://hniksic:mypassword@proxy.company.com:8001/.

Sobre el encoding del XML...

Un problema recurrente cuando se comienza a probar la API, es obtener errores del servidor cuando aparentemente el mensaje enviado estaba perfecto.

En este caso conviene revisar en qué encoding está grabado el mensaje XML, y agregar una correspondiente linea al comienzo del mensaje XML para indicarlo.

Bajo Windows sugerimos probar enviar los mensajes agregando esta linea al principio de cada mensaje XML: <?xml version="1.0" encoding="iso-8859-1" ?> Acá efectivamente se interpretan bien los finales de cada linea y se puede parsear el mensaje correctamente. Bajo UNIX, se puede enviar los mensajes sin ninguna linea adicional. La terminació de cada linea es siempre newline.

Tenga en cuenta, en todos los casos, que debe reemplazar las ocurrencias de estos caracteres '&', '<', '>' por estos '&amp;', '&lt;', '&gt;' para una correcta interpretación en el servidor.

Teniendo en cuenta lo dicho, se recomienda probar primero enviando unos mensajes de prueba XML, que incluyan todas las variantes que los mensajes puedan tener (acentos, ), para estar seguros que el servidor va a poder interpretar correctamente.