Babelic API

Esta página está dirigida a programadores y usuarios avanzados, en caso contrario dirígete a nuestra página principal por favor.


Babelic expone algunas funcionalidades a través de una sencilla API mediante la cual podrás intégralas en tu sistema. Por ahora solo contamos con funcionalidades para tipos de usuarios "Cliente", próximamente añadiremos también funcionalidades de traductor y revisor.
Esta versión 1.0 esta aun en beta y podrá ser modificada en futuras releases.

¿Que puedo hacer con esta API?

Las funciones típicas que realiza un cliente cuando entra en la web: consultar sus traducciones, cancelarlas, comprobar su estado, insertar nuevos textos etc. etc.


Visión general

La url base de la API es http://api.babelic.com/v1.svc. El usuario y password son los mismos que usas para logarte normalmente, y si deseas utilizar el API, deberás hacérnoslo saber para que te activemos. Es una API basada en REST que devuelve resultados en formato XML o JSON en función del tipo que especifiques en la petición.
En las devoluciones además de los parámetros asignamos un valor al http status code, por lo que deberás comprobarlo adicionalmente.

El formato del texto tanto insertado como devuelto es HTML; por ello, para insertar un salto de línea debes añadir una etiqueta
. También puedes incluir links, etc.



Autenticación

El usuario y password para acceder a la API son los mismos que usas para acceder a la web usando un navegador. El login es mediante autenticación básica HTTP, no usamos api keys ni cualquier otro tipo de sistema como OAuth.


Funciones disponibles

Customers/Translations:Devuelve todas las traducciones del cliente.


  • Url:http://api.babelic.com/v1.svc/customers/translations
  • Método:Get
  • Parametros: No aplica
  • Retorno: Devuelve un array de objetos TranslationDataType
  • Nota: En este método los objetos TranslationDataType no tienen cargada la propiedad translatedText y también la propiedad translatedText solo tiene cargados los primeros caracteres del texto con el fin de ahorrar ancho de banda. Para recibir estos campos cargados usa el método siguiente.

Customers/Translations/show: Devuelve una traducción.


  • Url:http://api.babelic.com/v1.svc/customers/translations/show
  • Método:Get
  • Parámetros: id-id de la traducción solicitada
  • Retorno: Devuelve un objeto TranslationDataType.

Customers/Balance: Devuelve el saldo del cliente. Esto es, el dinero de la cuenta con el que abonará las traducciones.


  • Url:http://api.babelic.com/v1.svc/customers/balance
  • Método:Get
  • Parámetros: No aplica
  • Retorno: Devuelve el saldo del cliente en formato decimal.

Customers/translations/cancel: Cancela una tarea de traducción


  • Url:http://api.babelic.com/v1.svc/customers/translations/cancel
  • Método:Get
  • Parámetros: id->id de la traducción que deseas anular.
  • Retorno: No aplica. Ejemplo:[4]
  • Nota: Solo se pueden cancelar las traducciones que aún no han sido pagadas y que por tanto están en estado de "alta". Para saber si la traducción se ha cancelado tras tu solicitud, comprueba el http status code, debe ser 200 (OK) o bien también puedes hacer un get para esa traducción y comprobarlo

Customers/translations/new: Crea una nueva traducción

  • Url:http://api.babelic.com/v1.svc/customers/translations/new
  • Método:Post
  • Parámetros: idLanguagePair->id de la pareja de lenguajes a traducir [5],text->texto a traducir,callback->;opcional, url a la que Babelic llamará cuando la traducción este finalizada, válido para notificación, longitud máxima de la URL de 150 caracteres, testing->;opcional (por defecto false), se usa para poder hacer tests de la api sin tener que abonar las traducciones. Si se pasa true como valor se crea la traducción como tipo test y no se resta saldo de la cuenta del cliente. Se pone el mismo valor en el texto traducido que el pasado como texto origen y se envía al cliente como realizada. Para confirmar que la traducción se ha insertado como test, puedes consultar el saldo antes y después de hacer la llamada, deben tener el mismo importe.
  • Retorno: Devuelve un objeto TranslationDataType con los datos de la traducción.
    Nota: En el texto origen no se devuelve todo el texto insertado, si no solo el encabezado del mismo

Referencia

Se dan ejemplos en formato XML pero es posible también recibir estos mensajes en JSON

Objeto TranslationDataType:


<translationDataType>
<dateAdded/>
<dateFinished/>
<id/>
<idCoin/>
<idLanguagePair/>
<idStatus/>
<sourceText/>
<totalPrice/>
<translatedText/>
<wordsNumber/>
<callback/>
</translationDataType>

Tipos de idStatus posibles:


ID Estado Explicación
25 Alta Estado inicial, la traducción puede ser cancelada
15 En progreso La traducción está abonada y comienza el proceso de traducción
55 Rechazada por el sistema
119 Error del sistema
227 Error del sistema
226 Cancelada
228 Cancelada y devuelto importe
229 Cancelada y devuelto importe
101 Finalizada La traducción se ha realizado correctamente

Tipos de idLanguagePairs posibles:


ID Lenguaje origen Lenguaje destino
8 Español Inglés
9 Inglés Español
19 Español Alemán
20 Alemán Español
21 Español Francés
22 Francés Español
23 Español Italiano
24 Italiano Español

Ejemplos

Translations

  • Url:http://api.babelic.com/v1.svc/customers/translations
  • Retorno:
    <translationDataType>
    <dateAdded>2008-03-02T14:08:38.447</dateAdded>
    <dateFinished>2008-12-03T02:38:51.297</dateFinished>
    <id>7630</id>
    <idCoin>1</idCoin>
    <idLanguagePair>8</idLanguagePair>
    <idStatus>101</idStatus>
    <sourceText>En este reciente articulo de<sourceText>
    <totalPrice>3.45</totalPrice>
    <translatedText i:nil="true"/>
    <wordsNumber>50</wordsNumber>
    </translationDataType>
    <translationDataType>
    <dateAdded>2008-03-02T15:45:37.757</dateAdded>
    <dateFinished i:nil="true"/>
    <id>7631</id>
    <idCoin>1</idCoin>
    <idLanguagePair>8</idLanguagePair>
    <idStatus>25</idStatus>
    <sourceText> Algunas reflexiones sobre el cierre de la re</sourceText>
    <totalPrice>2.58</totalPrice>
    <translatedText i:nil="true"/>
    <wordsNumber>206</wordsNumber>
    </translationDataType> </translationDataType>

Translation

  • Url:http://api.babelic.com/v1.svc/customers/translations/show?id=7630
  • Retorno:
    <translationDataType>
    <dateAdded>2008-03-02T14:08:38.447</dateAdded>
    <dateFinished>2008-12-03T02:38:51.297</dateFinished>
    <id>7630</id>
    <idCoin>1</idCoin>
    <idLanguagePair>8</idLanguagePair>
    <idStatus>101</idStatus>
    <sourceText>
    A estas alturas de la película es difícil encontrar proyectos que aporten algo realmente novedoso, desconozco si hay sitios similares en inglés (supongo que si) pero a mi al menos me ha gustado descubrir pqpq.es por se una nueva forma de participación e intercambio de opiniones en la web.
    </sourceText>
    <totalPrice>3.45</totalPrice>
    <translatedText/>
    <wordsNumber>50</wordsNumber>
    </translationDataType>

Balance

  • Url:http://api.babelic.com/v1.svc/customers/balance
  • Retorno:
    <decimal>841.47</decimal>

Cancel translation

  • Url:http://api.babelic.com/v1.svc/customers/translations/cancel?id=7630
  • Retorno: No aplica, se debe comprobar el http status code

New translation

  • Url:http://api.babelic.com/v1.svc/customers/translations/new,usando Post para enviar como parámetros el idLanguagePair 8, el text "prueba de traducción" y callback a http://www.myweb/translationHandler/25
  • Retorno:
    <translationDataType>
    <dateAdded>2008-03-02T14:08:38.447</dateAdded>
    <dateFinished>2008-12-03T02:38:51.297</dateFinished>
    <id>7630</id>
    <idCoin>1</idCoin>
    <idLanguagePair>8</idLanguagePair>
    <idStatus>25</idStatus>
    <sourceText>prueba de traducción<sourceText>
    <totalPrice>3.45</totalPrice>
    <translatedText i:nil="true"/>
    <callback>http://www.myweb/translationHandler/25</callback>
    <wordsNumber>200</wordsNumber>
    </translationDataType>

Errores, mejoras y sugerencias

Para cualquier cosa puedes ponerte en contacto con nosotros escribiendo a