Este documento explica los principios de REST (Representational State Transfer), una arquitectura para sistemas hipermedia distribuidos. REST no es un servicio web ni una tecnología, sino una guía de diseño para servicios web que sigan sus principios como el uso de operaciones HTTP, identificación de recursos mediante URIs, estado sin sesión, y representación de los recursos mediante formatos como JSON. Algunas características clave de los servicios RESTful son el uso de métodos HTTP, sintaxis universal mediante URIs, relaciones hipermedia, y códigos de
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
A arquitetura das aplicações web vem mudando ao longo do tempo, não basta só sabermos fazer requests e esperarmos um json de retorno. Entender o conceito por trás das APIs e as vantagens do padrão RESTful farão toda a diferença na hora de desenvolver aplicações "elegantes".
Marcos Echevarria é Marcos Echevarria é mestre em Ciência da Computação pela Universidade Católica de Pelotas. Desenvolve sistemas web há mais de 10 anos, tendo liderado equipes em projetos de médio e grande porte em empresas nacionais e internacionais. Atualmente é CEO na empresa Be Mobile e professor na Universidade Católica de Pelotas, onde leciona as disciplinas de Algoritmos e Engenharia de Software.
Para mais informações:
https://twitter.com/quinhodev
Introdução ao conceito de APIs RESTful. Características, boas práticas e o que é importante se levar em consideração durante o desenvolvimento de uma API RESTful.
Aborda utilização de verbos HTTP, códigos de status, headers, controles de hipermídia, formatos de representação entre outros.
Projects In Laravel : Learn Laravel Building 10 ProjectsSam Dias
Projects In Laravel : Learn Laravel Building 10 Projects
Learn Laravel 5, top PHP framework, including how to install Laravel 5 framework & fundamentals in this Laravel 5 tutorial. This is why you need something to help you learn a technology quickly and easily! Our course does exactly that!
https://www.eduonix.com/courses/Web-Development/projects-in-laravel-learn-laravel-building-10-projects
Principios básicos de la Arquitectura Rest, haciendo especial hincapié en las 6 restricciones que permiten crear API altamente escalables (Uniform Interface, Stateless, Cacheable, Client-Server, Layered System y Code on Demand).
Estas restricciones son la base de la Arquitectura REST y aplicarlas nos ayudaran a conseguir buenos diseño: correcto nombrado de los servicios, recursos, aplicar el método (GET, POST, PUT, DELETE) apropiado a la acción, descubrir recursos basándonos únicamente en las respuestas del servidor (HATEOAS), ..
Además, conoceremos el Modelo de Madurez Richarson que nos permite conocer en que punto nos encontramos dentro de la arquitectura, algunos antipatrones de diseño y ejemplos de API REST (Twitter, Facebook).
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
A arquitetura das aplicações web vem mudando ao longo do tempo, não basta só sabermos fazer requests e esperarmos um json de retorno. Entender o conceito por trás das APIs e as vantagens do padrão RESTful farão toda a diferença na hora de desenvolver aplicações "elegantes".
Marcos Echevarria é Marcos Echevarria é mestre em Ciência da Computação pela Universidade Católica de Pelotas. Desenvolve sistemas web há mais de 10 anos, tendo liderado equipes em projetos de médio e grande porte em empresas nacionais e internacionais. Atualmente é CEO na empresa Be Mobile e professor na Universidade Católica de Pelotas, onde leciona as disciplinas de Algoritmos e Engenharia de Software.
Para mais informações:
https://twitter.com/quinhodev
Introdução ao conceito de APIs RESTful. Características, boas práticas e o que é importante se levar em consideração durante o desenvolvimento de uma API RESTful.
Aborda utilização de verbos HTTP, códigos de status, headers, controles de hipermídia, formatos de representação entre outros.
Projects In Laravel : Learn Laravel Building 10 ProjectsSam Dias
Projects In Laravel : Learn Laravel Building 10 Projects
Learn Laravel 5, top PHP framework, including how to install Laravel 5 framework & fundamentals in this Laravel 5 tutorial. This is why you need something to help you learn a technology quickly and easily! Our course does exactly that!
https://www.eduonix.com/courses/Web-Development/projects-in-laravel-learn-laravel-building-10-projects
Principios básicos de la Arquitectura Rest, haciendo especial hincapié en las 6 restricciones que permiten crear API altamente escalables (Uniform Interface, Stateless, Cacheable, Client-Server, Layered System y Code on Demand).
Estas restricciones son la base de la Arquitectura REST y aplicarlas nos ayudaran a conseguir buenos diseño: correcto nombrado de los servicios, recursos, aplicar el método (GET, POST, PUT, DELETE) apropiado a la acción, descubrir recursos basándonos únicamente en las respuestas del servidor (HATEOAS), ..
Además, conoceremos el Modelo de Madurez Richarson que nos permite conocer en que punto nos encontramos dentro de la arquitectura, algunos antipatrones de diseño y ejemplos de API REST (Twitter, Facebook).
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
YouTube Link: https://youtu.be/rtWH70_MMHM
** Node.js Certification Training: https://www.edureka.co/nodejs-certification-training **
This Edureka PPT on 'What is REST API?' will help you understand the concept of RESTful APIs and show you the implementation of REST APIs'. Following topics are covered in this REST API tutorial for beginners:
Need for REST API
What is REST API?
Features of REST API
Principles of REST API
Methods of REST API
How to implement REST API?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
An introduction to a popular framework for Service Oriented REST APIs, Proof of Concepts and Rapid Development. Swagger is a indispensable tool for Software Engineers, Developers and Architects.
Aprenda Java de forma simples e prática. Este curso também ensina lógica e fundamentos de programação orientada a objetos e é ponto de partida a todos que desejam aprender Java.
Laravel, längst kein unbestriebenes Blatt mehr, gewinnt immer mehr an Popularität.
In diesem Vortrag wir Laravel kurz vorgestellt mit Themen wie:
- Was ist Laravel?
- Woher kommt Laravel?
- Was bietet Laravel?
- Laravel und sein Ecosystem.
und einiges mehr...
Presented by Nikola Vasilev on SkopjeTechMeetup 7.
Representational state transfer (REST) can be thought of as the language of the Internet. Now with cloud usage on the rise, REST is a logical choice for building APIs that allow end users to connect and interact with cloud services. This talk will deliver more insight into the challenges on building and maintaining good and clean RESTful APIs.
This Express Js tutorial will walk you through what express js is, what we can do with it, features of express js and companies that are hiring express js developers. Express Js is a Node Js framework which helps to write the API’s very efficiently. It’s a awesome framework of node js which is helping Backend development so much and it provides wide set of features to develop both web and mobile applications it is used to build single page, multipage and hybrid web applications.
Designing and building RESTful APIs isn’t easy. On its surface, it may seem simple – after all, we’re only marshaling JSON back and forth over HTTP right? However, that’s only a small part of the equation. There are many things to keep in mind while building the systems that act as the key to your system.
In this session, we’ll delve into several best practices to keep in mind when designing your RESTful API. We’ll discuss authentication, versioning, controller/model design, and testability. We’ll also explore the do’s and don’t’s of RESTful API management so that you make sure your APIs are simple, consistent, and easy-to-use. Finally, we’ll discuss the importance of documentation and change management. The session will show examples using ASP.NET Web API and C#. However, this session will benefit anyone who is or might be working on a RESTful API.
Buenas prácticas en el desarrollo para Android.
Consejos sobre:
- Organización del código
- Trucos en programación Java
- Reutilización
- Rendimiento
- Compartición de datos
- Usabilidad
- Etc.
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
YouTube Link: https://youtu.be/rtWH70_MMHM
** Node.js Certification Training: https://www.edureka.co/nodejs-certification-training **
This Edureka PPT on 'What is REST API?' will help you understand the concept of RESTful APIs and show you the implementation of REST APIs'. Following topics are covered in this REST API tutorial for beginners:
Need for REST API
What is REST API?
Features of REST API
Principles of REST API
Methods of REST API
How to implement REST API?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
An introduction to a popular framework for Service Oriented REST APIs, Proof of Concepts and Rapid Development. Swagger is a indispensable tool for Software Engineers, Developers and Architects.
Aprenda Java de forma simples e prática. Este curso também ensina lógica e fundamentos de programação orientada a objetos e é ponto de partida a todos que desejam aprender Java.
Laravel, längst kein unbestriebenes Blatt mehr, gewinnt immer mehr an Popularität.
In diesem Vortrag wir Laravel kurz vorgestellt mit Themen wie:
- Was ist Laravel?
- Woher kommt Laravel?
- Was bietet Laravel?
- Laravel und sein Ecosystem.
und einiges mehr...
Presented by Nikola Vasilev on SkopjeTechMeetup 7.
Representational state transfer (REST) can be thought of as the language of the Internet. Now with cloud usage on the rise, REST is a logical choice for building APIs that allow end users to connect and interact with cloud services. This talk will deliver more insight into the challenges on building and maintaining good and clean RESTful APIs.
This Express Js tutorial will walk you through what express js is, what we can do with it, features of express js and companies that are hiring express js developers. Express Js is a Node Js framework which helps to write the API’s very efficiently. It’s a awesome framework of node js which is helping Backend development so much and it provides wide set of features to develop both web and mobile applications it is used to build single page, multipage and hybrid web applications.
Designing and building RESTful APIs isn’t easy. On its surface, it may seem simple – after all, we’re only marshaling JSON back and forth over HTTP right? However, that’s only a small part of the equation. There are many things to keep in mind while building the systems that act as the key to your system.
In this session, we’ll delve into several best practices to keep in mind when designing your RESTful API. We’ll discuss authentication, versioning, controller/model design, and testability. We’ll also explore the do’s and don’t’s of RESTful API management so that you make sure your APIs are simple, consistent, and easy-to-use. Finally, we’ll discuss the importance of documentation and change management. The session will show examples using ASP.NET Web API and C#. However, this session will benefit anyone who is or might be working on a RESTful API.
Buenas prácticas en el desarrollo para Android.
Consejos sobre:
- Organización del código
- Trucos en programación Java
- Reutilización
- Rendimiento
- Compartición de datos
- Usabilidad
- Etc.
En estas transparencias se hace un repaso a las ventajas de la computación distribuida y a las distintas iniciativas de Servicios Web, para terminar en los servicios de tipo REST.
Estas transparencias son la introducción a las transparencias sobre consumo de Servicios Web REST en PHP (http://www.slideshare.net/brenes/rest-en-php).
Usado en el Curso de Extensión Universitaria "Desarrollo de aplicaciones web mediante servicios web y APIs abiertas" de la Universidad de Oviedo: http://directo.uniovi.es/postgrado/cabecera_ep.asp?Curso=2008&IdPrograma=5187
Desarrollo de apps móviles con Apache CordovaSoftware Guru
Con la amplia variedad de dispositivos, plataformas y funcionalidades existentes en el mundo de dispositivos móviles, se ha vuelto muy difícil para los desarrolladores el crear aplicaciones de forma rápida, así como de dar mantenimiento a estas en las diferentes combinaciones de plataformas (iOS, Android, Windows, etc.). Así mismo, poner las aplicaciones en las manos de los usuarios hace que esto sea un tarea casi imposible en un periodo de tiempo corto.
Apache Cordova provee un conjunto de APIs para crear aplicaciones móviles híbridas usando tecnologías Web que pueden accesar funciones nativas, tales como la cámara, contactos, acelerómetro, red, etc.
En esta sesión, Victor Sosa demostrará como se puede crear una aplicación móvil de una forma rápida que es capaz de ser usada en diferentes dispositivos y plataformas y que además usará funciones nativas. También compartirá buenas prácticas y recomendaciones para proyectos de desarrollo de aplicaciones basadas en Apache Cordova.
Presentación de charla efectuada en el evento Encuentro Social de Desarrolladores organizado por el grupo Desarrolladores Habana. Trata sobre desarrollo para aplicaciones móviles empleando las tecnologías Ionic y Apache Cordova.
Programación de apps multiplataforma con Apache Cordova
(parte 2 de 2).
Explicación de qué es y cómo desarrollar aplicaciones con AngularJS e Ionic Framework. Controllers, services, filters, directives, etc.
This slide show is from my presentation on what JSON and REST are. It aims to provide a number of talking points by comparing apples and oranges (JSON vs. XML and REST vs. web services).
Repasaremos conceptos y principios para que una arquitectura sea RESTfull, se explicará cómo se ha plateado el framework Leophard para seguir estos y otros principios.
Master class at @ Adalab together with @esther_epg
Introduction to APIs
API server code: https://github.com/dgomez-developer/adalab/tree/develop/heroines-api
API JS client code: https://github.com/estherpato/ada-heroines-front/tree/5c813ae60c72c5ec567d28d95f2d92a1f4f66220
A veces, parece fácil definir una API pero la experiencia indica que la mayor parte de los problemas vienen precisamente de la mala definición de la misma. En el taller de definición de Apis, aprenderemos a definir correctamente una APi Restful, caules son los parámetros aconsejables a tener en cuenta, y se analizará un ejemplo de una API con un servicio GET, POST, PUT y DELETE. Para realizar el taller se utilizará el lenguaje RAML y la herramienta api designer de Mulesoft.
Presentación de la clase sobre el protocolo HTTP de la asignatura Servidores Web del Máster Universitario en Desarrollo de Aplicaciones y Servicios Web.
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.
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
(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.
2. ¿Qué es REST?
❖ Es una técnica de arquitectura software para sistemas
hipermedia distribuidos como la World Wide Web
Wikipedia
3. ¿Qué no es REST?
❖ REST no es un servicio web ni una tecnología
4. ¿Qué son servicios RESTful?
❖ Son aquellos servicios web que cumplen los principios
de REST
5. Características
❖ Sin estado - Cada mensaje HTTP contiene toda la información necesaria!
❖ Operaciones HTTP - Uso de POST, GET, PUT, DELETE y otros!
❖ Sintaxis universal: URI - Cada recurso queda identificado por su URI!
❖ Hipermedios - Relación entre recursos mediante hipervínculos!
❖ Códigos de estado HTTP - Usa los códigos HTTP para indicar el resultado de la
petición
6. Características
Sin estado
- Sin sesión ni cookies!
!
- Cada petición es independiente!
!
- Cada petición debe tener toda la
información necesaria para que el
servidor la entienda y devuelva la
respuesta correcta
7. Características
Operaciones HTTP
Utiliza los métodos HTTP de forma
explicita para las operaciones a realizar:!
!
- GET: obtener un recurso del servidor!
!
- POST: Crear un recurso en el servidor!
!
- PUT: Actualizar un recurso en el servidor!
!
- DELETE: Eliminar un recurso del servidor!
!
- Hay más métodos pero estos son los
más frecuentes: CRUD
8. Características
GET /usuarios Nos permite acceder al listado de
usuarios.
!
POST /usuarios Nos permite crear un usuario nuevo. Se
envía en la petición la información que se necesite para la
creación (mediante JSON o XML):
<usuario>
<nombre>Ignacio</nombre>
<apellido>Muñoz</apellido>
</usuario>
!
GET /usuarios/12 Nos permite acceder al detalle del usuario
con id 12.
!
PUT /usuarios/12 Permite editar el usuario con id 12. Al
igual que en POST se pasan los datos necesarios como
cuerpo de la petición:
<usuario>
<apellido>Vicente</apellido>
</usuario>
!
DELETE /usuarios/12 Eliminar el usuario con id 12.
Operaciones HTTP
Utiliza los métodos HTTP de forma
explicita para las operaciones a realizar:!
!
- GET: obtener un recurso del servidor!
!
- POST: Crear un recurso en el servidor!
!
- PUT: Actualizar un recurso en el servidor!
!
- DELETE: Eliminar un recurso del servidor!
!
- Hay más métodos pero estos son los
más frecuentes: CRUD
9. Características
Sintaxis universal
- Cada recurso se identifica con su URI única!
!
- Nombres mejor que verbos (excepto cuando son operaciones)!
!
- Nombres mejor en plural: http://______/usuarios/!
!
- Normalmente dos URLs similares: para listado (collection) y para ítem!
!
- Versión de la API en la URL !
!
- CRUD a través de su URI y una operación HTTP
10. Características
Hipermedia
- HATEOAS: Hypermedia As The Engine Of Application State!
!
- Una respuesta debe ofrecer toda la información necesaria!
!
- Dado un punto de entrada a la API REST, es posible descubrir todos sus recursos a partir
sólo de las respuestas del servidor .La respuesta devuelta por el servidor puede contener
hipervínculos a otros recursos
{
"id": 12,
"nombre": "Ignacio",
"apellido": "Muñoz",
"dispositivos": [
{ "id": 1033 },
{"id": 3889 }
]
}
{
"id": 12,
"nombre": "Ignacio",
"apellido": "Muñoz",
"dispositivos": [
{ "dispositivo": http://…/usuarios/12/dispositivos/1033 },
{"dispositivo": http://…/usuarios/12/dispositivos/3889 }
]
}
11. Características
Códigos de estado
ALGUNOS CÓDIGOS
200 - Petición correcta.
201 - Petición completada y recurso creado correctamente.
202 - Petición aceptada pero no completada.
304 - No modificado.
400 - Solicitud incorrecta.
401 - No autorizado.
403 – Prohibido.
404 - No encontrado.
405 - Método no permitido.
406 - No aceptable. El servidor no puede devolver la información
en el formato solicitado en la petición.
500 - Error interno del servidor.
501 - No implementado.
- Indican el resultado de la operación!
!
- Hay que tener cuidado con:!
!
! 401 “Unauthorized” !
! ! significa realmente “Unauthenticated”!
!
! 403 “Forbidden” !
! ! significa realmente “Unauthorized”!
!
- Si se quiere dar más info de un error:!
! - Errores internos (complementan al código de error de HTTP)!
! - Descripción
12. Características
MediaTypes
!
- En la arquitectura REST no existe un formato de intercambio de información
predefinido!
!
- Se indica en las cabeceras / headers:!
!
! ! ! - Header Accept en la petición!
!
! ! ! - Header Content-Type en la respuesta!
!
- Ejemplo: application/json!
!
- Valores múltiples: Accept: application/json, text/plain
14. Recomendaciones
❖ Número de versión de la API en la URL!
❖ http://<URL>/v3/usuarios!
❖ Unificar JSON y JavaScript !
❖ camelCase (así nos ahorraremos ‘mapear’ luego el JSON)!
❖ Paginación con 2 valores: offset + limit!
❖ http://<URL completa>?offset=X&limit=Y!
❖ Seguridad por recurso, no por URL: !
❖ OAuth2!
❖ Basic (SSL) Auth!
❖ hmac
15. Recomendaciones
❖ Si son acciones que no requieren recursos (por ejemplo hacer un cálculo
numérico, mejor utilizar verbos en el nombre)!
❖ http://<URL>/sumar?valor1=X&valor2=Y!
❖ Búsqueda: método search, parámetro q (URL encoded)!
❖ http://<URL completa>?q=cualquier%20palabra!
❖ Para conocer métodos HTTP disponibles!
❖ Usar OPTIONS —> Allow header: HEAD, GET, PUT, POST, DELETE, OPTIONS, …!
❖ Fechas mediante ISO 8601 (UTC)!
❖ año-mes-díaThora:minutos:segundos,nanosegundosZ!
❖ Versión también en los datos!
❖ Accept: application/vnd.github.v3+json
16. Cacheo
Cacheo en servidor
!
- Hay que evitar a toda costa accesos a base de datos —> muy costosos!
!
- Las peticiones de recursos más solicitadas deben cachearse en memoria!
!
- Muchas soluciones:!
!
! - REDIS: cache en memoria, clave-valor. http://redis.io/!
!
! - Varnish: https://www.varnish-cache.org/!
!
! - Otros muchos
17. Cacheo
Cacheo en cliente
El campo ETag indica la versión del recurso:!
!!
! 1- Cliente solicita un recurso!
! 2- El servidor devuelve:!
! ! ! - Código 200!
! ! ! - Body: el recurso solicitado!
! ! ! - Header: cabeceras habituales y el ETag: ETag: “64233457696a7c876b7e"!
! 3- Cliente vuelve a solicitar el recurso, enviado la siguiente cabecera:!
! ! ! If-None-Match: “64233457696a7c876b7e"!
!
Si el recurso ha cambiado el servidor devolverá el recurso actualizado, nuevo ETag y código 200.!
!
Si el recurso no ha cambiado el servidor devolverá:!
! ! - Código 304!
! ! - Body: vacío!
! ! - Header: cabeceras habituales y el mismo ETag
18. ¿Por qué usar REST?
❖ Es sencillo de entender e implementar!
❖ Escalabilidad, independencia, seguridad, encapsulación, etc.!
❖ Mola, es lo más parecido a un estándar
19. ¿Por qué usar REST?
❖ Es sencillo de entender e implementar!
❖ Escalabilidad, independencia, seguridad, encapsulación, etc.!
❖ Mola, es lo más parecido a un estándar
20. ¿Cuando NO usar REST?
❖ Cuando es un servicio muy personalizado: seguridad,
transacciones, vocabulario y nomenclatura específica,
etc.!
❖ Necesidad de respuesta asíncrona en la petición
21. Ignacio Muñoz Vicente @imunoz_
REST
REpresentational State Transfer
Fuentes:!
!
http://es.wikipedia.org/wiki/Representational_State_Transfer!
http://www.adwe.es/general/colaboraciones/servicios-web-restful-con-http-parte-ii-ejemplos!
http://rest.elkstein.org/!
http://haciendo.minube.com/usar-etags-109!