Your SlideShare is downloading. ×
0
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Anatomía de las APIs del Idescat
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Anatomía de las APIs del Idescat

7,046

Published on

Las APIs (Interfaz de programación de aplicaciones) como estrategia de liberación de datos estadísticos. Descripción de las APIs del Instituto de Estadística de Cataluña.

Las APIs (Interfaz de programación de aplicaciones) como estrategia de liberación de datos estadísticos. Descripción de las APIs del Instituto de Estadística de Cataluña.

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,046
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. contra el apartheid <br />de los datos<br />Anatomía de las APIs del Idescat<br />Xavier Badosa (@badosa)<br />Instituto de Estadística de Cataluña<br />Canarias, mayo 2011<br />
  • 2. Interfaz de programación de aplicaciones<br />
  • 3. Interfaz de programación de aplicaciones<br />
  • 4. Interfaz de programación de aplicaciones<br />Interacción<br />Humano<br />Humano<br />—<br />
  • 5. Interfaz de programación de aplicaciones<br />Interacción<br />Software<br />—<br />Humano<br />
  • 6. Interfaz de programación de aplicaciones<br />Interacción<br />Software<br />—<br />Software<br />
  • 7. Interfaz de programación de aplicaciones<br />Interacción<br />Software<br />—<br />Software<br />
  • 8. Interfaz de programación de aplicaciones<br />API<br />Interacción<br />Software<br />—<br />Software<br />
  • 9. Interfaz de programación de aplicaciones<br />API<br />Web<br />http<br />Interacción<br />Software<br />—<br />Software<br />en la nube<br />
  • 10. Interfaz de programación de aplicaciones<br />API<br />Web<br />http<br />Interacción<br />Software<br />—<br />Software<br />en la nube<br />
  • 11. Interfaz de programación de aplicaciones<br />API<br />Web<br />http<br />Interacción<br />Software<br />—<br />Software<br />en la nube<br />
  • 12. Interfaz de programación de aplicaciones<br />API<br />Web<br />http<br />Servicios basados en SOAP<br />Simple Object Access Protocol<br />Interacción<br />Software<br />—<br />Software<br />en la nube<br />
  • 13. Interfaz de programación de aplicaciones<br />API<br />Web<br />http<br />Servicios basados en SOAP<br />Simple Object Access Protocol<br />RESTful Web Services<br />RepresentationalState Transfer<br />Interacción<br />Software<br />—<br />Software<br />en la nube<br />
  • 14. Interfaz de programación de aplicaciones<br />API<br />Web<br />http<br />Servicios basados en SOAP<br />Protocolo<br />Simple Object Access Protocol<br />RESTful Web Services<br />Arquitectura<br />RepresentationalState Transfer<br />Interacción<br />Software<br />—<br />Software<br />en la nube<br />
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. 85%<br />15%<br />
  • 21. 85%<br />15%<br />
  • 22. 85%<br />15%<br />
  • 23. “The only reason you’d have only a SOAP API is <br />because you hate 80% of your addressable market.”<br />Sam Ramji (Apigee)<br />85%<br />15%<br />
  • 24.
  • 25.
  • 26. Open APIs: State of the Market (John Musser, ProgrammableWeb)<br />http://www.slideshare.net/jmusser/open-api-ecosystem-overview-december-2010<br />
  • 27. Open APIs: State of the Market (John Musser, ProgrammableWeb)<br />http://www.slideshare.net/jmusser/open-api-ecosystem-overview-december-2010<br />
  • 28.
  • 29.
  • 30.
  • 31.
  • 32. API<br />Web<br />
  • 33. API<br />Web<br />Peticiones<br />Puntos de acceso<br />
  • 34. API<br />Web<br />Peticiones<br />Puntos de acceso<br />Métodos<br />
  • 35. API<br />Web<br />Peticiones<br />Puntos de acceso<br />Métodos<br />Leer<br />GET<br />Crear<br />POST<br />Actualizar<br />PUT<br />Eliminar<br />DELETE<br />
  • 36. API<br />Web<br />Peticiones<br />Puntos de acceso<br />Métodos<br />Autenticación<br />
  • 37. API<br />Web<br />Peticiones<br />Puntos de acceso<br />Métodos<br />Autenticación<br />Identidad<br />Autenticación<br />Autorización<br />
  • 38. API<br />Web<br />Peticiones<br />Puntos de acceso<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 39. API<br />Web<br />Respuestas<br />Puntos de acceso<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 40. API<br />Web<br />Puntos de acceso<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 41. API<br />Web<br />Características de las APIs del Idescat<br />Puntos de acceso<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 42. API<br />Web<br />Características de las APIs del Idescat<br />Puntos de acceso<br />Formatos<br />definidas en<br />2008<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 43. Puntos de acceso<br />
  • 44. http://api.idescat.cat<br />Puntos de acceso<br />
  • 45. http://api.idescat.cat<br />/servicio<br />
  • 46. http://api.idescat.cat<br />/servicio<br />/versión<br />
  • 47. http://api.idescat.cat<br />/servicio<br />/versión<br />/operación<br />
  • 48. http://api.idescat.cat<br />/servicio<br />/versión<br />/operación<br />.formato<br />
  • 49. http://api.idescat.cat<br />/servicio<br />/versión<br />/operación<br />.formato<br />?parámetros<br />
  • 50. http://api.idescat.cat<br />/servicio<br />/versión<br />/operación<br />.formato<br />?parámetros<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 51. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 52. Independencia de interfaz<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 53. Independencia de interfaz<br />Independencia de recursos<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 54. Independencia de interfaz<br />Independencia de recursos<br />Limitación del uso interno en contextos <br />sometidos a la política del mismo origen <br />(p.e., Ajax)<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 55. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 56. JSONP<br />JSON withpadding<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 57. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 58. Diversidad de soluciones (APIs)<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 59. Diversidad de soluciones (APIs)<br />Ausencia de una interfaz unificada<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 60. Diversidad de soluciones (APIs)<br />Ausencia de una interfaz unificada<br />(Simplificar las operaciones)<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 61. Diversidad de soluciones (APIs)<br />(publicables gradualmente)<br />Ausencia de una interfaz unificada<br />(Simplificar las operaciones)<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 62. Diversidad de soluciones (APIs)<br />(publicables gradualmente)<br />Ausencia de una interfaz unificada<br />(Simplificar las operaciones)<br />Una API mala es mejor que ninguna API<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 63. Diversidad de soluciones (APIs)<br />(publicables gradualmente)<br />Ausencia de una interfaz unificada<br />(Simplificar las operaciones)<br />Una API mala es mejor que ninguna API<br />Una buena API no harábueno un mal servicio<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 64. Diversidad de soluciones (APIs)<br />(publicables gradualmente)<br />Ausencia de una interfaz unificada<br />(Simplificar las operaciones)<br />Una API mala es mejor que ninguna API<br />Una buena API no harábueno un mal servicio<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />“Aunque la mona se vista de seda, mona se queda.”<br />
  • 65. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 66. Permanencia<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 67. Permanencia<br />Una API es un contrato<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 68. Permanencia<br />Una API es un contrato<br />“PublicAPIsareforever”<br />Joshua Bloch<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 69. Permanencia<br />Una API es un contrato<br />indefinido<br />“PublicAPIsareforever”<br />Joshua Bloch<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 70. Permanencia<br />Una API es un contrato<br />indefinido<br />“PublicAPIsareforever”<br />Joshua Bloch<br />Versión 1.01: ampliación que no rompe la API<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 71. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 72. Diversidad de operaciones<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 73. Diversidad de operaciones<br />Vocabulariorestringido<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 74. Diversidad de operaciones<br />Vocabulariorestringido<br />(que en parte determina <br />la estructura de la respuesta)<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 75. Diversidad de operaciones<br />Vocabulariorestringido<br />(que en parte determina <br />la estructura de la respuesta)<br />“An API is a littlelanguage”<br />Joshua Bloch<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 76. Diversidad de operaciones<br />Vocabulariorestringido<br />(que en parte determina <br />la estructura de la respuesta)<br />“An API is a littlelanguage”<br />Joshua Bloch<br />¿Vocabularioambiguo?<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 77. Vocabulariorestringido<br />nodes<br />Dame los nodos<br />¿Qué recursos (objetos, elementos, átomos) hay?<br />¿Cómo se clasifican? ¿Quétiposhay? ¿Cómo se identifican?<br />Dame la lista de recursos<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 78. Vocabulariorestringido<br />nodes<br />http://api.idescat.cat/pob/v1/cerca.json?q=abrera<br />
  • 79. Vocabulariorestringido<br />dades<br />Dame los datos asociados a un nodo(s)<br />¿Cuáles son los datos y metadatosasociados a un recurso? <br />Dame (la información de) un recurso<br />Suele requerir conocersu identificador<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />
  • 80. Vocabulariorestringido<br />dades<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />
  • 81. Vocabulariorestringido<br />cerca<br />Dame los resultados de una búsqueda<br />¿Cuáles son los recursos que cumplen una búsquedaabierta? <br />Suele requerir especificar una cadena o algúntipo de filtro.<br />Puede ser sustitutivo de nodes si hay un número grande<br />de ellos.<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />dades<br />
  • 82. Vocabulariorestringido<br />cerca<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />dades<br />
  • 83. Vocabulariorestringido<br />cerca<br />Atom<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />dades<br />
  • 84. Vocabulariorestringido<br />cerca<br />Atom<br />OpenSearchResponse<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />dades<br />
  • 85. Vocabulariorestringido<br />cerca<br />Atom<br />OpenSearchResponse<br />SDMX<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />dades<br />
  • 86. Vocabulariorestringido<br />sug<br />Sugiéremeliterales de elementos<br />Suele requerir especificar una cadena o algúntipo de filtro.<br />Devuelveliteralescompletos, no datos o metadatos.<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />dades<br />cerca<br />
  • 87. Vocabulariorestringido<br />sug<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />dades<br />cerca<br />
  • 88. Vocabulariorestringido<br />sug<br />OpenSearch Suggestions<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />nodes<br />dades<br />cerca<br />
  • 89. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />sug<br />nodes<br />dades<br />cerca<br />
  • 90. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />sug<br />nodes<br />dades<br />cerca<br />
  • 91. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />sug<br />nodes<br />dades<br />cerca<br />
  • 92. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />sug<br />nodes<br />dades<br />cerca<br />
  • 93. Ajax<br />Política del mismo origen<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />sug<br />nodes<br />dades<br />cerca<br />
  • 94. Ajax<br />Política del mismo origen<br />Puentear<br />http://www.idescat.cat/api/...<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />sug<br />nodes<br />dades<br />cerca<br />
  • 95. Vocabulariorestringido<br />Dame las categorías<br />¿Cómo se etiquetan los recursos?<br />¿Quécategorizacionesexisten y cuáles son suscaracterísticas?<br />Dame la lista de categorizaciones o categorías<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />sug<br />nodes<br />dades<br />cerca<br />categories<br />
  • 96. http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 97. API<br />Web<br />Puntos de acceso<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 98. API<br />Web<br />Puntos de acceso<br />Formatos<br />(Una API es un contrato:<br />el resultado de su uso es<br />una coproducción)<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 99. API<br />Web<br />XML<br />
  • 100. API<br />Web<br />XML<br />ecosistema<br />
  • 101. API<br />Web<br />XML<br />ecosistema<br />XSLT<br />
  • 102. API<br />Web<br />XML<br />PHP<br />
  • 103. API<br />Web<br />XML<br />OpenSocial (JS)<br />
  • 104. API<br />Web<br />XML<br />OpenSocial (JS)<br />
  • 105. http://google-styleguide.googlecode.com/svn/trunk/xmlstyle.html<br />
  • 106. http://google-styleguide.googlecode.com/svn/trunk/xmlstyle.html<br />
  • 107. http://www.dataspora.com/2009/08/xml-and-big-data/<br />
  • 108. http://www.dataspora.com/2009/08/xml-and-big-data/<br />
  • 109. http://www.dataspora.com/2009/08/xml-and-big-data/<br />
  • 110. http://blog.jclark.com/2010/11/xml-vs-web_24.html<br />
  • 111. http://blog.jclark.com/2010/11/xml-vs-web_24.html<br />
  • 112.
  • 113. https://graph.facebook.com/badosa<br />
  • 114. Open APIs: State of the Market (John Musser, ProgrammableWeb)<br />http://www.slideshare.net/jmusser/open-api-ecosystem-overview-december-2010<br />
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121. Elementos = atributos<br />
  • 122. API<br />Web<br />JSON<br />
  • 123. API<br />Web<br />JSON<br />JS<br />
  • 124. API<br />Web<br />XMLHttpRequest()<br />JSON<br />Política del mismo origen <br />JS<br />
  • 125. API<br />Web<br />P<br />JSON<br />
  • 126. API<br />Web<br />P<br />JSON<br />
  • 127. callback<br />API<br />Web<br />P<br />JSON<br />
  • 128. callback<br />API<br />Web<br />P<br />JSON<br />mifuncion({"indicadors":{"p":"tt=0;max=1;min=1;","n":"1","o":"dades" ... })<br />
  • 129. is_array($o->indicadors->i)<br />API<br />Web<br />PHPserializado<br />
  • 130. is_array($o->indicadors->i)<br />API<br />Web<br />PHPserializado<br />
  • 131. is_array($o->indicadors->i)<br />API<br />Web<br />PHPserializado<br />
  • 132. is_array($o->indicadors->i)<br />Si no existe un estándar que especifique<br />una respuesta para cada formato<br />API<br />Web<br />
  • 133. is_array($o->indicadors->i)<br />Si no existe un estándar que especifique<br />una respuesta para cada formato<br />API<br />Web<br />XML<br />
  • 134. is_array($o->indicadors->i)<br />Si no existe un estándar que especifique<br />una respuesta para cada formato<br />API<br />Web<br />XML<br />JSON<br />
  • 135. is_array($o->indicadors->i)<br />Si no existe un estándar que especifique<br />una respuesta para cada formato<br />API<br />Web<br />XML<br />JSON<br />PHP<br />...<br />
  • 136. is_array($o->indicadors->i)<br />Si no existe un estándar que especifique<br />una respuesta para cada formato<br />API<br />Web<br />XML<br />+ fácilgeneración<br />+ fácildocumentación<br />JSON<br />PHP<br />...<br />
  • 137. is_array($o->indicadors->i)<br />Si no existe un estándar que especifique<br />una respuesta para cada formato<br />API<br />Web<br />XML<br />+ fácilgeneración<br />+ fácildocumentación<br />JSON<br />XML JSONificado<br />(o JSON con sabor a XML)<br />PHP<br />...<br />
  • 138. is_array($o->indicadors->i)<br />Si no existe un estándar que especifique<br />una respuesta para cada formato<br />API<br />Web<br />XML<br />+ fácilgeneración<br />+ fácildocumentación<br />JSON<br />XML JSONificado<br />(o JSON con sabor a XML)<br />PHP<br />...<br />...<br />XML JSONificadoPHPizado<br />
  • 139. is_array($o->indicadors->i)<br />Si no existe un estándar que especifique<br />una respuesta para cada formato<br />API<br />Web<br />XML<br />JSON<br />Modelo general de <br />representación interna<br />PHP<br />...<br />
  • 140. is_array($o->indicadors->i)<br />Si no existe un estándar que especifique<br />una respuesta para cada formato<br />API<br />Web<br />XML<br />Plantillas<br />JSON<br />Modelo general de <br />representación interna<br />PHP<br />...<br />Plantillas<br />
  • 141. is_array($o->indicadors->i)<br />Un caso en el que existe un estándar que <br />especifica una respuesta para cada formato<br />API<br />Web<br />
  • 142. is_array($o->indicadors->i)<br />Un caso en el que existe un estándar que <br />especifica una respuesta para cada formato<br />API<br />Web<br />OpenSearch<br />Suggestions<br />
  • 143. FF:JSON<br />IE8:XML<br />
  • 144. FF:JSON<br />IE8:XML<br />
  • 145. FF:JSON<br />IE8:XML<br />jquery / Autocomplete: TXT<br />
  • 146. http://api.idescat.cat/pob/v1/sug.txt?q=ab<br />jquery / Autocomplete: TXT<br />
  • 147. http://api.idescat.cat/pob/v1/sug.txt?q=ab<br />jquery / Autocomplete: TXT<br />
  • 148. http://api.idescat.cat<br />/servicio<br />/versión<br />/operación<br />.formato<br />?parámetros<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 149. Parámetros generales<br />callback (si json)<br />ca, es, en<br />lang<br />enc<br />utf-8, iso-8859-1<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 150. Parámetros generales<br />callback (si json)<br />ca, es, en<br />lang<br />enc<br />utf-8, iso-8859-1<br />incluso si json…<br />
  • 151. enc<br />utf-8, iso-8859-1<br />incluso si json…<br />(pero no php)<br />
  • 152. Una API es un proyecto en colaboración<br />enc<br />utf-8, iso-8859-1<br />incluso si json…<br />(pero no php)<br />
  • 153. Algunos parámetros comunes<br />id, i identificador<br />
  • 154. Algunos parámetros comunes<br />id, i identificador<br />http://api.idescat.cat/emex/v1/dades.xml?id=250019 <br />Dame (la información de) el recurso 250019<br />
  • 155. Algunos parámetros comunes<br />id, i identificador<br />http://api.idescat.cat/emex/v1/dades.xml?id=250019 <br />Dame (la información de) el recurso 250019<br />?<br />http://api.idescat.cat/emex/v2/municipios/250019.xml<br />
  • 156. Algunos parámetros comunes<br />id, i identificador<br />http://api.idescat.cat/emex/v1/dades.xml?id=250019 <br />Dame (la información de) el recurso 250019<br />?<br />http://api.idescat.cat/emex/v2/municipios/250019.xml<br />http://api.idescat.cat/emex/v2/comarcas/01.xml<br />
  • 157. Algunos parámetros comunes<br />id, i identificador<br />http://api.idescat.cat/emex/v1/dades.xml?id=250019 <br />Dame (la información de) el recurso 250019<br />?<br />http://api.idescat.cat/emex/v2/municipios/250019.xml<br />http://api.idescat.cat/emex/v2/comarcas/01.xml<br />http://api.idescat.cat/emex/v2/geo/01.xml<br />
  • 158. Algunos parámetros comunes<br />id, i identificador<br />http://api.idescat.cat/emex/v1/dades.xml?id=250019 <br />Dame (la información de) el recurso 250019<br />?<br />http://api.idescat.cat/emex/v2/municipios/250019.xml<br />http://api.idescat.cat/emex/v2/comarcas/01.xml<br />http://api.idescat.cat/emex/v2/geo/comarcas/01.xml<br />
  • 159. Algunos parámetros comunes<br />id, i identificador<br />http://api.idescat.cat/emex/v1/dades.xml?id=250019 <br />Dame (la información de) el recurso 250019<br />?<br />http://api.idescat.cat/emex/v2/municipios/250019.xml<br />http://api.idescat.cat/emex/v2/comarcas/01.xml<br />http://api.idescat.cat/emex/v2/geo/comarcas/01.xml<br />+ amigable<br />+ fácil analítica<br />+ vocabulario<br />
  • 160. Algunos parámetros comunes<br />http://api.idescat.cat/onomastica-nombres/v1/dades...<br />
  • 161. Algunos parámetros comunes<br />http://api.idescat.cat/onomastica-nombres/v1/dades...<br />http://api.idescat.cat/onomastica/nombres/v1/dades...<br />
  • 162. Algunos parámetros comunes<br />http://api.idescat.cat/onomastica-nombres/v1/dades...<br />http://api.idescat.cat/onomastica/nombres/v1/dades...<br />http://api.idescat.cat/onomastica/v1/nombres/dades...<br />
  • 163. Algunos parámetros comunes<br />http://api.idescat.cat/onomastica-nombres/v1/dades...<br />http://api.idescat.cat/onomastica/nombres/v1/dades...<br />http://api.idescat.cat/onomastica/v1/nombres/dades...<br />?<br />http://api.idescat.cat/ono.../v1/nombres/xavier.xml<br />
  • 164. Algunos parámetros comunes<br />http://api.idescat.cat/onomastica-nombres/v1/dades...<br />http://api.idescat.cat/onomastica/nombres/v1/dades...<br />http://api.idescat.cat/onomastica/v1/nombres/dades...<br />?<br />http://api.idescat.cat/ono.../v1/nombres/xavier.xml<br />http://api.idescat.cat/ono.../v1/apellidos/badosa.xml<br />
  • 165. Algunos parámetros comunes<br />http://api.idescat.cat/emex/v1/nodes.xml<br />Dame la lista de recursos<br />
  • 166. Algunos parámetros comunes<br />http://api.idescat.cat/emex/v1/nodes.xml<br />Dame la lista de recursos<br />?<br />http://api.idescat.cat/emex/v2/geo.xml<br />http://api.idescat.cat/emex/v2/geo/comarcas.xml<br />
  • 167. Algunos parámetros comunes<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 168. Algunos parámetros comunes<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />?<br />http://api.idescat.cat/pob/v2/geo.xml?q=abrera<br />
  • 169. Algunos parámetros comunes<br />v2, v1?<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />?<br />http://api.idescat.cat/pob/v2/geo.xml?q=abrera<br />
  • 170. Algunos parámetros comunes<br />http://api.idescat.cat/rect.../v1/categories.xml<br />http://api.idescat.cat/rect.../v1/categories.xml?id=tema<br />
  • 171. Algunos parámetros comunes<br />http://api.idescat.cat/rect.../v1/categories.xml<br />http://api.idescat.cat/rect.../v1/categories.xml?id=tema<br />?<br />http://api.idescat.cat/rect.../v1/categories.xml<br />http://api.idescat.cat/rect.../v1/categories/temes.xml<br />
  • 172. Algunos parámetros comunes<br />cadena abierta<br />q<br />http://api.idescat.cat/pob/v1/cerca.xml?q=abrera<br />
  • 173. Algunos parámetros comunes<br />posicio<br />paginación<br />http://api.idescat.cat/pob/v1/cerca.xml?q=a<br />&posicio=0<br />
  • 174. Algunos parámetros comunes<br />limit<br />posicio<br />paginación<br />(offset)<br />http://api.idescat.cat/pob/v1/cerca.xml?q=a<br />&posicio=0<br />
  • 175. API<br />Web<br />Puntos de acceso<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 176. API<br />Web<br />Puntos de acceso<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />Dame los nodos<br />Dame los datos<br />Dame los resultados de la búsqueda<br />Damesugerencias<br />Damecategorías<br />
  • 177. API<br />Web<br />Puntos de acceso<br />Formatos<br />GET<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />Dame los nodos<br />Dame los datos<br />Dame los resultados de la búsqueda<br />Damesugerencias<br />Damecategorías<br />
  • 178. API<br />Web<br />Puntos de acceso<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 179. API<br />Web<br />Puntos de acceso<br />Formatos<br />Tan abierto<br />como <br />el sitio web<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 180. API<br />Web<br />Puntos de acceso<br />Formatos<br />Tan abierto<br />como <br />el sitio web<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />↓ analítica<br />
  • 181. API<br />Web<br />Puntos de acceso<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 182. API<br />Web<br />Puntos de acceso<br />El Idescat se reserva el derecho de limitar las peticiones repetidas desde un mismo origen para garantizar el acceso al servicio para todo el mundo. Es responsabilidad del cliente emplear los mecanismos nece-sarios para evitar peticiones de la misma información en espacios de tiempo breve. El uso excesivo puede ocasionar la finaliza-ción del servicio. Si piensa hacer un uso intensivo de las APIs del Idescat póngase en contacto con el Idescat a fin de poder garantizar que este uso no perjudicará la disponibilidad general del servicio.<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />
  • 183. API<br />Web<br />Puntos de acceso<br />El Idescat se reserva el derecho de limitar las peticiones repetidas desde un mismo origen para garantizar el acceso al servicio para todo el mundo. Es responsabilidad del cliente emplear los mecanismos nece-sarios para evitar peticiones de la misma información en espacios de tiempo breve. El uso excesivo puede ocasionar la finaliza-ción del servicio. Si piensa hacer un uso intensivo de las APIs del Idescat póngase en contacto con el Idescat a fin de poder garantizar que este uso no perjudicará la disponibilidad general del servicio.<br />Formatos<br />Métodos<br />Autenticación<br />Restriccionestécnicas<br />inespecíficas<br />
  • 184. 1,2,3,4…<br />Infraestructura<br />cache<br />proxy<br />Interfaz<br />Homogeneización, simplificación, <br />gestión de errores…<br />Caché<br />Eficiencia<br />Estadísticas<br />
  • 185. Infraestructura<br />cache<br />proxy<br />
  • 186. Infraestructura<br />http://www.idescat.cat/api/<br />Documentación<br />cache<br />proxy<br />
  • 187. Infraestructura<br />http://www.idescat.cat/api/<br />Documentación<br />cache<br />proxy<br />
  • 188. Infraestructura<br />http://www.idescat.cat/api/<br />Documentación<br />Galerías<br />Herramientas<br />cache<br />proxy<br />
  • 189.
  • 190.
  • 191.
  • 192.
  • 193. http://bitworking.org/news/193/Do-we-need-WADL<br />
  • 194. Infraestructura<br />http://www.idescat.cat/api/<br />Documentación<br />Galería<br />Herramientas<br />cache<br />proxy<br /> Participación<br />
  • 195. Infraestructura<br />http://www.idescat.cat/api/<br />Documentación<br />Galería<br />Herramientas<br />cache<br />proxy<br /> Participación<br />Condiciones de uso<br />
  • 196.
  • 197.
  • 198.
  • 199.
  • 200.
  • 201. G<br />R<br />A<br />C<br />I<br />A<br />S<br />
  • 202. International Solidarity Movement<br />North Carolina<br />Olancho Aid<br />

×