Slide 1

Slide 1 text

JSON Schema A TOPE DE POWER El lugar donde busca empleo la gente que no busca empleo

Slide 2

Slide 2 text

¡Hola! I’m David I’m @david_bonilla I’m [email protected]

Slide 3

Slide 3 text

¿QUÉ?

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

JSON SCHEMA / CHEATSHEET TIPOS DE DATOS ‣ "string": “Hola Mundo" ‣ "number": 2.23 ‣ "integer": 223 1.2e10 ‣ "boolean": true ‣ "object": {"foo":"bar", “saludo":"Hola Mundo"} ‣ "array": ["foo","bar", 7,”hola"] ‣ "null": null PALABRAS RESERVADAS ‣ id ‣ description ‣ default ‣ patternProperties ‣ dependencies ‣ extends ‣ $ref ‣ $schema ‣ allOf, anyOf, oneOf FUNCIONALIDADES ‣ string + number + integer - enum: [...] - format: date-time, email, hostname, ipv4, ipv6, uri ‣ string - minLength, maxLength - pattern: regex ‣ number + integer - minimum, maximum - exclusiveMinimum, exclusiveMaximum - multipleOf ‣ array - items - minItems, maxItems - uniqueItems: obliga a valores únicos - additionalItems: si true, siempre se valida ‣ object - properties - minProperties, maxProperties - patternProperties: regex properties - additionalProperties: si true, siempre se valida - required

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

¿POR QUÉ?

Slide 11

Slide 11 text

TBD HISTORIA

Slide 12

Slide 12 text

EL MERCADO DE TALENTO TÉCNICO, RESUMIDO Oferta Demanda

Slide 13

Slide 13 text

EL TRIANGULO DE LAS BERMUDAS DEL RECRUITING COMPAÑÍAS CANDIDATOS RECRUITERS

Slide 14

Slide 14 text

Manfred Roadmap We charge to the companies but we work for the candidates SERVICE PRODUCT INVERSE RECRUITING (MVP) MEDIA (SCALED SOURCING) MANFRED APP (PROFILING) TRANSACTIONAL PLATFORM

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

MANFRED AWESOMIC CV (MAC) INTRO PROFESSIONAL GOALS TRANSPORTABLE SKILLS SIGNIFICATIVE SIGNIFICATIVE EDUCATION LANGUAGES MISCELLANY EXPERIENCE 1 EXPERIENCE N … QUESTION 1 QUESTION N … COMPANY 1 ROL 1..N CHALLENGE 1…N ACTION 1..N COMPANY N … REFERENCES 1…N

Slide 17

Slide 17 text

TBD HISTORIA

Slide 18

Slide 18 text

¿Y A MÍ QUÉ?

Slide 19

Slide 19 text

TBD ¿POR QUÉ JSON SCHEMA?

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

¿POR QUÉ JSON?

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Y LO SABES - VAS DE MODERNO

Slide 25

Slide 25 text

JSON SCHEMA / VENTAJAS (PARA NOSOTROS) ‣ OPEN-SOURCE: Alineado con nuestra estrategia. ‣ MISMA SINTAXIS: Permite mantener todo nuestra stack con una sola sintaxis/lenguaje. ‣ MUY EXPRESIVO: los esquemas son auto-explicativos ‣ SOPORTE DE LA INDUSTRIA: Uso extendido a Google, OpenAPI, AsyncAPI, Mongo…

Slide 26

Slide 26 text

JSON SCHEMA / DESCRIPCIONES

Slide 27

Slide 27 text

JSON SCHEMA / COMENTARIOS

Slide 28

Slide 28 text

JSON SCHEMA / EJEMPLOS

Slide 29

Slide 29 text

JSON SCHEMA / ENUMERACIONES

Slide 30

Slide 30 text

JSON SCHEMA / EXPRESIONES REGULARES

Slide 31

Slide 31 text

JSON SCHEMA / ARCHIVOS MULTIMEDIA

Slide 32

Slide 32 text

JSON SCHEMA / VALORES POR DEFECTO

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

JSON SCHEMA / OR

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

JSON SCHEMA / OR LIKE A BOSS (XOR)

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

JSON SCHEMA / IF/ELSE

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

JSON SCHEMA / WHILE/FOR ‣ PRE-PROCESO DE SCHEMA: Para limitar de forma dinámica el tamaño de un array. ‣ $DATA: Una propuesta para poder usar valores referenciados.

Slide 42

Slide 42 text

JSON SCHEMA - ORIENTADO A OBJETOS

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

JSON SCHEMA - ORIENTADO A OBJETOS - MULTIPLES FICHEROS

Slide 45

Slide 45 text

JSON SCHEMA - ORIENTADO A OBJETOS - MULTIPLES FICHEROS

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

JSON SCHEMA / “HERENCIA” Y RECURSIVIDAD

Slide 48

Slide 48 text

JSON SCHEMA / “HERENCIA” Y RECURSIVIDAD

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

¿Y QUÉ?

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

No content

Slide 59

Slide 59 text

No content

Slide 60

Slide 60 text

JSON SCHEMA / CASOS DE ÉXITO ‣ Documentación (API docs y guías generados automáticamente por el CI) ‣ Comunicación (entre equipos durante el diseño) ‣ Testing (del cumplimiento de los contratos) USO ‣ 250 schemas (multiples versiones/evoluciones) ‣ 250 validaciones por día (el CI trabaja mucho) ‣ Ruby, Elixir, Go, Scala, Javascript, Swift, Kotlin, Python...

Slide 61

Slide 61 text

JSON SCHEMA / CASOS DE ÉXITO ‣ Generación de Documentación de APIs (directamente con el Schema que las define) ‣ Generación dinámica de clientes para lenguajes como Go o Ruby (usando herramientas open-source como Prmd o Heroics. ‣ Validación de request y responses de distintas APIs (externas e internas)

Slide 62

Slide 62 text

JSON SCHEMA / CASOS DE ÉXITO ‣ Definición de especificación para describir y documentar APIs asíncronas (como OpenAPI pero para servicios de mensajeria) ‣ Generación de código ‣ Generación de documentación de forma automática

Slide 63

Slide 63 text

JSON SCHEMA / CASOS DE ÉXITO API Discovery Service ‣ Directorio de APIs (todas las APIs ofrecidas por Google) ‣ Descripción de servicios ofrecidos por cada API (métodos y datos esperados/ servidos) ‣ Documentación de scopes Oauth (identifica los contextos de Oauth disponibles) ‣ Documentación Inline (usan los schemas para documentar que hace cada API además de definir la estructura de la misma y sus métodos) USO ‣ Clientes nativos en 10 lenguajes (JAVA, .NET, Python, Ruby…) ‣ Google API Explorer (herramienta web interactiva para explorar las distintas APIs de Google)

Slide 64

Slide 64 text

¿Y AHORA QUÉ?

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

NON DAMOS FEITO

Slide 67

Slide 67 text

NON DAMOS FEITO

Slide 68

Slide 68 text

TODO EL MUNDO DEBERIA TENER EL DERECHO A ENCONTRAR UN TRABAJO QUE LE GUSTE

Slide 69

Slide 69 text

¡Gracias! Si quieres contactarme, aquí estoy: [email protected] Si quieres descargar esta charla, la tienes en http://bit.ly/json-schema

Slide 70

Slide 70 text

Links • MAC Repo:https://www.workable.com/ultimate-job-posting-guide • Adalab Manfred Public Repo: https://github.com/Adalab/easley-s4-manfred • JSON Spec: https://www.json.org/ • JSON Schema Getting Started: https://json-schema.org/learn/getting-started-step-by-step.html • Understanding JSON Schema: https://json-schema.org/understanding-json-schema/index.html • Another JSON Validator: https://github.com/jessedc/ajv-cli • JSON Online Editor: https://rawgit.com/json-editor/json-editor/master/docs/demo.html • Regular Expressions Library: http://regexlib.com/ • Regular Expressions Sandbox: https://regexr.com/ • Base64 Online Converter: https://www.base64-image.de/ • $DATA Proposal: https://github.com/json-schema-org/json-schema-spec/issues/51 • Elegant APIs with JSON Schema: https://www.brandur.org/elegant-apis • AsyncAPI: https://www.asyncapi.com/ • JSONResume: https://jsonresume.org/