SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
Horneando APIs
Septiembre de 2018, v1.0
Índice
AUTORES Y CONTACTO
1. ¿Por dónde empiezo?...conociendo los ingredientes
1.- .¿Por dónde empiezo?
1
L
2
●
●
●
1.- .¿Por dónde empiezo?
3
●
●
●
1.1 Nomenclatura
●
●●
1.1 - NOMENCLATURA
ANATOMÍA DE UNA URL
●
●
●
→
NOMBRE DE LOS RECURSOS
●
●
●
●
●
○
○
○
●
→
○
→
○
→
●
○
○
1.1 - NOMENCLATURA
●
→
●
→
●
● Terminar el nombre de los recursos con el carácter
“/”. Si se hace esto y tenemos por ejemplo:
/customers/{customer-id}/
/customers/{customer-id}/addresses
Al hacer una petición sobre el recurso .../addresses
se ejecutarán ambos.
PATH PARAMETERS
●
●
●
/customers/{customer-id}
/customers/{customer-id}/addresses/{address-id}
●
○
○
1.1 - NOMENCLATURA
●
→
●
QUERY PARAMETERS
●
●
●
●
●
1.1 - NOMENCLATURA
●
●
→
●
→
CAMPOS DE ENTRADA/SALIDA
●
●
○
○
○
●
○
○
○
{
...ATRIBUTOS DEL RECURSO…
}
{
“data”: {
...ATRIBUTOS DEL RECURSO...
},
“pagination”: {
...ATRIBUTOS DE LA PAGINACIÓN…
}
}
1.1 - NOMENCLATURA
CAMPOS DE ENTRADA/SALIDA
●
→
●
→
●
●
●
●
1.1 - NOMENCLATURA
CAMPOS DE ENTRADA/SALIDA
●
…
1.1 - NOMENCLATURA
1.2 Tipos de recursos
●
●
●
●
●
●
●
●
1..2- TIPOS DE RECURSOS
2. ¿Cómo interaccionar con los métodos HTTP?
2.1.- USO DE MÉTODOS HTTP
●
●
IDEMPOTENCIA Y MÉTODO SEGURO
●
○
○
●
○
●
GET /customers/24535
●
200 OK
{ “data”: {
“id”:”24535”,
“name”:”Juan”,
“dni”: “4537567”
}
}
1
2.1.- USO DE MÉTODOS HTTP
●
○
●
GET /customers
●
200 OK
{ “data”: [
{
“id”:”24535”,
“name”:”Juan”,
“dni”: “4537567”
},
{
“id”:”4567878”,
“name”:”Juan”,
“dni”: “546798”
}
]
}
1
2.1.- USO DE MÉTODOS HTTP
●
○
○
●
●
POST /customers
{
“name”:”Juan”,
“dni”: “4537567”
}
●
201 Created
Location:/customers/24535
{ “data”: {
“id”:”24535”,
“name”:”Juan”,
“dni”: “4537567”
}
}
→
2
2.1.- USO DE MÉTODOS HTTP
●
○
○
●
●
PUT /customers/4354
{
“name”:”Juan”,
“dni”: “4537567”
}
●
200 Ok /
204 No Content
{ “data”: {
“id”:”24535”,
“name”:”Juan”,
“dni”: “4537567”
}
}
3
2.1.- USO DE MÉTODOS HTTP
→
●
○
○
●
○
■
→
■
→
■
→
→
→
■
4
2.1.- USO DE MÉTODOS HTTP
●
●
PATCH /customers/4354
{
“name”:”Juan José”,
}
●
20O Ok /
204 No Content
{ “data”: {
“id”:”24535”,
“name”:”Juan José”,
“dni”: “4537567”
}
}
4
2.1.- USO DE MÉTODOS HTTP
●
○
○
●
●
DELETE /customers/4354
●
204 No Content
5
2.1.- USO DE MÉTODOS HTTP
2.2 ¿Cómo responder adecuadamente?
2.2- ¿CÓMO RESPONDER ADECUADAMENTE?
1
Racksburg.
●
●
●
●
●
1
LOS CÓDIGOS HTTP
●
●
●
●
●
1
Racksburg.
1
2.2- ¿CÓMO RESPONDER ADECUADAMENTE?
LOS CÓDIGOS HTTP
●
●
●
●
●
1
Racksburg.
1
2.2- ¿CÓMO RESPONDER ADECUADAMENTE?
LOS CÓDIGOS HTTP
●
●
●
●
●
1
Racksburg.
1
2.2- ¿CÓMO RESPONDER ADECUADAMENTE?
LOS CÓDIGOS HTTP
●
●
●
●
●
1
Racksburg.
1
2.2- ¿CÓMO RESPONDER ADECUADAMENTE?
LOS CÓDIGOS HTTP
-
-
→
2.2- ¿CÓMO RESPONDER ADECUADAMENTE?
LOS CÓDIGOS HTTP
●
●
●
○
●
●
●
FORMATO DE RESPUESTA COMÚN
{ “messages”:[
{
“type”:”ERROR”,
“alias”:”invalidParameter”,
“description”: “Los parámetros introducidos no son válidos”
}
]
}
2.2- ¿CÓMO RESPONDER ADECUADAMENTE?
2.3 ¿Cómo versiono?
●
Accept: Application/vnd.api.article+xml; version=1.0
●
X-API-Version: 1.0
●
api.example.com/ v1/resource
●
apiv1.example.com/resource
●
GET /something? version=1.0
TÉCNICAS DE VERSIONADO
2.3- ¿CÓMO VERSIONO?
V. 1. 3. 8
Fix bugs
Nueva
funcionalidad
Cambios
incompatibles
VERSIONADO EN LA DEFINICIÓN DE LA API
VERSIONADO EN LA URL DE INVOCACIÓN
Versionado semántico:
2.3- ¿CÓMO VERSIONO?
2.4 ¿Cómo paginar?
●
GET /items?limit=20
GET /items?limit=20&offset=20
GET /items?limit=20&offset=40
●
GET /items?limit=20
GET /items?limit=20&createBefore=2018-01-20T00:00:00
GET /items?limit=20&createBefore=2018-01-19T00:00:00
TÉCNICAS DE PAGINACIÓN
2.4- ¿CÓMO PAGINAR?
●
GET /items?limit=20
GET /items?limit=20&cursor=13740047775
GET /items?limit=20&cursor=13740047795
●
●
GET /customers? pageSize=2
●
GET /customers? paginationKey=sd23246bhb
&pageSize=2
PROPUESTA DE PAGINACIÓN
2.4- ¿CÓMO PAGINAR?
{
"data": [
{
"id": "1234",
...
},
{
"id": "1235",
…
}
],
"pagination": {
"links": {
"self": "../customers/v0/customers?pageSize=2&paginationKey=2",
"first": "../customers/v0/customers?pageSize=2",
"last": "../customers/v0/customers?pageSize=2&paginationKey=6",
"previous": "../customers/v0/customers?pageSize=2&paginationKey=1",
"next": "../customers/v0/customers?pageSize=2&paginationKey=3"
}
}
}
PROPUESTA DE PAGINACIÓN
●
2.4- ¿CÓMO PAGINAR?
2.5 ¿Cómo filtrar los resultados?
2.5 - FILTRADO
GET /products?price[gte]=10&price[lte]=100
GET /products?price=gte:10&price=lte:100
GET /products?fromPrice=10&toPrice=100
●
●
●
?[campo][operador][valor]
FILTRADO BÁSICO
●
2.5 - FILTRADO
FILTRADO BÁSICO
2.6 ¿Cómo ordenar los resultados de un recurso?
2.6.- ORDENACIÓN
●
GET /customers?sortBy=asc(email)
GET /customers?sortBy=desc(email)
GET /customers?sortBy=+email
GET /customers?sortBy=-email
GET /customers?sortBy=email.asc
GET /customers?sortBy=email.desc
GET /customers?sortBy=email&orderBy=asc
GET /customers?sortBy=email&ordery=desc
●
GET /customers?sortBy=+email
GET /customers?sortBy=-email
●
○
○
GET /users?sortBy=-lastName
GET /users?sortBy=+email
●
GET /users?sortBy=-lastName,+email
TÉCNICAS DE ORDENACIÓN
3. Nuestra receta...la metodología del diseño de recursos
3.-METODOLOGIA DE DISEÑO DE RECURSOS
1.- Entender la funcionalidad y
el flujo de la operativa
2.- Identificar las entidades
involucradas
3.- Tipificar los recursos o
entidades
4.- Relacionar los recursos
5.- Diseñar recursos y los
campos E/S
6.- Implementar la definición
de la API
4. EJEMPLO
1.- Entender la funcionalidad y
el flujo de la operativa
4.- EJEMPLO
2.- Identificar las entidades
involucradas
/subscriptions
/profiles
/visualizations
/tv-shows
/films
/seasons /chapters
API Films
/recommendations
API
Subscriptions
API TV Shows
4.- EJEMPLO
3.- Tipificar los recursos o
entidades
/subscriptions
/profiles
/visualizations
/tv-shows
/films
/seasons /chapters
API Films
/recommendations
Collection y document
Collection y document
Collection y document
Collection y document
Collection y documentCollection y document
Collection y document
Collection
API
Subscriptions
API TV Shows
4.- EJEMPLO
/subscriptions
/profiles
/visualizations
/tv-shows
/films
/seasons /chapters
API Films
/recommendations
Collection y document
Collection y document
Collection y document
Collection y document
Collection y documentCollection y document
Collection y document
Collection
4.- Relacionar los recursos 1:N
1:N
1:N 1:N
1:N
API
Subscriptions
API TV Shows
4.- EJEMPLO
5.- Diseñar recursos y los
campos E/S
/subscriptions
/profiles
/visualizations
/tv-shows
/films
/seasons /chapters
API
Subscriptions API Films
/recommendations
Collection y document
Collection y document
Collection y document
Collection y document
Collection y documentCollection y document
Collection y document
Collection
1:N
1:N
1:N 1:N
1:N
API TV Shows
4.- EJEMPLO
/subscriptions
id
type
price
startDate
endDate
/profiles
/visualizations
/recommendations
/tv-shows
/films
/seasons /chapters
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
POST /subscriptions
GET, PUT /subscriptions/{subscription-id}
API
TV Shows
4.- EJEMPLO
/subscriptions
id
type
price
startDate
endDate
/profiles
id
name
alias
avatar
/visualizations
/recommendations
/tv-shows
/films
/seasons /chapters
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
POST /subscriptions
GET, PUT /subscriptions/{subscription-id}
GET, POST
/subscriptions/{subscription-id}/profiles
GET, PATCH
/subscriptions/{subscription-id}/profiles/
{profile-id}
API
TV Shows
4.- EJEMPLO
/subscriptions
id
type
price
startDate
endDate
/profiles
id
name
alias
avatar
/visualizations
id
visualizationContent
id
visualizationContentType
isFinished
startingPosition
/recommendations
/tv-shows
/films
/seasons /chapters
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
POST /subscriptions
GET, PUT /subscriptions/{subscription-id}
GET, POST
/subscriptions/{subscription-id}/profiles
GET, PATCH
/subscriptions/{subscription-id}/profiles/
{profile-id}
POST
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
PATCH,GET
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
/{visualization-id}
API
TV Shows
4.- EJEMPLO
/subscriptions
id
type
price
startDate
endDate
/profiles
id
name
alias
avatar
/visualizations
id
visualizationContent
id
visualizationContentType
isFinished
startingPosition
/recommendations
visualizationContentType
percentageMatch
categories
/tv-shows
/films
/seasons /chapters
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
POST /subscriptions
GET, PUT /subscriptions/{subscription-id}
GET, POST
/subscriptions/{subscription-id}/profiles
GET, PATCH
/subscriptions/{subscription-id}/profiles/
{profile-id}
POST
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
PATCH,GET
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
/{visualization-id}
GET
/subscriptions/{subscription-id}/profiles/
{profile-id}/recommendations
API
TV Shows
4.- EJEMPLO
/subscriptions
id
type
price
startDate
endDate
/profiles
id
name
alias
avatar
/visualizations
id
visualizationContent
id
visualizationContentType
isFinished
startingPosition
/recommendations
visualizationContentType
percentageMatch
categories
/tv-shows
id
name
shortDescription
longDescription
year
recommendedAge
categories
advertising
/films
/seasons /chapters
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
POST /subscriptions
GET, PUT /subscriptions/{subscription-id}
4.- EJEMPLO
GET
/subscriptions/{subscription-id}/profiles/
{profile-id}/recommendations
GET, POST
/subscriptions/{subscription-id}/profiles
GET, PATCH
/subscriptions/{subscription-id}/profiles/
{profile-id}
POST
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
PATCH,GET
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
/{visualization-id}
GET /tv-shows?categories
GET /tv-shows/{tv-show-id}
API
TV Shows
4.- EJEMPLO
/subscriptions
id
type
price
startDate
endDate
/profiles
id
name
alias
avatar
/visualizations
id
visualizationContent
id
visualizationContentType
isFinished
startingPosition
/recommendations
visualizationContentType
percentageMatch
categories
/tv-shows
id
name
shortDescription
longDescription
year
recommendedAge
categories
advertising
/films
/seasons
id
name
/chapters
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
POST /subscriptions
GET, PUT /subscriptions/{subscription-id}
GET
/subscriptions/{subscription-id}/profiles/
{profile-id}/recommendations
GET series/{series-id}/seasons
GET series/{series-id}/seasons/{season-id}
GET, POST
/subscriptions/{subscription-id}/profiles
GET, PATCH
/subscriptions/{subscription-id}/profiles/
{profile-id}
POST
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
PATCH,GET
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
/{visualization-id}
GET /tv-shows?categories
GET /tv-shows/{tv-show-id}
API
TV Shows
4.- EJEMPLO
/subscriptions
id
type
price
startDate
endDate
/profiles
id
name
alias
avatar
/visualizations
id
visualizationContent
id
visualizationContentType
isFinished
startingPosition
/recommendations
visualizationContentType
percentageMatch
categories
/tv-shows
id
name
shortDescription
longDescription
year
recommendedAge
categories
advertising
/films
/seasons
id
name
/chapters
id
name
duration
shortDescription
longDescription
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
POST /subscriptions
GET, PUT /subscriptions/{subscription-id}
GET
/subscriptions/{subscription-id}/profiles/
{profile-id}/recommendations
GET, POST
/subscriptions/{subscription-id}/profiles
GET, PATCH
/subscriptions/{subscription-id}/profiles/
{profile-id}
POST
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
PATCH,GET
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
/{visualization-id}
GET series/{series-id}/seasons
GET series/{series-id}/seasons/{season-id}
GET /tv-shows?categories
GET /tv-shows/{tv-show-id}
API
TV Shows
GET series/{series-id}/seasons/{season-id}/chapters
GET series/{series-id}/seasons/{season-id}/chapters/ {chapter-id}
4.- EJEMPLO
/subscriptions
id
type
price
startDate
endDate
/profiles
id
name
alias
avatar
/visualizations
id
visualizationContent
id
visualizationContentType
isFinished
startingPosition
/recommendations
visualizationContentType
percentageMatch
categories
/tv-shows
id
name
shortDescription
longDescription
year
recommendedAge
categories
advertising
/films
id
name
shortDescription
longDescription
year
duration
recommendedAge
categories
/seasons
id
name
/chapters
id
name
duration
shortDescription
longDescription
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
POST /subscriptions
GET, PUT /subscriptions/{subscription-id}
GET /films?categories
GET /films/{film-id}
GET series/{series-id}/seasons/{season-id}/chapters
GET series/{series-id}/seasons/{season-id}/chapters/ {chapter-id}
GET
/subscriptions/{subscription-id}/profiles/
{profile-id}/recommendations
GET, POST
/subscriptions/{subscription-id}/profiles
GET, PATCH
/subscriptions/{subscription-id}/profiles/
{profile-id}
POST
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
PATCH,GET
/subscriptions/{subscription-id/profiles/{profile-id}/visualizations
/{visualization-id}
GET series/{series-id}/seasons
GET series/{series-id}/seasons/{season-id}
GET /tv-shows?categories
GET /tv-shows/{tv-show-id}
API
TV Shows
4.- EJEMPLO
Editar el estilo de texto del patrón
Ejemplo práctico: Implementación con Spring
/subscriptions
/profiles
/visualizations
/recommendations
/tv-shows
/films
/seasons /chapters
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
API
TV Shows
4.- EJEMPLO
/subscriptions
/profiles
/visualizations
/recommendations
/tv-shows
/films
/seasons /chapters
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
API
TV Shows
4.- EJEMPLO
4.- EJEMPLO
Subscriptions
Recommendations
Visualizations
Films
TV- Shows
4.- EJEMPLO
Films
Visualizations
Subscriptions Recommendations TV- Shows
4.- EJEMPLO
Subscriptions Recommendations
Visualizations
Films
TV- Shows
4.- EJEMPLO
Subscriptions Recommendations
Visualizations
Films
TV- Shows
/subscriptions
id
type
price
startDate
endDate
/profiles
id
name
alias
avatar
/visualizations
id
visualizationContent
id
visualizationContentType
isFinished
startingPosition
/recommendations
visualizationContentType
percentageMatch
categories
/tv-shows
id
name
shortDescription
longDescription
year
recommendedAge
categories
advertising
/films
id
name
shortDescription
longDescription
year
duration
recommendedAge
categories
/seasons
id
name
/chapters
id
name
duration
shortDescription
longDescription
API Subscriptions API Films
1:N
1:N
1:N
1:N 1:N
POST /subscriptions
GET, PUT /subscriptions/{subscription-id}
GET /films?categories
GET /films/{film-id}
GET series/{series-id}/seasons/{season-id}/chapters
GET series/{series-id}/seasons/{season-id}/chapters/ {chapter-id}
GET
/subscriptions/{subscription-id}/profiles/
{profile-id}/recommendations
GET, POST
/subscriptions/{subscription-id}/profiles
GET, PATCH
/subscriptions/{subscription-id}/profiles/
{profile-id}
POST
/subscriptions/{subscription-id/profiles/{profile-id}/visualizati
ons
PATCH,GET
/subscriptions/{subscription-id/profiles/{profile-id}/visualizati
ons/{visualization-id}
GET series/{series-id}/seasons
GET series/{series-id}/seasons/{season-id}
GET /tv-shows?categories
GET /tv-shows/{tv-show-id}
API
TV Shows
4.- EJEMPLO
4.- EJEMPLO
Subscriptions Recommendations
Visualizations
Films
TV- Shows
API GATEWAY
Horneando apis

Más contenido relacionado

La actualidad más candente

Slides - Tailwind CSS.pdf
Slides - Tailwind CSS.pdfSlides - Tailwind CSS.pdf
Slides - Tailwind CSS.pdfIgorAugusto76
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures2019 DevSecOps Reference Architectures
2019 DevSecOps Reference ArchitecturesSonatype
 
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Steve Pember
 
Artifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrogArtifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrogCloud Study Network
 
Getting Started with Architecture Decision Records
Getting Started with Architecture Decision RecordsGetting Started with Architecture Decision Records
Getting Started with Architecture Decision RecordsMichael Keeling
 
Salesforce Integration using REST SOAP and HTTP callouts
Salesforce Integration using REST SOAP and HTTP calloutsSalesforce Integration using REST SOAP and HTTP callouts
Salesforce Integration using REST SOAP and HTTP calloutsRAMNARAYAN R
 
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...Amazon Web Services
 
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid RahimianAPI Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid RahimianVahid Rahimian
 
Business and Technical Agility with Team Topologies @ WTF Is Cloud Native, No...
Business and Technical Agility with Team Topologies @ WTF Is Cloud Native, No...Business and Technical Agility with Team Topologies @ WTF Is Cloud Native, No...
Business and Technical Agility with Team Topologies @ WTF Is Cloud Native, No...Manuel Pais
 
Consuming Restful APIs using Swagger v2.0
Consuming Restful APIs using Swagger v2.0Consuming Restful APIs using Swagger v2.0
Consuming Restful APIs using Swagger v2.0Pece Nikolovski
 
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...MuleSoft
 
Introduction to OpenID Connect
Introduction to OpenID Connect Introduction to OpenID Connect
Introduction to OpenID Connect Nat Sakimura
 
Microservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaMicroservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaEdureka!
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
 
Quality Engineering - par oú commencer?
Quality Engineering - par oú commencer?Quality Engineering - par oú commencer?
Quality Engineering - par oú commencer?Antoine Craske
 

La actualidad más candente (20)

Slides - Tailwind CSS.pdf
Slides - Tailwind CSS.pdfSlides - Tailwind CSS.pdf
Slides - Tailwind CSS.pdf
 
Object Oriented Javascript
Object Oriented JavascriptObject Oriented Javascript
Object Oriented Javascript
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures
 
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
 
Artifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrogArtifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrog
 
Getting Started with Architecture Decision Records
Getting Started with Architecture Decision RecordsGetting Started with Architecture Decision Records
Getting Started with Architecture Decision Records
 
Rest API
Rest APIRest API
Rest API
 
Saltstack with Zabbix
Saltstack with ZabbixSaltstack with Zabbix
Saltstack with Zabbix
 
Salesforce Integration using REST SOAP and HTTP callouts
Salesforce Integration using REST SOAP and HTTP calloutsSalesforce Integration using REST SOAP and HTTP callouts
Salesforce Integration using REST SOAP and HTTP callouts
 
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid RahimianAPI Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
 
Business and Technical Agility with Team Topologies @ WTF Is Cloud Native, No...
Business and Technical Agility with Team Topologies @ WTF Is Cloud Native, No...Business and Technical Agility with Team Topologies @ WTF Is Cloud Native, No...
Business and Technical Agility with Team Topologies @ WTF Is Cloud Native, No...
 
Consuming Restful APIs using Swagger v2.0
Consuming Restful APIs using Swagger v2.0Consuming Restful APIs using Swagger v2.0
Consuming Restful APIs using Swagger v2.0
 
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
 
Introduction to OpenID Connect
Introduction to OpenID Connect Introduction to OpenID Connect
Introduction to OpenID Connect
 
Microservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaMicroservices Design Patterns | Edureka
Microservices Design Patterns | Edureka
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
 
Quality Engineering - par oú commencer?
Quality Engineering - par oú commencer?Quality Engineering - par oú commencer?
Quality Engineering - par oú commencer?
 

Similar a Horneando apis

GDayX - Advanced Angular.JS
GDayX - Advanced Angular.JSGDayX - Advanced Angular.JS
GDayX - Advanced Angular.JSNicolas Embleton
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastAtlassian
 
Events Processing and Data Analysis with Lucidworks Fusion: Presented by Kira...
Events Processing and Data Analysis with Lucidworks Fusion: Presented by Kira...Events Processing and Data Analysis with Lucidworks Fusion: Presented by Kira...
Events Processing and Data Analysis with Lucidworks Fusion: Presented by Kira...Lucidworks
 
Automating Hyperion Planning Tasks
Automating Hyperion Planning TasksAutomating Hyperion Planning Tasks
Automating Hyperion Planning TasksKyle Goodfriend
 
User Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and VanityUser Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and VanityTony Pitale
 
BloodHound Unleashed.pdf
BloodHound Unleashed.pdfBloodHound Unleashed.pdf
BloodHound Unleashed.pdfn00py1
 
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto LeiteEffectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto LeiteAEM HUB
 
Intro To Django
Intro To DjangoIntro To Django
Intro To DjangoUdi Bauman
 
The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015Matt Raible
 
Back to the future : SQL 92 for Elasticsearch ? @nosqlmatters Dublin 2014
Back to the future : SQL 92 for Elasticsearch ? @nosqlmatters Dublin 2014Back to the future : SQL 92 for Elasticsearch ? @nosqlmatters Dublin 2014
Back to the future : SQL 92 for Elasticsearch ? @nosqlmatters Dublin 2014Lucian Precup
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosIgor Sobreira
 
Workshop 12: AngularJS Parte I
Workshop 12: AngularJS Parte IWorkshop 12: AngularJS Parte I
Workshop 12: AngularJS Parte IVisual Engineering
 
212 building googlebot - deview - google drive
212 building googlebot - deview - google drive212 building googlebot - deview - google drive
212 building googlebot - deview - google driveNAVER D2
 
Building a Cross Channel Content Delivery Platform with MongoDB
Building a Cross Channel Content Delivery Platform with MongoDBBuilding a Cross Channel Content Delivery Platform with MongoDB
Building a Cross Channel Content Delivery Platform with MongoDBMongoDB
 
Using an end-to-end testing tool to validate website analytics implementation...
Using an end-to-end testing tool to validate website analytics implementation...Using an end-to-end testing tool to validate website analytics implementation...
Using an end-to-end testing tool to validate website analytics implementation...Peter Meyer
 

Similar a Horneando apis (20)

Nicolas Embleton, Advanced Angular JS
Nicolas Embleton, Advanced Angular JSNicolas Embleton, Advanced Angular JS
Nicolas Embleton, Advanced Angular JS
 
GDayX - Advanced Angular.JS
GDayX - Advanced Angular.JSGDayX - Advanced Angular.JS
GDayX - Advanced Angular.JS
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
 
Events Processing and Data Analysis with Lucidworks Fusion: Presented by Kira...
Events Processing and Data Analysis with Lucidworks Fusion: Presented by Kira...Events Processing and Data Analysis with Lucidworks Fusion: Presented by Kira...
Events Processing and Data Analysis with Lucidworks Fusion: Presented by Kira...
 
Automating Hyperion Planning Tasks
Automating Hyperion Planning TasksAutomating Hyperion Planning Tasks
Automating Hyperion Planning Tasks
 
User Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and VanityUser Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and Vanity
 
BloodHound Unleashed.pdf
BloodHound Unleashed.pdfBloodHound Unleashed.pdf
BloodHound Unleashed.pdf
 
Consumer-centric API Design
Consumer-centric API DesignConsumer-centric API Design
Consumer-centric API Design
 
Test upload
Test uploadTest upload
Test upload
 
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto LeiteEffectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
 
Intro To Django
Intro To DjangoIntro To Django
Intro To Django
 
The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015
 
Back to the future : SQL 92 for Elasticsearch ? @nosqlmatters Dublin 2014
Back to the future : SQL 92 for Elasticsearch ? @nosqlmatters Dublin 2014Back to the future : SQL 92 for Elasticsearch ? @nosqlmatters Dublin 2014
Back to the future : SQL 92 for Elasticsearch ? @nosqlmatters Dublin 2014
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazos
 
Workshop 12: AngularJS Parte I
Workshop 12: AngularJS Parte IWorkshop 12: AngularJS Parte I
Workshop 12: AngularJS Parte I
 
Hands On: Javascript SDK
Hands On: Javascript SDKHands On: Javascript SDK
Hands On: Javascript SDK
 
212 building googlebot - deview - google drive
212 building googlebot - deview - google drive212 building googlebot - deview - google drive
212 building googlebot - deview - google drive
 
Building a Cross Channel Content Delivery Platform with MongoDB
Building a Cross Channel Content Delivery Platform with MongoDBBuilding a Cross Channel Content Delivery Platform with MongoDB
Building a Cross Channel Content Delivery Platform with MongoDB
 
Consumer-Centric API Design
Consumer-Centric API DesignConsumer-Centric API Design
Consumer-Centric API Design
 
Using an end-to-end testing tool to validate website analytics implementation...
Using an end-to-end testing tool to validate website analytics implementation...Using an end-to-end testing tool to validate website analytics implementation...
Using an end-to-end testing tool to validate website analytics implementation...
 

Más de Paradigma Digital

Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Paradigma Digital
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the futureParadigma Digital
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxParadigma Digital
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixParadigma Digital
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API ManagementParadigma Digital
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxParadigma Digital
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microserviciosParadigma Digital
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalParadigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJavaParadigma Digital
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?Paradigma Digital
 

Más de Paradigma Digital (20)

Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
 
Have you met Istio?
Have you met Istio?Have you met Istio?
Have you met Istio?
 
Linkerd a fondo
Linkerd a fondoLinkerd a fondo
Linkerd a fondo
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFlux
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microservicios
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
 
Transformación Digital
Transformación DigitalTransformación Digital
Transformación Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJava
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?
 
Python y Flink
Python y FlinkPython y Flink
Python y Flink
 

Último

Just Call Vip call girls Shillong Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Shillong Escorts ☎️9352988975 Two shot with one girl...Just Call Vip call girls Shillong Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Shillong Escorts ☎️9352988975 Two shot with one girl...gajnagarg
 
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证tufbav
 
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night StandCall Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Just Call Vip call girls Bhiwandi Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Bhiwandi Escorts ☎️9352988975 Two shot with one girl...Just Call Vip call girls Bhiwandi Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Bhiwandi Escorts ☎️9352988975 Two shot with one girl...gajnagarg
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Hosa Road Call Girls Service: ☎ 7737669865 ☎ High Profile Model Escorts | Ban...
Hosa Road Call Girls Service: ☎ 7737669865 ☎ High Profile Model Escorts | Ban...Hosa Road Call Girls Service: ☎ 7737669865 ☎ High Profile Model Escorts | Ban...
Hosa Road Call Girls Service: ☎ 7737669865 ☎ High Profile Model Escorts | Ban...amitlee9823
 
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in DammamAbortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammamahmedjiabur940
 
➥🔝 7737669865 🔝▻ Vijayawada Call-girls in Women Seeking Men 🔝Vijayawada🔝 E...
➥🔝 7737669865 🔝▻ Vijayawada Call-girls in Women Seeking Men  🔝Vijayawada🔝   E...➥🔝 7737669865 🔝▻ Vijayawada Call-girls in Women Seeking Men  🔝Vijayawada🔝   E...
➥🔝 7737669865 🔝▻ Vijayawada Call-girls in Women Seeking Men 🔝Vijayawada🔝 E...amitlee9823
 
Just Call Vip call girls godhra Escorts ☎️9352988975 Two shot with one girl (...
Just Call Vip call girls godhra Escorts ☎️9352988975 Two shot with one girl (...Just Call Vip call girls godhra Escorts ☎️9352988975 Two shot with one girl (...
Just Call Vip call girls godhra Escorts ☎️9352988975 Two shot with one girl (...gajnagarg
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In Yusuf Sarai ≼🔝 Delhi door step delevry≼🔝
Call Now ≽ 9953056974 ≼🔝 Call Girls In Yusuf Sarai ≼🔝 Delhi door step delevry≼🔝Call Now ≽ 9953056974 ≼🔝 Call Girls In Yusuf Sarai ≼🔝 Delhi door step delevry≼🔝
Call Now ≽ 9953056974 ≼🔝 Call Girls In Yusuf Sarai ≼🔝 Delhi door step delevry≼🔝9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Point of Care Testing in clinical laboratory
Point of Care Testing in clinical laboratoryPoint of Care Testing in clinical laboratory
Point of Care Testing in clinical laboratoryoyebolasonuga14
 
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...drmarathore
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...Pooja Nehwal
 
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...amitlee9823
 
Vip Mumbai Call Girls Kalyan Call On 9920725232 With Body to body massage wit...
Vip Mumbai Call Girls Kalyan Call On 9920725232 With Body to body massage wit...Vip Mumbai Call Girls Kalyan Call On 9920725232 With Body to body massage wit...
Vip Mumbai Call Girls Kalyan Call On 9920725232 With Body to body massage wit...amitlee9823
 
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...amitlee9823
 

Último (20)

Just Call Vip call girls Shillong Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Shillong Escorts ☎️9352988975 Two shot with one girl...Just Call Vip call girls Shillong Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Shillong Escorts ☎️9352988975 Two shot with one girl...
 
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
 
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night StandCall Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
 
Just Call Vip call girls Bhiwandi Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Bhiwandi Escorts ☎️9352988975 Two shot with one girl...Just Call Vip call girls Bhiwandi Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Bhiwandi Escorts ☎️9352988975 Two shot with one girl...
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
CHEAP Call Girls in Ashok Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Ashok Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Ashok Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Ashok Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Hosa Road Call Girls Service: ☎ 7737669865 ☎ High Profile Model Escorts | Ban...
Hosa Road Call Girls Service: ☎ 7737669865 ☎ High Profile Model Escorts | Ban...Hosa Road Call Girls Service: ☎ 7737669865 ☎ High Profile Model Escorts | Ban...
Hosa Road Call Girls Service: ☎ 7737669865 ☎ High Profile Model Escorts | Ban...
 
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in DammamAbortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
 
➥🔝 7737669865 🔝▻ Vijayawada Call-girls in Women Seeking Men 🔝Vijayawada🔝 E...
➥🔝 7737669865 🔝▻ Vijayawada Call-girls in Women Seeking Men  🔝Vijayawada🔝   E...➥🔝 7737669865 🔝▻ Vijayawada Call-girls in Women Seeking Men  🔝Vijayawada🔝   E...
➥🔝 7737669865 🔝▻ Vijayawada Call-girls in Women Seeking Men 🔝Vijayawada🔝 E...
 
Just Call Vip call girls godhra Escorts ☎️9352988975 Two shot with one girl (...
Just Call Vip call girls godhra Escorts ☎️9352988975 Two shot with one girl (...Just Call Vip call girls godhra Escorts ☎️9352988975 Two shot with one girl (...
Just Call Vip call girls godhra Escorts ☎️9352988975 Two shot with one girl (...
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In Yusuf Sarai ≼🔝 Delhi door step delevry≼🔝
Call Now ≽ 9953056974 ≼🔝 Call Girls In Yusuf Sarai ≼🔝 Delhi door step delevry≼🔝Call Now ≽ 9953056974 ≼🔝 Call Girls In Yusuf Sarai ≼🔝 Delhi door step delevry≼🔝
Call Now ≽ 9953056974 ≼🔝 Call Girls In Yusuf Sarai ≼🔝 Delhi door step delevry≼🔝
 
Point of Care Testing in clinical laboratory
Point of Care Testing in clinical laboratoryPoint of Care Testing in clinical laboratory
Point of Care Testing in clinical laboratory
 
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
 
(INDIRA) Call Girl Napur Call Now 8617697112 Napur Escorts 24x7
(INDIRA) Call Girl Napur Call Now 8617697112 Napur Escorts 24x7(INDIRA) Call Girl Napur Call Now 8617697112 Napur Escorts 24x7
(INDIRA) Call Girl Napur Call Now 8617697112 Napur Escorts 24x7
 
CHEAP Call Girls in Hauz Quazi (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Hauz Quazi  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Hauz Quazi  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Hauz Quazi (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
 
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
 
Vip Mumbai Call Girls Kalyan Call On 9920725232 With Body to body massage wit...
Vip Mumbai Call Girls Kalyan Call On 9920725232 With Body to body massage wit...Vip Mumbai Call Girls Kalyan Call On 9920725232 With Body to body massage wit...
Vip Mumbai Call Girls Kalyan Call On 9920725232 With Body to body massage wit...
 
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
 

Horneando apis