El documento presenta una introducción teórica al desarrollo de APIs utilizando la arquitectura REST. Explica conceptos clave como recursos, identificadores, representaciones, operadores y códigos de respuesta HTTP. También recomienda estructurar el API siguiendo patrones MVC, realizar pruebas unitarias, utilizar caché y autenticación, y considerar frameworks existentes.
Esta es una breve introducción a git y gitHub. En ella se tratan muchos temas de manera conceptual y no detallada, y se omiten algunos temas importantes; pero es más que suficiente para empezar a trabajar con git y a partir de aquí ampliar esta introducción.
La razón de utilizar eclipse para la presentación, es que sea más fácil de entender los conceptos de git, para dejar la base para después empezar a trabajar con git en consola.
Aquí está un manual un poco más detallado, que permitirá empezar a trabajar con git, utilizando GitHub como servidor git: http://es.slideshare.net/MiguelAscanioGmez/manual-y-git-github
JavaScript Module Patterns: How to build and use JavaScript modules. We cover the Basic Module Pattern, Revealing Module Pattern, CommonJS, AMD, CommonJS, UMD and ES6 modules.
Esta es una breve introducción a git y gitHub. En ella se tratan muchos temas de manera conceptual y no detallada, y se omiten algunos temas importantes; pero es más que suficiente para empezar a trabajar con git y a partir de aquí ampliar esta introducción.
La razón de utilizar eclipse para la presentación, es que sea más fácil de entender los conceptos de git, para dejar la base para después empezar a trabajar con git en consola.
Aquí está un manual un poco más detallado, que permitirá empezar a trabajar con git, utilizando GitHub como servidor git: http://es.slideshare.net/MiguelAscanioGmez/manual-y-git-github
JavaScript Module Patterns: How to build and use JavaScript modules. We cover the Basic Module Pattern, Revealing Module Pattern, CommonJS, AMD, CommonJS, UMD and ES6 modules.
Welcome to presentation on Spring boot which is really great and relatively a new project from Spring.io. Its aim is to simplify creating new spring framework based projects and unify their configurations by applying some conventions. This convention over configuration is already successfully applied in so called modern web based frameworks like Grails, Django, Play framework, Rails etc.
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...Edureka!
This Edureka “Django Rest Framework tutorial" introduces you to the concepts of API and will help you build a successful REST API in Django. This video helps you to learn the following topics:
1. What is an API?
2. Introduction to Rest Framework
3. What is Rest API?
4. Demo - Create a RESTful Web APi
Getting started with the reactjs, basics of reactjs, introduction of reactjs, core concepts of reactjs and comparison with the other libraries/frameworks
The Functional Programming Triad of Map, Filter and FoldPhilip Schwarz
This slide deck is my homage to SICP, the book which first introduced me to the Functional Programming triad of map, filter and fold.
It was during my Computer Science degree that a fellow student gave me a copy of the first edition, not long after the book came out.
I have not yet come across a better introduction to these three functions.
The upcoming slides are closely based on the second edition of the book, a free online copy of which can be found here:
https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html.
Download for original image quality.
Errata:
slide 20: the Clojure map function is in fact the Scheme one repeated - see code below for correction.
Scheme code: https://github.com/philipschwarz/the-fp-triad-of-map-filter-and-fold-scheme
Clojure code: https://github.com/philipschwarz/the-fp-triad-of-map-filter-and-fold-clojure
Welcome to presentation on Spring boot which is really great and relatively a new project from Spring.io. Its aim is to simplify creating new spring framework based projects and unify their configurations by applying some conventions. This convention over configuration is already successfully applied in so called modern web based frameworks like Grails, Django, Play framework, Rails etc.
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...Edureka!
This Edureka “Django Rest Framework tutorial" introduces you to the concepts of API and will help you build a successful REST API in Django. This video helps you to learn the following topics:
1. What is an API?
2. Introduction to Rest Framework
3. What is Rest API?
4. Demo - Create a RESTful Web APi
Getting started with the reactjs, basics of reactjs, introduction of reactjs, core concepts of reactjs and comparison with the other libraries/frameworks
The Functional Programming Triad of Map, Filter and FoldPhilip Schwarz
This slide deck is my homage to SICP, the book which first introduced me to the Functional Programming triad of map, filter and fold.
It was during my Computer Science degree that a fellow student gave me a copy of the first edition, not long after the book came out.
I have not yet come across a better introduction to these three functions.
The upcoming slides are closely based on the second edition of the book, a free online copy of which can be found here:
https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html.
Download for original image quality.
Errata:
slide 20: the Clojure map function is in fact the Scheme one repeated - see code below for correction.
Scheme code: https://github.com/philipschwarz/the-fp-triad-of-map-filter-and-fold-scheme
Clojure code: https://github.com/philipschwarz/the-fp-triad-of-map-filter-and-fold-clojure
Workshop sobre APIs realizado el 27 de abril en el Centro de Innovación de BBVA. En este evento hemos visto los detalles del funcionamiento, gestión de errores y conceptos de seguridad aplicados a APIs.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
2. 1) Introducción Teórica 2) Terminología REST 3) Estructura 4) Recursos Desarrollando un API en REST Desarrollando una API en REST PHP Barcelona 09
3. API - interfaz de programación de aplicaciones La Transferencia de Estado Representacional (Representational State Transfer) o REST es una técnica de arquitectura software para sistemas hipermedia distribuidos como la World Wide Web Introducción Teórica Desarrollando una API en REST PHP Barcelona 09
4. API - interfaz de programación de aplicaciones La Transferencia de Estado Representacional (Representational State Transfer) o REST es una técnica de arquitectura software para sistemas hipermedia distribuidos como la World Wide Web Introducción Teórica Desarrollando una API en REST PHP Barcelona 09 WTF?
12. La arquitectura se simplifica (rendimiento) Peticiones se simplifican (velocidad) Curva de aprendizaje inexistente Resultados visualmente interpretables Fácil escalabilidad y evolución de sus componentes Las funcionalidades pueden ser extendidas mediante widgets o scripts Simplicidad Introducción Teórica Ventajas de REST Desarrollando una API en REST PHP Barcelona 09
13. Introducción Teórica Ventajas de REST De accesos a Bases de datos complejas select projects.name as projname, cufiles.name as cuname, basefiles.name as basename, definefiles.name as defname from definers inner join projects on definers.pid = projects.pid inner join files as cufiles on definers.cuid=cufiles.fid inner join files as basefiles on definers.basefileid=basefiles.fid inner join files as definefiles on definers.definerid = definefiles.fid; WHERE projects.pid=51 A peticiones Simples : http://api.example.com/project-51 PHP Conference 2009 Desarrollando una API en REST - Introducción teórica
14. Introducción Teórica Ejemplo PHP con CURL $user = 'YOUREMAILADDRESS'; $password = 'YOURPASSWORD'; $ch = curl_init("https://twitter.com/statuses/user_timeline.xml"); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch,CURLOPT_TIMEOUT, 30); curl_setopt($ch,CURLOPT_USERPWD,$user . ":" . $password); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); $result=curl_exec ($ch); $data = strstr($result, '<?'); $xml = new SimpleXMLElement($data); return $xml; Desarrollando una API en REST PHP Barcelona 09
15. La información es transferida de forma no optimizada según la aplicación Hacen falta múltiples llamadas para conseguir información compleja XML JSON PHP … Introducción Teórica Desventajas de REST Desarrollando una API en REST PHP Barcelona 09
16. RPC : Llamada a procedimiento remoto, es un protocolo que permite a un programa ejecutar código residente en otra máquina Introducción Teórica Alternativas a REST : RPC <methodCall> <methodName> function </methodName> <params> <param> <value> <struct> <member> <name> name </name> <value><string> value </string></value> </member> </struct> </value> </param> </params> </methodCall> <?xml version="1.0" encoding="utf-8" ?> <methodResponse> <params> <param> <value><string>[result]</string></value> </param> </params> </methodResponse> Llamada Respuesta Desarrollando una API en REST PHP Barcelona 09
17. SOAP : Define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML <s:Envelope xmlns:s= http://www.w3.org/2003/05/soap-envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" > <s:Body> <x:ApiRequest xmlns:x="urn:flickr"> <method>api.test.echo</method> < name > value </ name > </x:ApiRequest> </s:Body> </s:Envelope> Llamada Introducción Teórica Alternativas a REST : SOAP Desarrollando una API en REST PHP Barcelona 09
18. REST es Mucho más sencillo REST es el equivalente a DBMS RPC/SOAP vendrían a ser los Stored procedures REST trata con recursos, SOA (Service Oriented Architecture) con acciones y servicios (trasladar complejidad al cliente o al servidor) (1) No IDLs (Interface Description Language) o WSDLs (Web Services Description Language) o WADL (Web Application Description Language) No son incompatibles, se pueden ofrecer las dos opciones Introducción Teórica ROA vs SOA (1) Pero se puede hacer Desarrollando una API en REST PHP Barcelona 09
23. Códigos de respuesta Terminología REST Desarrollando una API en REST PHP Barcelona 09
24. Toda información a la que se pueda dar un nombre es un recurso Los recursos son elementos de información Terminología : Recursos Desarrollando una API en REST PHP Barcelona 09
27. REST no especifica las URIs a utilizar Terminología : Identificadores de recursos http://twitter.com/statuses/show/ id . format http://vimeo.com/api/v2/username/request.output Desarrollando una API en REST PHP Barcelona 09
28. - Para manipular estos recursos, los componentes de la red (clientes y servidores) se comunican a través de un interfaz estándar (HTTP) e intercambian representaciones de estos recursos (los ficheros que se descargan y se envían) - Un recurso particular puede tener múltiples representaciones - Representaciones más comunes : html, xml, json… - Idealmente la representación debería ser negociada en los datos de control de la cabecera HTTP Terminología : Representaciones Desarrollando una API en REST PHP Barcelona 09
29. XML, PHP, JSON and JSONP. Esper... ¿JsonP? Json con Padding para solucionar un problema : AJAX crossDomain ({ "propiedad1" : "valor1", "propiedad2" : "valor2" }) FuncionPuente ({ "propiedad1" : "valor1", "propiedad2" : "valor2" }) JSON JSONP Terminología : Representaciones window.document.write(' <script src=" http://api.yoursite.com/res1.jsonp?callback=funcionCallback "><!--mce:0--></script> "); var funcionCallback = function( json ) { alert(json.propiedad1); alert(json.propiedad2); } Desarrollando una API en REST PHP Barcelona 09
30. GET Pedir información sobre un recurso POST Create : Comando al servidor para crear subordinados del recurso Update : Modificar subordinados del recurso PUT Create : Crear un nuevo recurso Update : Modificar el recurso DELETE Eliminar un recurso Terminología : Operadores GET/POST/PUT/DELETE != CRUD Desarrollando una API en REST PHP Barcelona 09
50. Modelos para acceso a los datos Estructura Desarrollando una API en REST PHP Barcelona 09
51.
52.
53.
54.
55. Estructura MVC Diagrama de flujo Dispatcher Parsear URI Válida En caché Error Controlador Modelo Vista Guarda en caché Mostrar Sí Sí No No Vista Desarrollando una API en REST PHP Barcelona 09
56. Estructura MVC Esquema aplicación A index.php parser.php error.php controller.class.php libros.php autores.php model.class.php autores.php libros.php Unit Testing config.php Seguridad Autentificación + Vista Controladores Modelos Desarrollando una API en REST PHP Barcelona 09
57. Estructura MVC Esquema aplicación B error.php controller.class.php libros.php autores.php model.class.php autores.php libros.php Unit Testing Autentificación + Vista + seguridad Controladores Modelos Desarrollando una API en REST PHP Barcelona 09
58. Estructura Caché Tu URI puede servir como identificador para la caché Memcached : http://www.danga.com/memcached/ $cache_id = $info[‘URI']; $memcached = new Memcache; $memcached->connect('hostname', 11211); if ( ($row = $memcached->get( $cache_id)) === false ) { // Get resource frrom DB into $row. $memcached->set( $cache_id, $row, MEMCACHE_COMPRESSED, time() + 3600); } echo $row; Desarrollando una API en REST PHP Barcelona 09
63. JSONView 0.3 Permite abrir documentos JSON en el navegador. https://addons.mozilla.org/es-ES/firefox/addon/10869 Recursos Test Tools Desarrollando una API en REST PHP Barcelona 09
64. RESTClient 1.2.8 Permite visualizar y testear servicios RESTful/WebDav. https://addons.mozilla.org/es-ES/firefox/addon/9780 Recursos Test Tools Desarrollando una API en REST PHP Barcelona 09
67. [email_address] Labs Developer en Softonic Twitter : @alexpuig Blog : http://www.alexpuig.es Muchas Gracias! Desarrollando una API en REST PHP Barcelona 09