Internet está evolucionando

Documentos relacionados
Sesión 17. Servicios web RESTful

Portal Inteligente Medellín Documentación de la Arquitectura de Software

Servicios web. Jorge Iván Meza Martínez

PHP 7 Desarrollar un sitio web dinámico e interactivo

Desarrollo de módulos con Drupal 6

Arquitectura e Integración de Sistemas Software. Proyecto: Gestión de Almacenes de Libros

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

30.- Generador de Consultas

Programa de Actualización Profesional Curso: Java Avanzado JEE7 Programa del Curso

Novedades en Drupal 8. Los nuevos retos (versión de la presentación 0.1)

Sistemas Distribuidos Servicios web. Rodrigo Santamaría

Tema 3.1: Introducción a Servicios Web

PROYECTOS DE WEBSERVICE PARA DESARROLLADORES. 12 Agosto 2016

Tema 1 HTTP y aplicaciones web

Temario curso Desarrollo de Aplicaciones Empresariales con Spring Framework Core 4

1er. Semestre en la Licenciatura de Educación Preescolar. Las tics en la educación preescolar. Actividad 3 de la Unidad II

Consumo de Servicios RESTful (II)

Guía de Moodle Mundusfor para administradores

Arquitecturas Distribuidas. TEMA 3. Tecnologías de la web dinámica

Service Oriented Architecture

Web Map Service (WMS)

APLICACIONES DE INTERNET: SOAP

RESTful 4 all. Diego Sapriza

Parte IIIb: Seguridad en APIs REST

Sistema de Registro, Derivación y Monitoreo Chile Crece Contigo

Desarrollo y servicios web

Máster Universitario en Ingeniería Informá3ca. REST avanzado. Sistemas de Información Orientados a Servicios RODRIGO SANTAMARÍA

Si usted quiere desarrollar con Bluevia y Java, esto es lo primero que debe saber

SERVICIOS WEB DE MODIFICACIÓN DE LA D.G. DEL CATASTRO Introducción general

GTIDEE Web Feature Service (WFS) Versión Página 1 de 9 IDEE. Estándar de interfaz. Web Feature Service (WFS) Versión 1.1.

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Microsoft Excel 2003 (Completo)

Microsoft Excel 2003 (Completo)

Todas las actividades de Moodle con fecha límite serán eventos del calendario automáticamente.

Máster Universitario en Ingeniería Informá3ca. REST avanzado. Sistemas de Información Orientados a Servicios RODRIGO SANTAMARÍA

TFM Comunicación, Redes y Gestión de Contenidos

Excel 2013 Completo. Duración: Objetivos: Contenido: 80 horas

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

IMPLEMENTACIÓN DEL PROTOCOLO DE REGISTRO ELECTRÓNICO DE VEHÍCULOS (ERI) Contacto:

Sesión 5 Introducción a REST

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

ANEXO 1. ANEXO TÉCNICO

5.1 Introducción a Servicios Web

Uso de propiedades y modelos para las pruebas de sistemas distribuidos basados en la integración de componentes heterogéneos

Curso JAVA EE

MICROSOFT ACCESS 2003 (COMPLETO)

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático

Web Services. Richard Rossel 23 de noviembre de Web Services

Redes de Computadores II

Tema 1: Introducción a las tecnologías

Realización CU62: Registrar cuadrilla

Laboratorio de Computación IV. Clase 1. Andrés Fortier

Especificación de Uso. Servicios Web Externos API Servicio Licencias Ed. Superior V-0.1

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

PROTOCOLOS DE APLICACIÓN PRÁCTICA EN INFOMED INTEROPERABILIDAD

MICROSITIOS. Perfiles

Tamaño (En Bytes) CASO 10089: Se ajusta consola ASDKRC1 para que en la creación de un caso no se muestren las categorías inactivas.

BANCO CENTRAL DE RESERVA DEL PERÚ

PROTOTIPO DE FACTURACIÓN ELECTRÓNICA MANUAL TÉCNICO

Insertar Datos en Tablas

Patrones y buenas prácticas en SOA/REST

PRUEBAS FUNCIONALES Y DE ACEPTACIÓN

Developing ASP.NET MVC 4 Web Applications

Integración con ecommerce Bancard

MICROSOFT EXCEL 2013 (COMPLETO)

A Manual de instalación de Opinion Analyzer (OPAL)

En este capitulo analizaremos los cuatro diferentes métodos para obtener la

Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7

Guía del Curso Técnico en Mantenimiento de CRM: Recursos Empresariales y de Gestión de Relaciones con Clientes

Introducción a AJAX y visión global de la práctica

Programador Web en Drupal + PHP + Javascripts + MySQL. Nivel Profesional. Informática y Programación

TRABAJAR CON USUARIOS

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Linux Avanzado: Redes y Servidores (Versión Ubuntu)

Geoserver, más allá de un servidor WMS

Especificación WebService para:

CA User Activity Reporting Module

Objetivos y Temario CURSO PROGRAMACIÓN PARA JOOMLA!

FUNDACIÓN EDUCATIVA OBRERA FUNEDO TÉCNICO EN SECRETARIADO EJECUTIVO SISTEMATIZADO. Conceptos básicos de Access 2013

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con

Manual del Integrador Contable Premium Soft

Web Service: Consulta de Sistema de Turnos Manual de referencia

Parte III: AJAX y REST

Guía del Curso Programador Web en Drupal + PHP + Javascripts + MySQL. Nivel Profesional

DESARROLLO WEB EN ENTORNO SERVIDOR

QUÉ HAY DE NUEVO EN DRUPAL 8. Carla Briceno Jared Smith

SISTEMAS DE INFORMACIÓN III TEORÍA

DIPLOMADO EN MICROSOFT SQL SERVER 2008

Entornos de Programación Actividades de Laboratorios

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

La Herramienta Redmine para la Administración de Proyectos

Programación páginas web con PHP

DIPLOMADO DESARROLLO WEB Y CREACIÓN DE APPS MÓDULO DESARROLLO DE APLICACIONES WEB CON PHP & MYSQL

Especialista TIC en Adobe Acrobat 9 Professional. Creación, Diseño y Edición Digital

Índice. Ya sé Excel, pero necesito más

ANEXO APLICACIÓN DE FIRMA

Capacitación Efectiva SOA y Web Services con Java

Tutorial Servicios Web

Transcripción:

JSON API Drupal 8

Internet está evolucionando Los Websites son cada vez más interactivos. Se requiere integración entre la información procedente de diferentes medios. Está evolucionando las aplicaciones web con aplicaciones de una sola página. El contenido se sirve hacia diferentes dispositivos: móviles, celulares, smart TVs, etc. Existen negocios donde la venta de información es lo importante (contenido como servicio - content as a service).

Qué es lo que tienen en común?

Realizan comunicación entre sistemas Necesitan medios y estructura de datos para compartir los datos: Usualmente se usa XML o JSON. Por su simplicidad se está usando más JSON. También se requiere protocolos de cómo realizar la comunicación: donde se obtienen los datos, como se hace para grabar, borrar, actualizar, etc.

Servicios Web Su propósito es intercambiar datos entre aplicaciones. Existen diferentes arquitecturas y estándares Todos siguen protocolos y estándares, por lo que permite que programas se puedan comunicar entre sí, de manera independiente del lenguaje de programación o la implementación.

REST En los últimos años la arquitectura REST (Representational State Transfer) es la que más se ha difundido para la creación de Web Services. Una API Web Service que sigue los principios de arquitectura REST se le conoce como RESTful. En REST se accede a recursos. Para ello se usan los verbos http: GET POST PUT DELETE

Rest en el Core de Drupal 8 Drupal 8 viene en el core con un módulo que implementa Servicios Web con las entidades de Drupal: Módulo RESTful Web Services. Permite seleccionar entre diferentes operaciones (verbos) por tipos de Entidad (contenidos, comentarios, bloques, etc.). Puede utilizar como formato de comunicación JSON o XML Por defecto puede usar autenticación por cookie, o HTTP Basic. Permite generar vistas con los formatos JSON y/o XML.

Nuevas alternativas por qué? Se están implementando nuevas especificaciones. Estas nuevas alternativas simplifican varios problemas como tener un formato bien definido de archivo, sistemas de búsqueda, paginado, obtener solo los campos requeridos, obtener más información en menos peticiones, etc. Son dos los que resaltan: JSON API y GraphQL. GraphQL, es un lenguaje de consultas (query language) creado por Facebook.

JSON API - 1 A specification for building APIs in JSON Se puede considerar una implementación particular de REST. Esta especificación indica cual es el formato que la respuesta JSON debe tener. También establece convenciones para la relación entre recursos, colecciones, filtros, paginado, y ordenamiento. Finalmente, cubre el manejo de errores e indicaciones para pruebas.

JSON API - 2 JSON API permite tener más información en una sola petición, idealmente podría traer toda la información en una sola petición. Por otro lado se puede indicar que solo recupere algunos campos y no todos. También ofrece una alternativa para navegar a través de los recursos

JSON API en Drupal 8 Es un módulo de Drupal, se instala y no necesita configuración para funcionar. Actualmente está en versión beta1. Utiliza los permisos de Drupal. Cumple con las especificaciones de JSON API. Las entidades de Drupal se adaptan muy bien a la especificación. Se está preparando para incorporarlo al core (roadmap)

Los recursos Para la identificación de recursos se usa el uuid. Ejemplo: d69912d2-8ed2-482b-8fe6-61fea7acbaf9 Todo recurso en JSON API necesita el nombre del tipo de entidad y el bundle.

RESTful Web Services vs JSON API Módulo RESTful Web Service Módulo JSON API

Obtener colecciones Devuelve los resultados paginados. Se puede acceder a las otras páginas a través de los enlaces que aparecen si hay más resultados. jsonapi/node/article

Obtener un recurso Requiere que se tengan los permisos necesarios sobre las entidades relacionadas. jsonapi/node/article/ecb9f9a4-09bb-41a7-8d21-6b4308096758 Donde: el hash de 32 dígitos se tiene que reemplazar por el uuid del recurso

Relaciones Usualmente en la parte de relationships están representadas los entity references fields. Cada relationship contiene: El nombre de la relación En data contiene el tipo de relación y el id Algunos enlaces Para extraer información de una entidad relacionada, podríamos hacerlo con su tipo de entidad, bundle y id, pero usualmente es más sencillo usando la potencia de JSON API a través de un solo request. Los entity configuration también se muestran en las relaciones.

Filtros Ejemplo (formato abreviado) jsonapi/node/article?filter[title][value]=orquesta%20sinf%c3%b3nica%20naciona l%20ofrecer%c3%a1%20concierto%20gratuito El operador es =" pero también se puede usar"in", "NOT IN", ">", "<", "<>", BETWEEN", LIKE. Ejemplo Like jsonapi/node/article?filter[titlefilter][condition][path]=title&filter[titlefilter][condition][ operator]=like&filter[titlefilter][condition][value][]=orquesta% Filtro de una entidad relacionada jsonapi/node/article?filter[uid.name][value]=admin

Seleccionar los campos a mostrar Uno de los problemas usuales con REST es que viene con un conjunto determinado de campos, incluso muchos que tal vez no necesitemos. Con JSON API se puede limitar los campos a mostrar: Ejemplo: jsonapi/node/article?fields[node--article]=status,title,uid

Incluir las entidades de las relaciones Aparece la información de la entidad relacionada en la parte de includes. Se puede incluir recursivamente. En caso de que la relación fuera NULL, puede que el item no aparezca. Con la selección de campos y los includes se puede tener todo lo que se necesita en un solo request. jsonapi/node/article?fields[node--article]=status,title,uid&include=uid jsonapi/node/article?fields[node--article]=status,title,uid&include=uid,uid.u ser_picture

Paginado JSON API devuelve hasta un máximo de 50 recursos por petición, para evitar peticiones muy pesadas. Para obtener más recursos se puede hacer uso de page[limit] y page[offset] page[limit] page[offset] jsonapi/node/article?page[limit]=2 jsonapi/node/article?page[limit]=2&page[offset]=1

Orden JSON API soporta ordenamiento jsonapi/node/article?sort=title Ordenar en orden descendente jsonapi/node/article?sort=-title Ordenar por varias propiedades jsonapi/node/article?sort=-created,title

Otros verbos Se permite el uso de POST, PATCH y DELETE para grabar un nuevo recurso, actualizar y borrar respectivamente En el body del request se envía un JSON con la información. El formato es esencialmente el mismo que se obtiene en un GET request. Incluso funciona con entidades relacionadas.

Referencias http://jsonapi.org/ https://www.drupal.org/blog/roadmap-making-drupal-more-api-first https://www.drupal.org/project/jsonapi https://www.drupal.org/node/2803093 https://www.youtube.com/watch?v=--zl3eahnwc&list=plzoq_z MpYrZsyO-3IstImK1okrpfAjuMZ http://softwinperu.com/materiales/rcechang/restful-en-drupal-8 http://buytaert.net/advancing-drupal-web-services http://buytaert.net/state-of-drupal-presentation-may-2016

Gracias Ricardo Chang