Se aprenderá a desarrollar una API siguiendo la metodología MADA que tiene como misión reducir la complejidad a la hora de desarrollar una API y que utiliza RAML como lenguaje de definición de APIs. A patir del RAML, se generará toda la documentación necesaria para exponer a los developers, se podrá construir un fake para probarlo en la consola de pruebas y se generará un esqueleto en node.js. El taller desarrollará un ejemplo utilizando objetos en memoria y otro ejemplo utilizando MongoDB como base de datos.
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.
Profundo análisis de las tecnologías Big Data y como aplicarlas en el desarrollo de las Apis. Se analizan las bases de datos noSQL y aquellas tecnologías (Storm, Hadoop...) que pueden ayudar al desarrollo. Además, se analizan ejemplos de arquitecturas de Apis Big Data y como se han aplicado estas tecnologías.
Presentación que muestra como definir una API Rest con RAML, definiendo los servicios GET/PUT/POST... Se utilizarán las herramientas de Mulesoft para diseñar la API con ApiDesigner
Se describe por qué el mundo del Big Data va tan unido al de las Apis, qué es Big Data y las 4vs. También se describen los tipos de bases de datos noSQL, como Cassandra, DynamoDB, MongoDB... No sólo se habla de las noSQL, si no de la nueva tendencia de DWS como Amazon RedShift. Para terminar, se habla de la arquitectura Lambda y de una arquitectura típica de Apis en el mundo Big Data, con algunos ejemplos.
Presentación de Marco Antonio Sanz, CEO de LeadGods, CloudAppi, coordinador y Api Evangelist en ApiAddicts, profesor de la ufv, redactor de Open Expo y.... padre de familia
Se aprenderá a desarrollar una API siguiendo la metodología MADA que tiene como misión reducir la complejidad a la hora de desarrollar una API y que utiliza RAML como lenguaje de definición de APIs. A patir del RAML, se generará toda la documentación necesaria para exponer a los developers, se podrá construir un fake para probarlo en la consola de pruebas y se generará un esqueleto en node.js. El taller desarrollará un ejemplo utilizando objetos en memoria y otro ejemplo utilizando MongoDB como base de datos.
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.
Profundo análisis de las tecnologías Big Data y como aplicarlas en el desarrollo de las Apis. Se analizan las bases de datos noSQL y aquellas tecnologías (Storm, Hadoop...) que pueden ayudar al desarrollo. Además, se analizan ejemplos de arquitecturas de Apis Big Data y como se han aplicado estas tecnologías.
Presentación que muestra como definir una API Rest con RAML, definiendo los servicios GET/PUT/POST... Se utilizarán las herramientas de Mulesoft para diseñar la API con ApiDesigner
Se describe por qué el mundo del Big Data va tan unido al de las Apis, qué es Big Data y las 4vs. También se describen los tipos de bases de datos noSQL, como Cassandra, DynamoDB, MongoDB... No sólo se habla de las noSQL, si no de la nueva tendencia de DWS como Amazon RedShift. Para terminar, se habla de la arquitectura Lambda y de una arquitectura típica de Apis en el mundo Big Data, con algunos ejemplos.
Presentación de Marco Antonio Sanz, CEO de LeadGods, CloudAppi, coordinador y Api Evangelist en ApiAddicts, profesor de la ufv, redactor de Open Expo y.... padre de familia
Mada metodología ágil de desarrollo de apisCloudAppi
MADA es la primera metodología que ordena un poco los pasos a seguir para poder desarrollar APis de calidad. Para ello, se analizará como realizar un documento funcional que explique correctamente la API, como se debe implementar fakes para que los developers puedan empezar a desarrollar sus Aplicaciones aunque no tengamos nada desarrollado, como implementar la API, y además, como validarla utilizando herramientas como SOAPui. Además, se analizará aspectos muy importantes como la generación de documentación, casos de prueba y SDKs. Todo ello se debe utilizar uno de los lenguajes de definición de APIs, como SWAGGER, RAML O API BLUEPRINT. En este caso, se utilizará RAML para realizar los ejemplos.
El mundo está cambiando muy rápido, y uno de los canales que están ofreciendo más oportunidades son los servicios digitales (Apis). En la presentación se muestra los distintos modelos de negocio alrededor de las Apis. Se describe como entender una API como producto, y por tanto, se analizarán todas las consideraciones a tener para convertir un simple servicio REST en un producto rentable para tu empresa.
Analizaremos qué valor puede aportar la API a tu empresa, revisando si el valor está en el CORE, en los usuarios o en otra fuente. Después se revisará cuales son los modelos de pricing a tener en cuenta y se revisará los costes a tener en cuenta a la hora de sacar una API como producto (Marketing, infraestructura, promociones...).
Se revisará un ejemplo de Business Plan de una API, que mostrará como se puede hacer un plan de negocio con una API, puesto que no deja de ser un producto digital.
Seguridad en las apis desde un punto de vista de developerCloudAppi
Seguridad en las APIs. Se explican cuales son las consideraciones a tener en cuenta en la seguridad de nuestras APIs, cuales son los principales sistemas de autenticación y autorización y se hace una introducción a los API Managers, con un ejemplo de APIgee y de WSO2.
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)lenny
Esta es la presentación correspondiente a la charla "Descubriendo Ruby on Rails: Desarrollo Agil de Aplicaciones Web" dictada el 5 de Junio de 2007 por Juan Maria Martinez Arce y Carlos Kozuszko, ambos miembros de INSIGNIA (www.insignia4u.com); en el marco de la "Semana de la Ingenieria 2007".
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.
Este verano llegan a ENCAMINA “Los Imprescindibles”, unos superhéroes muy especiales que vienen dispuestos a combatir el aburrimiento y pasarte todos sus superpoderes.
El primero en aterrizar ha sido .Net Core.
En “Los Imprescindibles de .Net Core“, compartimos contigo las reflexiones y valoraciones que Alberto Díaz, Adrián Díaz y Juan Carlos Martínez han hecho sobre cómo usarlo, sus escenarios, versionados, integraciones, etc.
Mada metodología ágil de desarrollo de apisCloudAppi
MADA es la primera metodología que ordena un poco los pasos a seguir para poder desarrollar APis de calidad. Para ello, se analizará como realizar un documento funcional que explique correctamente la API, como se debe implementar fakes para que los developers puedan empezar a desarrollar sus Aplicaciones aunque no tengamos nada desarrollado, como implementar la API, y además, como validarla utilizando herramientas como SOAPui. Además, se analizará aspectos muy importantes como la generación de documentación, casos de prueba y SDKs. Todo ello se debe utilizar uno de los lenguajes de definición de APIs, como SWAGGER, RAML O API BLUEPRINT. En este caso, se utilizará RAML para realizar los ejemplos.
El mundo está cambiando muy rápido, y uno de los canales que están ofreciendo más oportunidades son los servicios digitales (Apis). En la presentación se muestra los distintos modelos de negocio alrededor de las Apis. Se describe como entender una API como producto, y por tanto, se analizarán todas las consideraciones a tener para convertir un simple servicio REST en un producto rentable para tu empresa.
Analizaremos qué valor puede aportar la API a tu empresa, revisando si el valor está en el CORE, en los usuarios o en otra fuente. Después se revisará cuales son los modelos de pricing a tener en cuenta y se revisará los costes a tener en cuenta a la hora de sacar una API como producto (Marketing, infraestructura, promociones...).
Se revisará un ejemplo de Business Plan de una API, que mostrará como se puede hacer un plan de negocio con una API, puesto que no deja de ser un producto digital.
Seguridad en las apis desde un punto de vista de developerCloudAppi
Seguridad en las APIs. Se explican cuales son las consideraciones a tener en cuenta en la seguridad de nuestras APIs, cuales son los principales sistemas de autenticación y autorización y se hace una introducción a los API Managers, con un ejemplo de APIgee y de WSO2.
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)lenny
Esta es la presentación correspondiente a la charla "Descubriendo Ruby on Rails: Desarrollo Agil de Aplicaciones Web" dictada el 5 de Junio de 2007 por Juan Maria Martinez Arce y Carlos Kozuszko, ambos miembros de INSIGNIA (www.insignia4u.com); en el marco de la "Semana de la Ingenieria 2007".
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.
Este verano llegan a ENCAMINA “Los Imprescindibles”, unos superhéroes muy especiales que vienen dispuestos a combatir el aburrimiento y pasarte todos sus superpoderes.
El primero en aterrizar ha sido .Net Core.
En “Los Imprescindibles de .Net Core“, compartimos contigo las reflexiones y valoraciones que Alberto Díaz, Adrián Díaz y Juan Carlos Martínez han hecho sobre cómo usarlo, sus escenarios, versionados, integraciones, etc.
JHipster es un generador de código basado en Yeoman que nos genera un proyecto con Spring Boot en el back-end y con Angular en el front-end.
Llevo un año y medio desarrollando con Spring Boot y Angular y desde hace unos meses, mis nuevos desarrollos los realizo con JHipster. Por eso me he decidido a proponer este taller en donde montaré una pequeña aplicación con este tándem, y en donde hablaré también de mi propia experiencia.
Para poder asistir al taller es necesario tener instalado JHipster y tu IDE favorito (yo usaré Spring Tool Suite para back y Visual Studio Code para front). Para no tener problemas de descarga durante el taller tenéis que crearos un proyecto vacío, en el cual haremos modificaciones durante el taller. Creároslo con los valores por defecto, y luego ejecutarlo con ./mvnw para que se descarguen todas las librerías. Deberíais poder ver algo en http://localhost:8080 ;)
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.
Í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.
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.
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.
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.
2. ¿Quienes somos?
Grupo de meetup
http://www.meetup.com/API-Addicts/
Meetups realizados
❏ MADA. Metodología ágil de
definición de APIs
❏ Taller: Definición de APIs
❏ Taller: Desarrolla tu primera API
❏ Seguridad en las APIs
❏ Las APis en el mundo Big Data
❏ Las APis en el mundo Cloud
❏ Apis como modelo de negocio
❏ Define y desarrolla tu primera API
Marco Antonio Sanz:http://es.linkedin.com/pub/marco-antonio-sanz-molina-prados/18/335/97/
3. Patrocinadores
¿qué nos ofrece?
➢ know - how de apis
➢ Experiencia en el gobierno de Apis
➢ Ejemplos de arquitecturas
➢ Experiencia en el mundo Cloud
Calle Velasco 13
Tlf: 658 89 75 75
admin@cloudappi.net ·
www.cloudappi.net
4. ❏ Realizar un documento funcional
❏ Realizar el diseño de la API
❏ Realizar una implementación fake
❏ Implementar la API
❏ Validar la API
❏ Generar documentación para developers
❏ Generar casos de prueba (códigos de ejemplo)
❏ Generar los SDks
Pasos para desarrollar una API
Índice
5. Datos recogidos de google Trend
Búsquedas por lenguajes en google Commits por lenguaje en github
Datos recogidos de ohloh.net
Primeros pasos
¿Qué lenguaje utilizo?
6. ➢ Es una tecnología que está en auge
➢ El lenguaje es Javascript, que todo el
mundo conoce.
➢ Es muy fácil desarrollar una API con el
módulo express
➢ integración con RAML (proyecto osprey)
¿Por qué node.js?
Primeros pasos
7. ➢ Framework javascript para ejecutar código del lado del
servidor. Se ejecuta sobre el V8 de Google.
Aspectos generales
Node.js
8. ➢ Es orientado a eventos y no a threads,
basándose en la programación asíncrona.
➢ Levanta un servidor web en local.
➢ Buena gestión de los paquetes con npm.
➢ El módulo express ayuda a desarrollar APIs.
Aspectos generales
Node.js
9. raml http://raml.org/ url dónde se encuentra toda la
documentación de RAML
api designer https://anypoint.mulesoft.com url del api designer
c9.io https://c9.io/ Entorno para desarrollo
test.raml http://api-
portal.anypoint.mulesoft.com/clo
udsystems/api/notifly/test.raml
raml de partida
Código ejemplo https://github.com/cloudsystems/
meetup.git
Código de ejemplo
Recursos
Implementación
10. Creamos una APi en el APi portal
Api Portal
Implementación
https://anypoint.mulesoft.com
11. Importamos el RAML
Api Designer
Implementación
http://api-portal.anypoint.mulesoft.com/cloudsystems/api/notifly/test.raml
12. Revisando los servicios
Api Designer
Implementación
http://api-portal.anypoint.mulesoft.com/cloudsystems/api/notifly/test.raml
13. Utilizamos el proyecto Osprey
Seguimos los pasos que ponen
en Github
Generando el esqueleto
Implementación
http://raml.org/
https://github.com/mulesoft/osprey
14. Instalamos Osprey-cli
npm install -g osprey-cli
Generamos el esqueleto
osprey new --name test --
target test
Generando el esqueleto
Implementación
wget http://api-
portal.anypoint.mulesoft.com/cloudsystems/api/n
otifly/test.raml
Obtenemos el fichero
test.raml
18. Nuestros primeros pasos
➢ Instalación de módulos con npm
install <módulo> o package.json
➢ Importación de módulos con
require
➢ Ejecución del servidor
➢ Módulo express
var express = require('express');
var path = require('path');
var osprey = require('osprey');
var app = module.exports = express();
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.compress());
app.use(express.logger('dev'));
app.set('port', process.env.PORT || 3000);
api = osprey.create('/api', app, {
ramlFile: path.join(__dirname, '/assets/raml/api.raml'),
logLevel: 'debug' // logLevel: off->No logs | info->Show Osprey modules initializations | debug->Show all
});
if (!module.parent) {
var port = app.get('port');
app.listen(port);
console.log('listening on port ' + port);
}
Generando el esqueleto
Implementación
23. ¿Qué es MongoDB?
Es una base de datos opensource noSQL orientada a documento. Sus principales
características son las siguientes:
- Orientada a documento. La información se organiza como colecciones de
documentos json.
- Los documentos están en formato BSON
- Permite indexar por cualquier campo
- Permite alta disponibilidad y replicación de la información
- Auto - sharding. Permite escalamiento horizontal.
- Map Reduce
- Permite realizar queries basadas en documentos
Conectando a la BBDD
Implementación
24. Conectando node con MongoDB
Es una base de datos opensource noSQL orientada a documento. Sus principales
características son las siguientes:
- Orientada a documento. La información se organiza como colecciones de
documentos json.
- Los documentos están en formato BSON
- Permite indexar por cualquier campo
- Permite alta disponibilidad y replicación de la información
- Auto - sharding. Permite escalamiento horizontal.
- Map Reduce
- Permite realizar queries basadas en documentos
Conectando a la BBDD
Implementación
25. Instalando el driver de Mongo. package.json
{
"name": "test",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.4.4",
"osprey": "0.1.1",
"mongodb":"*"
}
var MongoClient = require ('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/meetup',function(err,db){
if (err) throw err;
});
Conectando a la base de datos. app.js
Configurando MongoDB
Implementación
26. GET /api/users
app.get('/api/users', function(req, res) {
var params={};
if (req.params){
params=req.params;
}
db.collection('users').find(params).toArray(function(er
r,users){
if (err)throw err;
res.send({
"result": {
"info":
"OK"
},
"data": users
});
});
});
Resultado
{
"result": {
"info": "OK"
},
"data": [
{
"name": "Marco",
"firstname": "Polo",
"lastname": "2",
"address": {
"descripcion": "blab bla",
"number": "2"
},
"_id": "53cee9b7e892d0c91d7ab299"
}]}
Creando un GET con BBDD
Implementación
27. POST /api/users
app.post('/api/users', function(req, res) {
var user=req.body;
db.collection('users').insert(user,function(err,user){
res.send({
"result": {
"info":
"OK"
},
"data": user
});
});
});
Resultado
{
"result": { "info": "OK" },
"data": [ {
"name": "Marco",
"firstname": "Polo",
"lastname": "2",
"address": {
"descripcion": "blab bla",
"number": "2"
},
"_id": "53ceee94e657ff1a1f93893c"
}
]
}
Creando un POST con BBDD
Implementación
28. PUT /api/users/53cee9c8e892d0c91d7ab29b
app.put('/api/users/:userid', function(req, res) {
var objectId = new ObjectID(req.params.userid);
var user = req.body;
db.collection('users').update({_id:objectId},user,function(er
r,updated){
res.send({
"result": {
"info": "OK"
},
"data": updated
});
});
});
Resultado
{
"result": {
"info": "OK"
},
"data": 0
}
Creando un PUT con BBDD
Implementación
29. DEL /api/users/53cee9c8e892d0c91d7ab29b
app.delete('/api/users/:userid', function(req, res) {
var objectId = new ObjectID(req.params.userid);
db.collection('users').remove({_id:objectId},function(e
rr,user){
res.send({
"result": {
"info": "OK"
},
"data": user
});
});
});
Resultado
{
"result": {
"info": "OK"
},
"data": 0
}
Creando un DELETE con BBDD
Implementación
31. ➢ Mongoose, mongoose-validate, mongoose-schema-extend:
Permite definir esquemas para mongo
➢ Express.router: Permite unificar todas las rutas en un sólo fichero
➢ Express validator: Permite validar parámetros
➢ Errorhandler: Permite manejar los errores de un forma más fácil
➢ Log4js-node: Permite configurar y manejar los logs
➢ Node-schedule: Permite configurar tareas batch
Utilidades
➢ ForEver: Permite ejecutar continuamente el script node
➢ Node-supervidor: Permite realizar actualizaciones en caliente
Módulos interesantes
Algunas cosas más
32. ➢ MongoDB: http://www.mongodb.org/
➢ RAML: http://raml.org/
➢ Nodejs: http://nodejs.org/
➢ IDe para poder desarrollar y ejecutar nuestras pruebas: http://c9.io
➢ API designer: http://api-portal.anypoint.mulesoft.com/raml/api-designer:
➢ Cursos de Mongo con node: https://university.mongodb.com/
Enlaces de interés
Enlaces