Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

1

Share

Download to read offline

RAML

Download to read offline

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

Related Books

Free with a 30 day trial from Scribd

See all

RAML

  1. 1. Síguenos en @apiaddicts 28 meetups 1.100 API Addicts 18.000 visualizations 10K 4K 4K
  2. 2. Síguenos en @apiaddicts Patrocinadores ¿Qué nos ofrece? Calle Velasco 13 Tlf: 658 89 75 75 contacta@cloudappi.net www.cloudappi.net Gobierno de Apis ➢ Definición de recursos ➢ Política de versionado ➢ Políticas de seguridad ➢ Estándar de definición ➢ Estándares de desarrollo ➢ Documentación ➢ Monitorización ➢ Testing ➢ Billing ➢ Gestión de entornos Desarrollo de Apis Desarrollamos Apis en diferentes tecnologías, como en Java (Spring), PHP (Zend) o node.js (express). Integración con terceros Consumimos apis de terceros, como las de facebook, twitter, gmail o de otros tipos de productos, como el CRM de Zoho, Odoo..
  3. 3. Síguenos en @apiaddicts APIs más populares Google Maps Twitter YouTube Flickr Amazon Product Advertising Facebook Datos recogidos de programmable web Conociendo las Apis Crecimiento de las Apis
  4. 4. Síguenos en @apiaddicts 1) Realizar un documento funcional 2) Realizar el diseño de la API 3) Realizar una implementación fake 4) Implementar la API 5) Validar la API 6) Generar documentación para developers 7) Generar casos de prueba (códigos de ejemplo) 8) Generar los SDks Desarrollo de Apis Pasos:
  5. 5. Síguenos en @apiaddicts Documentación funcional Descripción a alto nivel de la APi
  6. 6. Síguenos en @apiaddicts Documentación Descripción técnica de la API
  7. 7. Síguenos en @apiaddicts - Formato de la API (SOAP vs REST) - Seguridad de la API,métodos de autenticación y autorización. Pj: Basic, oauth1, aouth2… - API Manager (wso2, apigee, genoa) vs ESB (Oracle Service Bus..) Documentación Consideraciones generales
  8. 8. Síguenos en @apiaddicts Documentación - fakes Implementando un fake con las interfaces de entrada y salida
  9. 9. Síguenos en @apiaddicts - Lenguaje de programación y frameworks a utilizar (java/springmvc, php/zend framework, node/express,.net/.net asp Web API) - Base de datos SQL vs noSQL - Instalación en Cloud vs in-house - Utilización de PaaS, IaaS. ¿Se deben utilizar servicios propios de los Clouds? - Pruebas de estrés, carga, rendimiento y volumen Implementación Consideraciones generales:
  10. 10. Síguenos en @apiaddicts Una vez implementada la API, hay que validar que la implementación cumple con las especificaciones. - Validación manual: Postman - Validación automática (SOAPUI, jMETER) Testing Validación de la API
  11. 11. Síguenos en @apiaddicts Se debe generar documentación clara y comprensible para los developers. Documentación Generar la documentación para el developer
  12. 12. Síguenos en @apiaddicts Una de las cosas más importantes es generar casos de prueba para que los developers puedan guiarse en la implementación. Documentación Casos de prueba
  13. 13. Síguenos en @apiaddicts SDKs Facilitan la integración con las Apis
  14. 14. Síguenos en @apiaddicts 1) Realizar un documento funcional SI 2) Realizar el diseño de la API SI 3) Realizar una implementación fake SI 4) Implementar la API SI 5) Validar la API SI 6) Generar documentación SI 7) Generar SDKS SI (por el momento) RAML ¿Donde aporta Valor?
  15. 15. Síguenos en @apiaddicts Todo los pasos en el desarrollo de una API deben partir de un único documento, el de definición de la API. Existen varios lenguaje de definición de APIs que permiten obtener nuestra meta, de los cuales los tres más importantes son RAML, SWAGGER y BLUEPRINT MADA Objetivo
  16. 16. Síguenos en @apiaddicts La API se define en RAML, un lenguaje de definición de APIs. #%RAML 0.8 title: World Music API baseUri: http://example.api.com/{version} version: v1 traits: - paged: queryParameters: pages: description: The number of pages to return type: number - secured: !include http://raml-example.com/secured.yml song** Parámetros generales de la API Permite: ➢ Describir la API ➢ Incluir ficheros externos ➢ Utilizar propiedades ➢ Incluir schemas ➢ Definir la versión ➢ Definir el tipo de mediaAType (pj:application/json) ➢ Protocolos (HTTP,HTTPS) ➢ Definir la URL base (URL en la que estará desplegada) ➢ Definir documentación en formato Markdown [MARKDOWN]. Documento de la API MADA
  17. 17. Síguenos en @apiaddicts Permite: ➢ Describir los parámetros de entrada, tanto query parameters como uriParameters, indicando tipo, descripción, valores por defecto, ejemplos de valores... ➢ Definir los parámetros de salida (definirlo tanto como json schema como por xml). Por ejemplo: /songs: is: [ paged, secured ] get: queryParameters: genre: description: filter the songs by genre delete: description: | This method will *delete* an **individual responses: 200: body: application/json: example: !include examples/instagram-v1-media-popular- example.json Definiendo métodos GET y DELETE Documento de la API MADA
  18. 18. Síguenos en @apiaddicts Permite: ➢ Describir los valores de entrada mediante schemas (ya sean json o xsd) post: /{songId}: post: responses: 200: body: application/json: schema: | { "$schema": "http://json-schema.org/schema", "type": "object", "description": "A canonical song", "properties": { "title": { "type": "string" }, "artist": { "type": "string" } }, "required": [ "title", "artist" ] } application/xml: Definiendo métodos POST Documento de la API MADA
  19. 19. Síguenos en @apiaddicts Los traits permiten definir partes comunes de los recursos traits: - paged: queryParameters: pages: description: number of pages type: number example: 8 song** Definición Traits RAML get: description: obtiene los datos de un usuario is: [paged] responses: 200: body: application/json: example: !include samples/users_get_id_200.json
  20. 20. Síguenos en @apiaddicts Permite definir diferentes esquemas de seguridad securitySchemes: - oauth_2_0: type: OAuth 2.0 describedBy: headers: Authorization: type: string queryParameters: access_token: type: string responses: 401: 403: settings: authorizationUri: https://www.dropbox.com/1/oauth2/authorize accessTokenUri: https://api.dropbox.com/1/oauth2/token authorizationGrants: [ code, token Definición Securización RAML get: description: obtiene todos los usuarios securedBy: [oauth_2_0] queryParameters: sexo: description: sexo a filtrar. Puede ser H o M responses: 200: body: application/json: example: !include samples/users_get_200.json schema: Users
  21. 21. Síguenos en @apiaddicts Permite definir un recurso completo y que otros hereden resourceTypes: - base: get: responses: 500: body: example: !include samples/base_500.json Definición Recursos RAML /users: type: base get: description: obtiene todos los usuarios securedBy: [oauth_2_0] queryParameters: sexo: responses: 200: body: application/json: example: !include samples/users_get_200.json schema: Users
  22. 22. Síguenos en @apiaddicts Permite utilizar schemas para el contenido de las peticiones / respuestas schemas: - Users: !include schemas/users_get.json Definición Schemas RAML { "$schema": "http://json-schema.org/draft-04/schema#", "id": "http://jsonschema.net", "type": "array", "items": [ { "id": "http://jsonschema.net/0", "type": "object", "properties": { "name": { "id": "http://jsonschema.net/0/name", "type": "string" } } ], "required": [ "0", "1" ] }
  23. 23. Síguenos en @apiaddicts Permite utilizar schemas para el contenido de las peticiones / respuestas documentation: - title: introducción content: !include documentation/introduction.md Definición Documentación RAML introduction.md # Requisitos legales # Soporte
  24. 24. Síguenos en @apiaddicts Desarrollo de una implementación con las interfaces de entrada y salida. Implementando el servicio fake RAML
  25. 25. Síguenos en @apiaddicts Api Designer posee una consola de pruebas Testeando la API RAML
  26. 26. Síguenos en @apiaddicts Proyectos Open Source RAML http://raml.org/projects
  27. 27. Síguenos en @apiaddicts Proyectos Open Source RAML
  28. 28. Síguenos en @apiaddicts Proyectos Open Source RAML
  29. 29. Síguenos en @apiaddicts Permite: ➢ Generar casos de prueba ➢ Validar los parámetros de entrada como de salida Importando un raml desde SoapUI Validando la API RAML
  30. 30. Síguenos en @apiaddicts Generando la documentación con RAML Documentación RAML
  31. 31. Síguenos en @apiaddicts Desde la consola podemos generar los casos de prueba a partir del RAML Casos de prueba MADA
  32. 32. Síguenos en @apiaddicts RAML 1.0 RAML
  33. 33. Síguenos en @apiaddicts RAML 1.0 RAML
  34. 34. Síguenos en @apiaddicts RAML 1.0 RAML
  35. 35. Síguenos en @apiaddicts RAML 1.0 RAML
  36. 36. Síguenos en @apiaddicts RAML 1.0 RAML
  37. 37. Síguenos en @apiaddicts Api Designer MADA
  38. 38. Síguenos en @apiaddicts Existen Herramientas para generación de parte del código automáticamente Permite: ➢ Generar código en Java o Node ➢ Coexistir implementación fake con Implementación MADA
  39. 39. Síguenos en @apiaddicts Ruegos y preguntas
  40. 40. Síguenos en @apiaddicts
  41. 41. Síguenos en @apiaddicts Contacta en: Email: contacta@apiaddicts.org Web: www.apiaddicts.org Siguenos en: ➢ Linkedin: ApiAddicts ➢ Twitter: @apiaddicts ➢ Facebook: APIAddicts ➢ Meetup: APIAddicts ➢ Meetup: APIAddictsBCN Contacta
  • LuisRufo

    Aug. 24, 2018

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

Views

Total views

2,210

On Slideshare

0

From embeds

0

Number of embeds

649

Actions

Downloads

48

Shares

0

Comments

0

Likes

1

×