SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
SERVICIOS WEB CON PYTHON
+ WEB.PY
HOMENAJE A AARON SWARTZ
Nacho Álvarez

@neonigmacdb
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ $ whoami
▸ Gracias, Aaron
▸ Entendamos los WebServices
▸ SOAP vs REST
▸ La propuesta de web.py
▸ Templetor: el sistema de plantillas
▸ Demo time!
ÍNDICE
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ Ingeniero en Informática por la UCO
▸ Certificado Scrum Manager en 2012 y PMP en 2017
▸ Trayectoria profesional:
▸ Soporte Servicio Informática UCO
▸ Desarrollo Web
▸ Desarrollo / Integración distribuciones GNU/Linux
▸ Android mobile + backend developer (WUL4)
▸ Técnico especialista Área de Innovación (Redsys)
▸ Analista Técnico en Soluciones Sectoriales (Redsys)
WHOAMI?
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ Involucrado en la Innovación de soluciones de medios de
pago
WHOAMI?
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ ALGUNOS DATOS 10/16 – 12/17… (algo más de 1 año de
proyecto)
▸ > 1.000.000 usuarios
▸ > 3.000.000 transacciones
▸ > 58€ de importe medio
▸ > 180 millones de euros en movimiento
▸ 96% cuota de mercado en España
WHOAMI?
SYSMANA 2018 I.E.S. GRAN CAPITÁN
GRACIAS, AARON
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ Con 3 años empezó a leer, con menos de 10 a programar
▸ Creó una especie de Wikipedia (The Info). Le animaron a desistir porque
la gente no confiaba en compartir enciclopedias
▸ Diseñó una plataforma parecida a Change.org
▸ Fue coautor de las especificaciones RSS
▸ También coautor del lenguaje Markdown
▸ Y también participó en el nacimiento de Creative Commons
▸ Fusionó infogami (de Y Combinator) con un pequeño sitio llamado reddit
GRACIAS, AARON
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ En cuanto a hacktivismo, Aaron fue cofundador de Demand
Progress junto a David Segal
▸ La organización consiguió bloquear los ataques a la neutralidad de
la red en forma de dos leyes que se demostraron poco apropiadas:
▸ SOPA: permitiría cerrar sitios Web con una única infracción,
parecida a la actual ley Sinde
▸ PIPA: tan terriblemente redactada que podría haber supuesto el
apagón de YouTube
▸ http://www.aaronsw.com/
GRACIAS, AARON
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ The Internet’s Own Boy (El chico de Internet)
▸ Cuando era adolescente, Aaron Swartz era un prodigio de la
programación informática con una sed insaciable de conocimiento.
Después de emerger como un pionero del activismo en Internet, la
educación y la política, fue acusado de varios cargos federales en 2011
y 2012, lo que desencadenó una compleja cadena de acontecimientos
que dejaron a las oscilaciones de la comunidad de Internet. Poco
después, a la edad de 26, Swartz fue encontrado muerto de un
aparente suicidio en su apartamento de Brooklyn. (FILMAFFINITY)
▸ https://www.youtube.com/watch?v=7jhdj0vKbYo
GRACIAS, AARON
SYSMANA 2018 I.E.S. GRAN CAPITÁN
GRACIAS, AARON
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ W3C define a los WebServices como APIs Web que pueden ser
accedidas dentro de una red (como Internet) y son ejecutados en
el sistema que los aloja
▸ Estos servicios proporcionan mecanismos de comunicación
estándares entre diferentes aplicaciones, que interactúan entre sí
para presentar información dinámica al usuario.
▸ http://users.dsic.upv.es/~rnavarro/NewWeb/docs/
RestVsWebServices.pdf
ENTENDAMOS LOS WEBSERVICES
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸RPC, Llamadas a Procedimientos Remotos): Presentan una interfaz de
llamada a procedimientos y funciones distribuidas. La unidad básica de este
tipo de servicios es la operación WSDL (descriptor del Servicio Web). Mala
elección porque suele ser implementado por medio del mapeo de servicios
directamente a funciones específicas del lenguaje o llamadas a métodos.
▸Arquitectura Orientada a Servicios (Service-oriented Architecture, SOA).
Aquí la unidad básica de comunicación es el mensaje, más que la operación.
Al contrario que los Servicios Web basados en RPC, este estilo es
débilmente acoplado, lo cual es preferible ya que se centra en el “contrato”
proporcionado por el documento WSDL, más que en los detalles de
implementación.
ENTENDAMOS LOS WEBSERVICES
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸REST (REpresentation State Transfer). Los Servicios Web basados en
REST intentan emular al protocolo HTTP o protocolos similares mediante
la restricción de establecer la interfaz a un conjunto conocido de
operaciones estándar (por ejemplo GET, PUT,…). Este estilo se centra más
en interactuar con recursos con estado, que con mensajes y operaciones.

▸GraphQL es un protocolo agnóstico y no depende en nada de HTTP. No
usa métodos o respuestas HTTP. El lenguaje y sintaxis usado en la request
es el mismo que el de la respuesta. Dispone de un sistema de tipado
fuerte por el que cualquier mal uso puede ser rápidamente detectado en
tiempo de desarrollo. Otro de sus principales rasgos es que la API puede
ser single endpoint.
ENTENDAMOS LOS WEBSERVICES
SYSMANA 2018 I.E.S. GRAN CAPITÁN
ENTENDAMOS LOS WEBSERVICES
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸HTTP posee un interfaz uniforme para acceso a los recursos, el cual consiste
de URIs, métodos, códigos de estado, cabeceras y un contenido guiado por
tipos MIME.
▸Los métodos HTTP más importantes son PUT, GET, POST y DELETE. Suelen ser
comparados con las operaciones asociadas a la tecnología de base de datos
(operaciones CRUD).
▸Cuando utilizamos REST, HTTP no tiene estado. Cada mensaje contiene toda
la información necesaria para comprender la petición.
ENTENDAMOS LOS WEBSERVICES - REST
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸Separación entre el cliente y el servidor: el protocolo REST separa
totalmente la interfaz de usuario del servidor y el almacenamiento de datos.
▸Visibilidad, fiabilidad y escalabilidad. Cualquier equipo de desarrollo
puede escalar el producto sin excesivos problemas, migrar a otros
servidores o realizar todo tipo de cambios en la base de datos
▸La API REST siempre es independiente del tipo de plataformas o
lenguajes: lo único indispensable es que las respuestas a las peticiones se
hagan siempre en el lenguaje de intercambio de información usado,
normalmente XML o JSON.
ENTENDAMOS LOS WEBSERVICES - REST
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ Ejemplos:
ENTENDAMOS LOS WEBSERVICES - REST
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ Ejemplos:
ENTENDAMOS LOS WEBSERVICES - REST
https://developers.google.com/custom-search/json-api/v1/using_rest
GET https://www.googleapis.com/customsearch/v1?key=INSERT_YOUR_API_KEY&cx=017576662512468239146:omuauf_lfve&q=lectures
SYSMANA 2018 I.E.S. GRAN CAPITÁN
SOAP VS REST
SYSMANA 2018 I.E.S. GRAN CAPITÁN
SOAP VS REST
SYSMANA 2018 I.E.S. GRAN CAPITÁN
http://webpy.org/philosophy
LA PROPUESTA DE WEB.PY
SYSMANA 2018 I.E.S. GRAN CAPITÁN
import web
urls = (
'/', 'Index'
)
class Index:
def GET(self):
return "Hola, mundo!"
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
LA PROPUESTA DE WEB.PY
SYSMANA 2018 I.E.S. GRAN CAPITÁN
import web
import json
urls = ('/hello/', 'Index')
class Index:
def POST(self):
data = json.loads(web.data())
value = data["name"]
return "Hello " + value
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
LA PROPUESTA DE WEB.PY
curl -H "Content-Type: application/json" -X POST -d
'{"name":"Nachon"}' http://localhost:8080/hello/
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ Simple y eficiente; en lugar de crear una nueva sintaxis para los
templates utiliza la misma de Python
TEMPLETOR: EL SISTEMA DE PLANTILLAS
BACKEND
FRONTEND
render = web.template.render('templates')

return render.hello('Mi título', 'Mi autor', '01/01/2018')
$def with (title, author, date)

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>$title</title></head>

<body>

<h1>$title</h1>

<small>$author</small>

<p>$date</p>

</body>

</html>
SYSMANA 2018 I.E.S. GRAN CAPITÁN
DESPLIEGUE DE APLICACIONES
sudo apt-get install libapache2-mod-wsgi
WSGIScriptAlias /appname /var/www/webpy-app/code.py/
AddType text/html .py



Alias /appname/static /var/www/webpy-app/static/
sudo a2ensite my-website
application = web.application(urls, globals()).wsgifunc()
mod-wsgi
Apache
a2ensite
web.py
SYSMANA 2018 I.E.S. GRAN CAPITÁN
DEMO TIME!
SYSMANA 2018 I.E.S. GRAN CAPITÁN
▸ https://hipertextual.com/2015/09/aaron-swartz-
perseguido
▸ http://users.dsic.upv.es/~rnavarro/NewWeb/docs/
RestVsWebServices.pdf
▸ http://recursospython.com/guias-y-manuales/templetor-
standalone/
▸ http://webpy.org
WEBGRAFÍA
SYSMANA 2018 I.E.S. GRAN CAPITÁN
¿PREGUNTAS?
“Si somos suficientes, alrededor del mundo, no sólo enviaremos un fuerte mensaje de
oposición a la privatización del conocimiento - haremos de ello una cosa del pasado”

Más contenido relacionado

Similar a Servicios Web con Python + web.py (Homenaje a Aaron Swartz)

Portabilidad y transportabilidad
Portabilidad y transportabilidadPortabilidad y transportabilidad
Portabilidad y transportabilidad
juanmanuelsalgado
 

Similar a Servicios Web con Python + web.py (Homenaje a Aaron Swartz) (20)

Por qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.gov
Por qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.govPor qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.gov
Por qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.gov
 
Corporaciones en piel de start ups
Corporaciones en piel de start upsCorporaciones en piel de start ups
Corporaciones en piel de start ups
 
Microsoft azure. el camino hacia la elección de la pastilla roja
Microsoft azure. el camino hacia la elección de la pastilla rojaMicrosoft azure. el camino hacia la elección de la pastilla roja
Microsoft azure. el camino hacia la elección de la pastilla roja
 
Tecnap 2015 WS Integrabilidad SIG
Tecnap 2015 WS Integrabilidad SIGTecnap 2015 WS Integrabilidad SIG
Tecnap 2015 WS Integrabilidad SIG
 
Internet & Administradores de Fincas - Presente y Futuro
Internet & Administradores de Fincas - Presente y FuturoInternet & Administradores de Fincas - Presente y Futuro
Internet & Administradores de Fincas - Presente y Futuro
 
Internet y navegadores
Internet y navegadoresInternet y navegadores
Internet y navegadores
 
Servidores web y generadores de código
Servidores web y generadores de códigoServidores web y generadores de código
Servidores web y generadores de código
 
Soalatam apim v1.0
Soalatam apim v1.0Soalatam apim v1.0
Soalatam apim v1.0
 
Tecnologias Emergentes Digitales
Tecnologias Emergentes DigitalesTecnologias Emergentes Digitales
Tecnologias Emergentes Digitales
 
Api rest client en Android
Api rest client en AndroidApi rest client en Android
Api rest client en Android
 
ANÁLISIS DE LA WEB
ANÁLISIS DE LA WEBANÁLISIS DE LA WEB
ANÁLISIS DE LA WEB
 
Mejorar la usabilidad y la conversion con WPO en Wordpress
Mejorar la usabilidad y la conversion con WPO en WordpressMejorar la usabilidad y la conversion con WPO en Wordpress
Mejorar la usabilidad y la conversion con WPO en Wordpress
 
Tendencias 2017
Tendencias 2017Tendencias 2017
Tendencias 2017
 
Cómo implementar Arquitectura para entregar servicios omnicanal
Cómo implementar Arquitectura para entregar servicios omnicanalCómo implementar Arquitectura para entregar servicios omnicanal
Cómo implementar Arquitectura para entregar servicios omnicanal
 
Tendencias para profesionistas de software 2017
Tendencias para profesionistas de software 2017Tendencias para profesionistas de software 2017
Tendencias para profesionistas de software 2017
 
Es cuela de agricultura la fragua
Es cuela de agricultura la fraguaEs cuela de agricultura la fragua
Es cuela de agricultura la fragua
 
Webinar Gratuito: Capturar Tráfico de Red
Webinar Gratuito: Capturar Tráfico de RedWebinar Gratuito: Capturar Tráfico de Red
Webinar Gratuito: Capturar Tráfico de Red
 
Portabilidad y transportabilidad
Portabilidad y transportabilidadPortabilidad y transportabilidad
Portabilidad y transportabilidad
 
MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020
 
AWS para torpes - Introducción a AWS
AWS para torpes - Introducción a AWSAWS para torpes - Introducción a AWS
AWS para torpes - Introducción a AWS
 

Más de José Ignacio Álvarez Ruiz

Más de José Ignacio Álvarez Ruiz (11)

Sistemas de control de versiones distribuidos: Controla las versiones de tu t...
Sistemas de control de versiones distribuidos: Controla las versiones de tu t...Sistemas de control de versiones distribuidos: Controla las versiones de tu t...
Sistemas de control de versiones distribuidos: Controla las versiones de tu t...
 
The blockchain disruption
The blockchain disruptionThe blockchain disruption
The blockchain disruption
 
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKSysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
 
Sysmana 2015 - Comunicación NFC entre Raspberry pi y Android
Sysmana 2015 - Comunicación NFC entre Raspberry pi y AndroidSysmana 2015 - Comunicación NFC entre Raspberry pi y Android
Sysmana 2015 - Comunicación NFC entre Raspberry pi y Android
 
Sysmana 2017 monitorización de logs con el stack elk
Sysmana 2017   monitorización de logs con el stack elkSysmana 2017   monitorización de logs con el stack elk
Sysmana 2017 monitorización de logs con el stack elk
 
Sysmana 2017 metodologías gestión ágil de proyectos
Sysmana 2017   metodologías gestión ágil de proyectosSysmana 2017   metodologías gestión ágil de proyectos
Sysmana 2017 metodologías gestión ágil de proyectos
 
Comunicación NFC entre Raspberry Pi y Android
Comunicación NFC entre Raspberry Pi y AndroidComunicación NFC entre Raspberry Pi y Android
Comunicación NFC entre Raspberry Pi y Android
 
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFCCharla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
 
WUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GIT
WUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GITWUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GIT
WUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GIT
 
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
 
Analisis distribuciones GNU/Linux Mayo 2010 (revisado)
Analisis distribuciones GNU/Linux Mayo 2010 (revisado)Analisis distribuciones GNU/Linux Mayo 2010 (revisado)
Analisis distribuciones GNU/Linux Mayo 2010 (revisado)
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (14)

presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 

Servicios Web con Python + web.py (Homenaje a Aaron Swartz)

  • 1. SERVICIOS WEB CON PYTHON + WEB.PY HOMENAJE A AARON SWARTZ Nacho Álvarez
 @neonigmacdb
  • 2. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ $ whoami ▸ Gracias, Aaron ▸ Entendamos los WebServices ▸ SOAP vs REST ▸ La propuesta de web.py ▸ Templetor: el sistema de plantillas ▸ Demo time! ÍNDICE
  • 3. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ Ingeniero en Informática por la UCO ▸ Certificado Scrum Manager en 2012 y PMP en 2017 ▸ Trayectoria profesional: ▸ Soporte Servicio Informática UCO ▸ Desarrollo Web ▸ Desarrollo / Integración distribuciones GNU/Linux ▸ Android mobile + backend developer (WUL4) ▸ Técnico especialista Área de Innovación (Redsys) ▸ Analista Técnico en Soluciones Sectoriales (Redsys) WHOAMI?
  • 4. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ Involucrado en la Innovación de soluciones de medios de pago WHOAMI?
  • 5. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ ALGUNOS DATOS 10/16 – 12/17… (algo más de 1 año de proyecto) ▸ > 1.000.000 usuarios ▸ > 3.000.000 transacciones ▸ > 58€ de importe medio ▸ > 180 millones de euros en movimiento ▸ 96% cuota de mercado en España WHOAMI?
  • 6. SYSMANA 2018 I.E.S. GRAN CAPITÁN GRACIAS, AARON
  • 7. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ Con 3 años empezó a leer, con menos de 10 a programar ▸ Creó una especie de Wikipedia (The Info). Le animaron a desistir porque la gente no confiaba en compartir enciclopedias ▸ Diseñó una plataforma parecida a Change.org ▸ Fue coautor de las especificaciones RSS ▸ También coautor del lenguaje Markdown ▸ Y también participó en el nacimiento de Creative Commons ▸ Fusionó infogami (de Y Combinator) con un pequeño sitio llamado reddit GRACIAS, AARON
  • 8. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ En cuanto a hacktivismo, Aaron fue cofundador de Demand Progress junto a David Segal ▸ La organización consiguió bloquear los ataques a la neutralidad de la red en forma de dos leyes que se demostraron poco apropiadas: ▸ SOPA: permitiría cerrar sitios Web con una única infracción, parecida a la actual ley Sinde ▸ PIPA: tan terriblemente redactada que podría haber supuesto el apagón de YouTube ▸ http://www.aaronsw.com/ GRACIAS, AARON
  • 9. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ The Internet’s Own Boy (El chico de Internet) ▸ Cuando era adolescente, Aaron Swartz era un prodigio de la programación informática con una sed insaciable de conocimiento. Después de emerger como un pionero del activismo en Internet, la educación y la política, fue acusado de varios cargos federales en 2011 y 2012, lo que desencadenó una compleja cadena de acontecimientos que dejaron a las oscilaciones de la comunidad de Internet. Poco después, a la edad de 26, Swartz fue encontrado muerto de un aparente suicidio en su apartamento de Brooklyn. (FILMAFFINITY) ▸ https://www.youtube.com/watch?v=7jhdj0vKbYo GRACIAS, AARON
  • 10. SYSMANA 2018 I.E.S. GRAN CAPITÁN GRACIAS, AARON
  • 11. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ W3C define a los WebServices como APIs Web que pueden ser accedidas dentro de una red (como Internet) y son ejecutados en el sistema que los aloja ▸ Estos servicios proporcionan mecanismos de comunicación estándares entre diferentes aplicaciones, que interactúan entre sí para presentar información dinámica al usuario. ▸ http://users.dsic.upv.es/~rnavarro/NewWeb/docs/ RestVsWebServices.pdf ENTENDAMOS LOS WEBSERVICES
  • 12. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸RPC, Llamadas a Procedimientos Remotos): Presentan una interfaz de llamada a procedimientos y funciones distribuidas. La unidad básica de este tipo de servicios es la operación WSDL (descriptor del Servicio Web). Mala elección porque suele ser implementado por medio del mapeo de servicios directamente a funciones específicas del lenguaje o llamadas a métodos. ▸Arquitectura Orientada a Servicios (Service-oriented Architecture, SOA). Aquí la unidad básica de comunicación es el mensaje, más que la operación. Al contrario que los Servicios Web basados en RPC, este estilo es débilmente acoplado, lo cual es preferible ya que se centra en el “contrato” proporcionado por el documento WSDL, más que en los detalles de implementación. ENTENDAMOS LOS WEBSERVICES
  • 13. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸REST (REpresentation State Transfer). Los Servicios Web basados en REST intentan emular al protocolo HTTP o protocolos similares mediante la restricción de establecer la interfaz a un conjunto conocido de operaciones estándar (por ejemplo GET, PUT,…). Este estilo se centra más en interactuar con recursos con estado, que con mensajes y operaciones.
 ▸GraphQL es un protocolo agnóstico y no depende en nada de HTTP. No usa métodos o respuestas HTTP. El lenguaje y sintaxis usado en la request es el mismo que el de la respuesta. Dispone de un sistema de tipado fuerte por el que cualquier mal uso puede ser rápidamente detectado en tiempo de desarrollo. Otro de sus principales rasgos es que la API puede ser single endpoint. ENTENDAMOS LOS WEBSERVICES
  • 14. SYSMANA 2018 I.E.S. GRAN CAPITÁN ENTENDAMOS LOS WEBSERVICES
  • 15. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸HTTP posee un interfaz uniforme para acceso a los recursos, el cual consiste de URIs, métodos, códigos de estado, cabeceras y un contenido guiado por tipos MIME. ▸Los métodos HTTP más importantes son PUT, GET, POST y DELETE. Suelen ser comparados con las operaciones asociadas a la tecnología de base de datos (operaciones CRUD). ▸Cuando utilizamos REST, HTTP no tiene estado. Cada mensaje contiene toda la información necesaria para comprender la petición. ENTENDAMOS LOS WEBSERVICES - REST
  • 16. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸Separación entre el cliente y el servidor: el protocolo REST separa totalmente la interfaz de usuario del servidor y el almacenamiento de datos. ▸Visibilidad, fiabilidad y escalabilidad. Cualquier equipo de desarrollo puede escalar el producto sin excesivos problemas, migrar a otros servidores o realizar todo tipo de cambios en la base de datos ▸La API REST siempre es independiente del tipo de plataformas o lenguajes: lo único indispensable es que las respuestas a las peticiones se hagan siempre en el lenguaje de intercambio de información usado, normalmente XML o JSON. ENTENDAMOS LOS WEBSERVICES - REST
  • 17. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ Ejemplos: ENTENDAMOS LOS WEBSERVICES - REST
  • 18. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ Ejemplos: ENTENDAMOS LOS WEBSERVICES - REST https://developers.google.com/custom-search/json-api/v1/using_rest GET https://www.googleapis.com/customsearch/v1?key=INSERT_YOUR_API_KEY&cx=017576662512468239146:omuauf_lfve&q=lectures
  • 19. SYSMANA 2018 I.E.S. GRAN CAPITÁN SOAP VS REST
  • 20. SYSMANA 2018 I.E.S. GRAN CAPITÁN SOAP VS REST
  • 21. SYSMANA 2018 I.E.S. GRAN CAPITÁN http://webpy.org/philosophy LA PROPUESTA DE WEB.PY
  • 22. SYSMANA 2018 I.E.S. GRAN CAPITÁN import web urls = ( '/', 'Index' ) class Index: def GET(self): return "Hola, mundo!" if __name__ == "__main__": app = web.application(urls, globals()) app.run() LA PROPUESTA DE WEB.PY
  • 23. SYSMANA 2018 I.E.S. GRAN CAPITÁN import web import json urls = ('/hello/', 'Index') class Index: def POST(self): data = json.loads(web.data()) value = data["name"] return "Hello " + value if __name__ == "__main__": app = web.application(urls, globals()) app.run() LA PROPUESTA DE WEB.PY curl -H "Content-Type: application/json" -X POST -d '{"name":"Nachon"}' http://localhost:8080/hello/
  • 24. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ Simple y eficiente; en lugar de crear una nueva sintaxis para los templates utiliza la misma de Python TEMPLETOR: EL SISTEMA DE PLANTILLAS BACKEND FRONTEND render = web.template.render('templates')
 return render.hello('Mi título', 'Mi autor', '01/01/2018') $def with (title, author, date)
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head><title>$title</title></head>
 <body>
 <h1>$title</h1>
 <small>$author</small>
 <p>$date</p>
 </body>
 </html>
  • 25. SYSMANA 2018 I.E.S. GRAN CAPITÁN DESPLIEGUE DE APLICACIONES sudo apt-get install libapache2-mod-wsgi WSGIScriptAlias /appname /var/www/webpy-app/code.py/ AddType text/html .py
 
 Alias /appname/static /var/www/webpy-app/static/ sudo a2ensite my-website application = web.application(urls, globals()).wsgifunc() mod-wsgi Apache a2ensite web.py
  • 26. SYSMANA 2018 I.E.S. GRAN CAPITÁN DEMO TIME!
  • 27. SYSMANA 2018 I.E.S. GRAN CAPITÁN ▸ https://hipertextual.com/2015/09/aaron-swartz- perseguido ▸ http://users.dsic.upv.es/~rnavarro/NewWeb/docs/ RestVsWebServices.pdf ▸ http://recursospython.com/guias-y-manuales/templetor- standalone/ ▸ http://webpy.org WEBGRAFÍA
  • 28. SYSMANA 2018 I.E.S. GRAN CAPITÁN ¿PREGUNTAS? “Si somos suficientes, alrededor del mundo, no sólo enviaremos un fuerte mensaje de oposición a la privatización del conocimiento - haremos de ello una cosa del pasado”