azure api management

25
24.01.2017 Desarrollo y gestión de apps móviles - Azure Api Management

Upload: plain-concepts

Post on 20-Mar-2017

65 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Azure API Management

24.01.2017

Desarrollo y gestión de apps móviles -Azure Api Management

Page 2: Azure API Management

2

Qué veremos 1. ¿Qué es Azure API Management?2. ¿Por qué Azure API Management?3. Portal Api Management/Desarrollador4. Directivas5. Seguridad con Api Manament

Page 3: Azure API Management

@plainconcepts 3

Software developer en Plain Concepts en Windows Platform Team.

Francisco Olmedo

Software developer en Plain Concepts en Windows Platform Team.

Ángel Carlos LópezDEVELOPER DEVELOPER

@_aclopez @fmolmedo

https://github.com/WindowsPlatformTeam

Page 4: Azure API Management

4@plainconcepts

¿Qué es Azure API Management?

Page 5: Azure API Management

5

• Portal para desarrolladores que usen el API con documentación y ejemplos• Crear una fachada de una o varias de nuestras APIs para poder gestionarlas mejor.• Añadir nuevas características fácilmente a nuestro backend.• Información del uso y la salud de nuestra API con las analíticas del portal.

¿Por qué Azure Api Management?

@plainconcepts

Page 6: Azure API Management

6

Portal de Api ManagementPortal de Desarrolladores

Page 7: Azure API Management

7

• APIs: En Api Management podemos importar tantas APIs queramos.• Producto: Engloba varias APIs. Puede haber APIs en diferentes

producto. Un producto es un conjunto de políticas que se aplican a las APIs que tenga suscritas.

• Grupos: Por defecto hay tres grupos: • Administradores, • Desarrolladores • Invitados. • Se pueden suscribir a los productos para ver los mismos. Se pueden crear más

grupos personalizados.• Directivas: Reglas que se pueden poner en medio de la ejecución de

nuestros métodos del API. Se pueden asignar a una API o a productos.

Conceptos

@plainconcepts

Page 8: Azure API Management

8

• Crear un API.• Importarla con Swagger• Crear un Producto• Asignarlo al API.• Crear un Usuario.

Demo Publish Portal

@plainconcepts

Page 9: Azure API Management

9

• Portal donde los desarrolladores pueden probar el API• El estilo es personalizable• Existen ejemplos de como poder llamar al API en diferentes

lenguajes.• Tienen acceso a sus estadísticas.

Portal de desarrollador

@plainconcepts

Page 10: Azure API Management

10

• Ir al portal de desarrollador.• Enseñar los ejemplos de código.• Incluir Disqus para comentarios.

Portal de desarrollo demo

@plainconcepts

Page 11: Azure API Management

11

Directivas

Page 12: Azure API Management

12

• <set-variablename="variable name"value="Expression | String literal"/>– <rate-limit calls="20" renewal-period="90" />

• <set-header name="header name" exists-action="override | skip | append"><value>value</value>

</set-header>– <check-header name="Authorization" failed-check-httpcode="401" failed-check-

error-message="Not authorized" ignore-case="false"> <value>f6dc69a089844cf6b2019bae6d36fac8</value>

</check-header>

• <set-status code=“” reason=“”/>

Tipos de directivas

@plainconcepts

Page 13: Azure API Management

13@plainconcepts

Se puede añadir código a nuestras directivas. Disponemos de la variable Context que nos da acceso a información del contexto de la llamada que podemos utilizar para crear un flujo

u otro.

@(true) @((1+1).ToString())@{ string value; if (Context.Request.Headers.TryGetValue("Authorization", out value)) { return Encoding.UTF8.GetString(Convert.FromBase64String(value)); } else { return null; } }

Directivas con C#CÓDIGO EN LAS DIRECTIVAS

Page 14: Azure API Management

14@plainconcepts

Las políticas con código se suelen usar con las políticas de tipo <choose>

<choose> <whencondition="Boolean

expression | Boolean constant"> </when> <otherwise> </otherwise>

</choose>

Directivas con C#CÓDIGO EN LAS DIRECTIVAS

<set-variable name="isMobile" value="@(context.Request.Headers["User-Agent"].Contains("iPad") || context.Request.Headers["User-Agent"].Contains("iPhone"))" /> <base /> <choose> <when condition="@(context.Variables.GetValueOrDefault<bool>("isMobile"))"> <set-query-parameter name="mobile" exists-action="override"> <value>true</value> </set-query-parameter> </when> <otherwise> <set-query-parameter name="mobile" exists-action="override"> <value>false</value> </set-query-parameter> </otherwise> </choose>

Page 15: Azure API Management

15@plainconcepts

Scope Directivas

Page 16: Azure API Management

16@plainconcepts

Este puede ser un ejemplo de uso de políticas en diferentes sitios de ejecución.

<policies> <inbound> <!–statementsto be applied to the request--> </inbound> <backend> <!–statementsto be applied before the request is forwarded to the backend service --> </backend> <outbound> <!–statementsto be applied to the response--> </outbound> <on-error> <!–statementsto be applied if there is an error --> </on-error></policies>

Scope de las DirectivasCICLO DE EJECUCIÓN

Page 17: Azure API Management

17@plainconcepts

La configuración de nuestras directivas depende de donde las coloquemos. Existen 4 posibles formas de ejecutar nuestras directivas: inbound, backend, outbound y onerror.

<policies> <inbound> <set-variable name="isMobile" value="@(context.Request.Headers["User-Agent"].Contains("iPad") || context.Request.Headers["User-Agent"].Contains("iPhone"))" /> <base /> <choose> <when condition="@(context.Variables.GetValueOrDefault<bool>("isMobile"))"> <set-query-parameter name="mobile" exists-action="override"> <value>true</value> </set-query-parameter> </when> <otherwise> <set-query-parameter name="mobile" exists-action="override"> <value>false</value> </set-query-parameter> </otherwise> </choose> </inbound> <outbound> <base /> <choose> <when condition="@(context.GetValueOrDefault<bool>("isMobile"))"> <xml-to-json kind="direct" apply="always" consider-accept-header="false"/> </when> </choose> </outbound> </policies>

Scope de las DirectivasCICLO DE EJECUCIÓN

Page 18: Azure API Management

18

• Crear directiva de cuotas• Mostrar Git.• Crear directiva convertir JSON en XML

Demo Directivas

@plainconcepts

Page 19: Azure API Management

19

Seguridad Con Api Management

Page 20: Azure API Management

20

• Crear una directiva con Basic Authentication para que los desarrolladores puedan probar.• Crear directiva de cuotas para evitar ataques• Crear directiva tamaño máximo del JSON.

Demo Seguridad

@plainconcepts

Page 21: Azure API Management

21

Api Management Referencias

Page 22: Azure API Management

22

Precios

@plainconcepts

Page 23: Azure API Management

23

• Api Management Get Started• https://docs.microsoft.com/en-us/azure/api-management/api-

management-get-started• Api Management Policies references:

• https://docs.microsoft.com/en-us/azure/api-management/api-management-policy-reference

• Api Management en Trello: • https://trello.com/b/FAA147vS/azure-api-management-product-roadmap

Referencias

@plainconcepts

Page 24: Azure API Management

@plainconcepts

¡GRACIAS!www.plainconcepts.comhttp://geeks.ms/windowsplatform/https://github.com/WindowsPlatformTeam

Page 25: Azure API Management

www.plainconcepts.com

MADRIDPaseo de la Castellana 163, 10º

28046 Madrid. EspañaT. (+34) 91 5346 836

BILBAONervión 3 , 6º

48001 Bilbao. EspañaT. (+34) 94 6008 168

BARCELONAAv. Josep Tarradellas 10, 6º 1ª

08029 Barcelona. EspañaT. (+34) 93 3607 114

SEVILLAAvenida de la innovación s/nEdificio Renta Sevilla, 3º A

41020 Sevilla. España

DUBAIDubai Internet City. Building 1

73030 Dubai. EAUT. (+971) 4 551 6653

LONDONImpact Hub Kings Cross24B York Way, N1 9AB

London. UK

SEATTLE1511, Third Ave

Seattle WA 98101. USAT. (+1) 206 708 1285