Error 400 al crear un nuevo servicio

4 views
Skip to first unread message

David Calavera

unread,
Nov 18, 2009, 12:09:18 PM11/18/09
to api-11870
Hola gente, me acabo de topar con un problemilla a la hora de dar de
alta nuevos servicios con la api.

Estoy enviando un documento atom válido pero me da un error 400. La
llamada la estoy haciendo con la librería de ruby y antes de ese
servicio ya he añadido varios de la misma forma sin problema pero en
este caso no hay forma de subirlo, creo que debe ser algún problema
con la localidad o algo así. Os paso el xml a ver si vosotros veis
algo que yo pueda estar pasando por alto.

Saludos.

<entry xmlns:app='http://www.w3.org/2007/app' xmlns:georss='http://
www.georss.org/georss/10' xmlns:os='http://a9.com/-/spec/opensearch/
1.1/' xmlns:xhtml='http://www.w3.org/1999/xhtml' xmlns:oos='http://
11870.com/api/oos' xmlns='http://www.w3.org/2005/Atom'>
<author><name>hotel-search-reviews</name></author>
<updated>2009-11-18T17:39:54+01:00</updated>
<id>Oos4ruby:11870.com,2007:370621189229690496961771613043</id>
<title>Hotel Turin</title>
<oos:useraddress>C/ Pintor Fortuny, 9</oos:useraddress>
<oos:url>http://www.hotelturin.com/</oos:url>
<oos:telephone>933024812</oos:telephone>
<category term='private' scheme='http://11870.com/api/v1/privacy'/>
<content>Uno de los hoteles más populares en la red, combina una
magnífica localización con unas instalaciones y servicios de primera
categoría. Reformado por completo en el 2007/2008, sus habitaciones de
diseño moderno y vanguardista disponen de conexión a Internet gratis.
El salón del hotel también cuenta con ordenadores a disposición de
los clientes y servicio de infusiones y té totalmente gratuito.</
content>
<oos:locality slug='/es/barcelona'>Barcelona</oos:locality>
<oos:country slug='/es'>España</oos:country>
<category term='tres estrellas' scheme='http://11870.com/api/v1/tags/
hotel-search-reviews'/>
<category term='hotel' scheme='http://11870.com/api/v1/tags/hotel-
search-reviews'/>
<category term='hotel barcelona centro' scheme='http://11870.com/api/
v1/tags/hotel-search-reviews'/>
<category term='hotel barcelona' scheme='http://11870.com/api/v1/tags/
hotel-search-reviews'/>
<category term='hotel turin' scheme='http://11870.com/api/v1/tags/
hotel-search-reviews'/>
</entry>

David Calavera

unread,
Nov 19, 2009, 7:40:24 AM11/19/09
to api-11870
Bueno pues me vuelvo a contestar a mi mismo :)

Había una combinación de 2 bugs que hacía imposible subir este hotel.

El primero de los bugs está en la librería de ruby para la api. Al hacer post para crear elementos está enviando como cabeceras de la petición elementos del documento que está enviando, con lo que la petición tenía estas cabeceras:

user-address: Pintor Fortuny, 9
title: Hotel Turin
country: slug/es
url: http://www.hotelturin.com/
tags: tres estrellashotelhotel barcelona centrohotel barcelonahotel turin
locality: slug/es/barcelonanameBarcelona

content: Uno de los hoteles más populares en la red, combina una magnífica localización con unas instalaciones y servicios de primera categoría. Reformado por completo en el 2007/2008, sus habitaciones de diseño moderno y vanguardista disponen de conexión a Internet gratis.
El salón del hotel también cuenta con ordenadores a disposición de los clientes y servicio de infusiones y té totalmente gratuito.
telephone: 933024812
privacy: private

Por otro lado hay un bug documentado en el core de Ruby porque la clase Http antes de enviar la petición realiza un parseo erroneo de las cabeceras, intentando buscar un formato NOMBRE: VALOR pero si una de estas cabeceras contiene un retorno de carro, como tenía mi cabecera "content", no lo interpreta y al leer la primera línea después del retorno de carro lanza un error al no corresponderse con el formato.

El primer bug lo arreglaré cuando tenga un rato, el segundo esperemos que esté arreglado próximamente por alguien del core de Ruby.

Saludos

2009/11/18 David Calavera <david.c...@gmail.com>

--

You received this message because you are subscribed to the Google Groups "api-11870" group.
To post to this group, send email to api-...@googlegroups.com.
To unsubscribe from this group, send email to api-11870+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/api-11870?hl=.





--
David Calavera
http://www.thinkincode.net
Reply all
Reply to author
Forward
0 new messages