Lo primero que tienes que hacer es tener tu llave de acceso, esta la pides con el registro que tenemos aqui mismo. Algo importante que debes recordar que esta llave debe de ir incluida en todas tus peticiones. Las peticiones se hacen al más puro estilo de REST, asi que solo tendrás que hacer una petición a URLs como esta:
http://api.minube.com/locations/countries.xml?api_key=tullaveaqui
Las respuestas son en XML, aún en las que hayan resultado datos vacios o en las que haya ocurrido un error. Puedes saber el estado de cada respuesta directamente en el primer atributo "status" del elemento "response".
Además de tener las respuestas en formato XML, tenemos disponible JSON para aquellos que prefieran trabajar con Javascript. El único cambio a realizar es en la URL de la petición, cambiando el .xml a .json, de forma que quede:
http://api.minube.com/locations/countries.json?api_key=tullaveaqui
La estructura de los objetos es la misma que en la respuesta XML equivalente.
Además de los parámetros indicados en cada sección, las peticiones realizadas en JSON soportan un parámetro adicional: callback. Este parámetro permite realizar operaciones sobre los resultados devueltos en la petición, sin tener que manipularlos internamente en el código. Por ejemplo, suponiendo que en tu código incluyas lo siguiente:
<script type="text/javascript">
function foo(bar)
{
for(var x=0; x<bar.response.countries.length; x++)
alert(bar.response.countries[x].name + " tiene " +
bar.response.countries[x].pois_count + " rincones!");
}
</script>
<script src="http://api.minube.com/locations/countries.json?
callback=foo&limit=5&api_key=tullaveaqui"></script>
Al momento de cargar la página, ejecutaría la función foo, enviándole como parámetro la respuesta de la petición realizada, resultando en una serie de alertas informándo al usuario de la cantidad de rincones en cada país. De esta manera, se pueden procesar los datos recibidos de una manera sencilla y transparente, filtrandolos para trabajar exclusivamente con lo requerido, o cambiándole el formato a la respuesta para que sea empleada en alguna otra función en el código, por ejemplo.
Para cada aplicación tenemos un límite de tickets que se pueden hacer mensualmente. Un ticket es el costo que nosotros le damos a una petición ya que unas son más complicadas que otras. Por el momento estamos en fase experimental y de pruebas, asi que cada petición solo vale 1 ticket, pero en el futuro ajustaremos estos costes de acuerdo a su uso. Solo recuerda no rebasar tu límite de tickets que es de 2000 mensuales.
http://api.minube.com/locations/countries.xml?api_key=xx&name=italiaUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<countries>
<country>
<id>104</id>
<name>Italia</name>
<pois_count>5021</pois_count>
<full_count>734</full_count>
<see_count>602</see_count>
<restaurant_count>57</restaurant_count>
<blog_count>23</blog_count>
<hotel_count>13237</hotel_count>
<latitude>41.871941</latitude>
<longitude>12.567380</longitude>
</country>
</countries>
</response>
http://api.minube.com/locations/cities.xml?api_key=xx&name=madridUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<cities>
<city>
<id>1252</id>
<name>Madrid</name>
<pois_count>2051</pois_count>
<full_count>966</full_count>
<see_count>607</see_count>
<restaurant_count>315</restaurant_count>
<blog_count>14</blog_count>
<hotel_count>415</hotel_count>
<latitude>40.416706</latitude>
<longitude>-3.703270</longitude>
<country>
<id>63</id>
<name>España</name>
</country>
</city>
</cities>
</response>
http://api.minube.com/places/categories.xml?api_key=xxUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<categories>
<category>
<id>131</id>
<name>Abadias</name>
<supercategory>2</supercategory>
<group>tosee</group>
</category>
</categories>
</response>
http://api.minube.com/places/supercategories.xml?api_key=xxUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<supercategories>
<supercategory>
<id>2</id>
<name>Cultura</name>
</supercategory>
</supecategories>
</response>
http://api.minube.com/places/pois.xml?api_key=xx&city=madrid&country=españaUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<pois>
<poi>
<id>70489</id>
<name><![CDATA[Restaurante Kabuki Wellington]]></name>
<date>2009-05-21 01:51:37</date>
<address><![CDATA[Calle de Velazquez 6]]></address>
<zip_code><![CDATA[55555]]></zip_code>
<telephone><![CDATA[123456789]]></telephone>
<website><![CDATA[http://www.example.com]]></website>
<comments>0</comments>
<views>1</views>
<latitude>40.421833</latitude>
<longitude>-3.684441</longitude>
<url>http://www.minube.com/rincon/70489</url>
<category>
<id>29</id>
<name>Restaurantes</name>
<group>eat</group>
</category>
<supercategory>
<id>3</id>
</supercategory>
<country>
<id>63</id>
<name>España</name>
</country>
<city>
<id>1252</id>
<name>Madrid</name>
</city>
</poi>
</pois>
</response>
http://api.minube.com/places/comments.xml?api_key=xx&country=francia&category=teatrosUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<comments>
<comment>
<id>66441</id>
<date>2007-11-12 00:00:00</date>
<content><![CDATA[Este teatro esta situado en la ciudad de Paris, en el
distrito 13, y ofrece un numero variado de muestras: se centra en piezas clasicas del
teatro (Shakespeare, Racine, etc.), y ofrece conciertos de todo tipo. Los precios son
interesantes por la calidad de los actores, los musicos y el sonido de
la sala.]]></content>
<poi>
<id>68530</id>
<name><![CDATA[Teatro 13]]></name>
<url>http://www.minube.com/rincon/68530</url>
<category>
<id>92</id>
<name>Teatros</name>
<group>tosee</group>
</category>
<supercategory>
<id>5</id>
</supercategory>
<user>
<id>54275</id>
<username>matthieu1985</username>
<url>http://www.minube.com/viajero/matthieu1985</url>
</user>
<country>
<id>71</id>
<name>Francia</name>
</country>
<city>
<id>1401</id>
<name>Paris</name>
</city>
</poi>
</comment>
</comments>
</response>
http://api.minube.com/places/nearby.xml?api_key=xx&id=70489&category=restaurantesUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<pois>
<poi>
<id>543</id>
<name><![CDATA[Restaurante Ojala]]></name>
<date>2007-11-27 13:32:41</date>
<address><![CDATA[San Andres 1]]></address>
<zip_code><![CDATA[28004]]></zip_code>
<telephone><![CDATA[91 523 27 47]]></telephone>
<website><![CDATA[http://]]></website>
<comments>2</comments>
<views>13356</views>
<latitude>40.425533</latitude>
<longitude>-3.703945</longitude>
<url>http://www.minube.com/rincon/543</url>
<distance>1703.4</distance>
<category>
<id>29</id>
<name>Restaurantes</name>
<group>eat</group>
</category>
<supercategory>
<id>3</id>
</supercategory>
<country>
<id>63</id>
<name>España</name>
</country>
<city>
<id>1252</id>
<name>Madrid</name>
</city>
</poi>
</pois>
</response>
http://api.minube.com/places/coordinates.xml?api_key=xx&latitude=52.2679&longitude=4.54327Un ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<pois>
<poi>
<id>95</id>
<name><![CDATA[Keukenhof]]></name>
<distance>1.11508095705312</distance>
<date>2007-10-17 10:47:08</date>
<address><![CDATA[Stationsweg 166a]]></address>
<zip_code><![CDATA[2161]]></zip_code>
<telephone><![CDATA[+31 (0) 252 465 555]]></telephone>
<website><![CDATA[http://www.keukenhof.nl/nm/espagnol.html]]</website>
<comments>4</comments>
<views>618</views>
<latitude>52.267910</latitude>
<longitude>4.543269</longitude>
<url>http://www.minube.com/rincon/95</url>
<category>
<id>4</id>
<name>Reservas Naturales</name>
<group>tosee</group>
</category>
<supercategory>
<id>1</id>
</supercategory>
<country>
<id>90</id>
<name>Holanda</name>
</country>
<city>
<id>249236</id>
<name>Lisse</name>
</city>
</poi>
</pois>
</response>
http://api.minube.com/media/pictures.xml?api_key=xx&city=bostonUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<pictures>
<picture>
<id>195046</id>
<views>76</views>
<date>2009-01-28 13:52:50</date>
<url>http://d9ptcxk3xvglv.cloudfront.net/8b2da2bd6f60372f5ea30fa0d2a5e0c5</url>
<user>
<id>52341</id>
<username>p4bl0</username>
<url>http://www.minube.com/viajero/p4bl0</url>
</user>
<poi>
<id>36423</id>
<name><![CDATA[Prudential Tower]]></name>
<category>Miradores</category>
<url>http://www.minube.com/rincon/36423</url>
</poi>
<country>
<id>242</id>
<name>Estados Unidos</name>
</country>
<city>
<id>145650</id>
<name>Boston</name>
</city>
</picture>
</pictures>
</response>
http://api.minube.com/media/picture_comments.xml?api_key=xx&picture_id=359790Un ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<picture_comments>
<picture_comment>
<id>8717</id>
<content><![CDATA[Magnificooooooo!!!!!felicitaciones. Saludos]]></content>
<date>2009-05-21 04:13:07</date>
<user>
<id>53698</id>
<username>martapilar</username>
<url>http://www.minube.com/viajero/martapilar</url>
</user>
<picture>
<id>359790</id>
<poi_id>70416</poi_id>
<url>http://d9ptcxk3xvglv.cloudfront.net/224f9027d45aed5a2ab0b5f510497067</url>
</picture>
</picture_comment>
</picture_comments>
</response>
http://api.minube.com/media/videos.xml?api_key=xx&city=romaUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<videos>
<video>
<id>1932</id>
<views>74</views>
<date>2009-03-05 17:07:02</date>
<url>http://www.minube.com/videos/rincon/2551/1932</url>
<user>
<id>51221</id>
<username>Mou</username>
<url>http://www.minube.com/viajero/Mou</url>
</user>
<poi>
<id>2551</id>
<name><![CDATA[Vistas desde el Coliseo]]></name>
<category>De interes turistico</category>
<url>http://www.minube.com/rincon/2551</url>
</poi>
<country>
<id>104</id>
<name>Italia</name>
</country>
<city>
<id>1878</id>
<name>Roma</name>
</city>
</video>
</videos>
</response>
http://api.minube.com/media/video_comments.xml?api_key=xxUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<video_comments>
<video_comment>
<id>582</id>
<content><![CDATA[Asi es Naxos, tal y como estan las cosas con un vuelo barato
te sale rentable y ademas disfrutas de un lugar realmente espectacular porque ademas
me olvide decir que esta propia casa que alquila los chalets organiza excursiones de
todo tipo por toda la isla a precios de risa ademas que decir de lo que cuesta comer
por libre en Tailandia. Saludos.]]></content>
<date>2009-05-20 13:10:16</date>
<user>
<id>54173</id>
<username>miguelangelcartagena</username>
<url>http://www.minube.com/viajero/miguelangelcartagena</url>
</user>
<video>
<id>2949</id>
<poi_id>70380</poi_id>
<url>http://www.minube.com/videos/rincon/70380/2949</url>
</video>
</video_comment>
</video_comments>
</response>
http://api.minube.com/buzz/flights.xml?api_key=xx&source_country=espana&source_city=madridUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<flights>
<flight>
<best_price>20.98</best_price>
<depart_date>2009-06-07</depart_date>
<return_date>2009-06-14</return_date>
<url>http://www.minube.com/homes/flights/1190948</url>
<source_city>
<id>1252</id>
<name>Madrid</name>
</source_city>
<source_country>
<id>63</id>
<name>España</name>
</source_country>
<destination_city>
<id>1261</id>
<name>Santander</name>
</destination_city>
<destination_country>
<id>63</id>
<name>España</name>
</destination_country>
</flight>
</flights>
</response>
http://api.minube.com/buzz/cities.xml?api_key=xx&source_iata=MAD&limit=1 Un ejemplo de la respuesta XML:<?xml version="1.0" encoding="UTF-8"?> <response status="ok"> <cities> <city> <id>1248</id> <name>A Coruña</name> <pois_count>288</pois_count> <full_count>222</full_count> <see_count>164</see_count> <restaurant_count>55</restaurant_count> <blog_count>0</blog_count> <hotel_count>21</hotel_count> <latitude>43.371490</latitude> <longitude>-8.395970</longitude> <country> <id>63</id> <name>España</name> </country> </city> </cities> </response>Parámetros
http://api.minube.com/search/flights.json?api_key=xx&source_iata=MAD&destiny_iata=BCNUn ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?> <response status="ok"> <search> <id>14e59da61b53572ff0e43aad356d65c0</id> </search> </response>
http://api.minube.com/search/lodges.json?api_key=xx&city=Madrid&country=Espa%C3%B1aTip: ¡No olviden codificar los parámetros de la búsqueda! En Javascript, se emplea la función encodeURIComponent. En PHP, se usa urlencode. Un ejemplo de la respuesta XML:
<?xml version="1.0" encoding="UTF-8"?> <response status="ok"> <search> <id>e17afb268eee5f081b9a19ee32a83421</id> </search> </response>
http://api.minube.com/search/fetch.json?api_key=xx&type=lodges&sid=e17afb268eee5f081b9a19ee32a83421Un ejemplo abreviado de la respuesta XML para una búsqueda de hoteles:
<?xml version="1.0" encoding="UTF-8"?> <response status="ok"> <lodges> <lodge> <distance>4520.5</distance> <hotel_id>32350</hotel_id> <latitude>40.469717775782600</latitude> <longitude>-3.685820658704060</longitude> <normalized>25 foxa suite</normalized> <price>0</price> <rating>4</rating> <address><![CDATA[Agustín de Foxa, 25]]></address> <hotel_company><![CDATA[Desconocido]]></hotel_company> <hotel_type><![CDATA[Hotel]]></hotel_type> <hotelurl><![CDATA[http://www.nomaders.com//minube/track.aspx?CityCode=6396&StartDate=12/10/2009&EndDate=19/10/2009&Type=SingleHotel&Rooms=1&Kids=0&Adults=2&HotelId=a28014d2-2716-4820-869b-cfd6d29859e7&src=MI]]></hotelurl> <imageurl><![CDATA[http://www.venere.com//img/hotel/8/1/1/1/111118/image_hotel_exterior_outside_1.jpg]]></imageurl> <name><![CDATA[Hotel Suite Foxa 25]]></name> <shop><![CDATA[Nomaders]]></shop> <providers> <provider> <activado>1</activado> <price>0</price> <deeplink><![CDATA[http://www.nomaders.com//minube/track.aspx?CityCode=6396&StartDate=12/10/2009&EndDate=19/10/2009&Type=SingleHotel&Rooms=1&Kids=0&Adults=2&HotelId=a28014d2-2716-4820-869b-cfd6d29859e7&src=MI]]></deeplink> <shop><![CDATA[Nomaders]]></shop> </provider> </providers> <amenities> <amenity><![CDATA[Internet]]></amenity> <amenity><![CDATA[Parking]]></amenity> <amenity><![CDATA[Bar / Restaurante]]></amenity> </amenities> </lodge> </lodges> </response>Un ejemplo abreviado de la respuesta XML para una búsqueda de vuelos:
<?xml version="1.0" encoding="UTF-8"?> <response status="ok"> <flights> <flight> <duration>9000</duration> <duration_simple>4800</duration_simple> <extra_cost>0</extra_cost> <mcarriers>N</mcarriers> <price>90</price> <deeplink><![CDATA[http://eulerian.govoyages.com/dynclick/govolo-es/?etf-name=Flux%20minube%20-%20Vol&etf-prdref=VOL&ref=2007102301&vildep=MAD&Vilarr=BCN&DatDep=061009&DatArr=071009&AllRet=oui&Adultes=1&ENFANTS=0&BEBES=0&TypeClasse=0&langue=es&eurl=http://www.advences.com/mirror/listevols.cfm]]></deeplink> <shop><![CDATA[Govolo]]></shop> <flightGo> <arrival>BCN</arrival> <arrivalTZ>60</arrivalTZ> <arrivaldate>2009-10-06</arrivaldate> <arrivaltime>22:15</arrivaltime> <date>2009-10-06</date> <departure>MAD</departure> <departureTZ>60</departureTZ> <flightcode>UX</flightcode> <stops>0</stops> <time>20:55</time> <type>Economica</type> <airline><![CDATA[Air Europa]]></airline> <arrival_city><![CDATA[Barcelona]]></arrival_city> <departure_city><![CDATA[Madrid]]></departure_city> <arrivalName><![CDATA[Barcelona]]></arrivalName> <departureName><![CDATA[Barajas]]></departureName> </flightGo> <flightReturn> <arrival>MAD</arrival> <arrivalTZ>60</arrivalTZ> <arrivaldate>2009-10-07</arrivaldate> <arrivaltime>10:20</arrivaltime> <date>2009-10-07</date> <departure>BCN</departure> <departureTZ>60</departureTZ> <flightcode>UX</flightcode> <stops>0</stops> <time>09:10</time> <type>Economica</type> <airline><![CDATA[UX]]></airline> <arrival_city><![CDATA[Madrid]]></arrival_city> <departure_city><![CDATA[Barcelona]]></departure_city> <arrivalName><![CDATA[Barajas]]></arrivalName> <departureName><![CDATA[Barcelona]]></departureName> </flightReturn> <providers> <provider> <activado>1</activado> <price>90</price> <deeplink><![CDATA[http://eulerian.govoyages.com/dynclick/govolo-es/?etf-name=Flux%20minube%20-%20Vol&etf-prdref=VOL&ref=2007102301&vildep=MAD&Vilarr=BCN&DatDep=061009&DatArr=071009&AllRet=oui&Adultes=1&ENFANTS=0&BEBES=0&TypeClasse=0&langue=es&eurl=http://www.advences.com/mirror/listevols.cfm]]></deeplink> <shop><![CDATA[Govolo]]></shop> </provider> <provider> <activado>1</activado> <price>143.8</price> <deeplink><![CDATA[http://www.barceloviajes.com/sites/all/vuelos/valoracion.jsp?tprod=VUE&id=170&sistema=AMA&sesion=V174460810&eticket=S&utm_source=MINUBE&est=1&utm_medium=feed_afiliado&utm_term=vuelos]]></deeplink> <shop><![CDATA[Barcelo Viajes]]></shop> </provider> </providers> </flight> </flights> </response>