SlideShare a Scribd company logo
DISEÑO Y
DESARROLLO
DE APIS
Workshop de
http://cdn.traveler.es/uploads/images/thumbs/201408/9_locuras_del_skyline_de_londres_737368666_1200x798.jpg
#PosadasTechIng. Raúl Neis
API
http://www.shzongyue.com/data/out/34/38951200-city.jpeg
API
Application
Progamming
Interface
http://www.shzongyue.com/data/out/34/38951200-city.jpeg
http://www.teameliteconstruction.co.uk/wp-content/uploads/2014/03/house-base-1.jpg
Operating System
// Linux <3
open(…)
// Windows
NtOpenFile(…)
Operating System API
http://www.shzongyue.com/data/out/34/38951200-city.jpeg
Libraries
int printf(const char* formato, …)
int fopen(const char* pathname, int flags);
Libraries API
http://www.planooverhead.com/wp-content/uploads/2015/03/CarriageHouse.jpg
Frameworks
public interface Iterator<E> {
boolean hasNext();
E next();
void remove();
}
Framework API
http://toutautourdemoi.com/wp-content/uploads/2016/09/house-pictures-house-1.jpg
Applications
class Box
{
public void setVolume(double volume)
{
...
}
}
Application API
Internet ♥
http://www.radio-in.de/storage/thumbs/1200x630c/r:1380287190/16926.jpg
APIs
en
Internethttps://c8.staticflickr.com/3/2920/14498140679_cd2f68f4b4_b.jpg
APIs
en
Webhttps://c8.staticflickr.com/3/2920/14498140679_cd2f68f4b4_b.jpg
https://alismusings.files.wordpress.com/2017/03/cropped-words-on-page1.jpg?w=1200
https://alismusings.files.wordpress.com/2017/03/cropped-words-on-page1.jpg?w=1200
text
https://alismusings.files.wordpress.com/2017/03/cropped-words-on-page1.jpg?w=1200
Hypertext
https://alismusings.files.wordpress.com/2017/03/cropped-words-on-page1.jpg?w=1200
Hypertext
https://s3.amazonaws.com/s3.timetoast.com/public/uploads/photos/6842868/Xanadu.JPG
https://s3.amazonaws.com/s3.timetoast.com/public/uploads/photos/6842868/Xanadu.JPG
Xanadú
https://renoopenforum.files.wordpress.com/2016/11/html.jpg
HTML
http://1.bp.blogspot.com/_xBweKWyuAsA/SjzmymqAmaI/AAAAAAAAAHY/gLHJHjrL95A/w1200-h630-p-k-no-nu/Broad_chain_closeup.jpg
hypertext
reference
http://1.bp.blogspot.com/_xBweKWyuAsA/SjzmymqAmaI/AAAAAAAAAHY/gLHJHjrL95A/w1200-h630-p-k-no-nu/Broad_chain_closeup.jpg
href
https://userscontent2.emaze.com/images/255f8bf6-f704-4c13-a757-1090eb502738/06eab1cf61be4ed1f10ef88a54373e01.jpg
HTTP
Request
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
Request
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
Request
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
Request
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
Request
Response
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
Response
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
HTTP/1.1 200 OK
Content-Type: text/html
<!doctype html><html
itemscope=""itemtype="http://schema.org/...
Response
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
HTTP/1.1 200 OK
Content-Type: text/html
<!doctype html><html
itemscope=""itemtype="http://schema.org/...
Response
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
HTTP/1.1 200 OK
Content-Type: text/html
<!doctype html><html
itemscope=""itemtype="http://schema.org/...
Response
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
HTTP/1.1 200 OK
Content-Type: text/html
<!doctype html><html
itemscope=""itemtype="http://schema.org/...
Response
200 - Ok
201 - Created
204 - No Content
HTTP Status 2xx
301 - Moved Permanently
302 - Found
304 - Not Modified
HTTP Status 3xx
400 - Bad Request
401 - Unauthorized
403 - Forbidden
404 - Not Found
409 - Conflict
HTTP Status 4xx
500 - Internal Server Error
503 - Service Unavailable
HTTP Status 5xx
https://httpstatuses.com/
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xml
HTTP/1.1 200 OK
Content-Type: text/html
<!doctype html><html
itemscope=""itemtype="http://schema.org/...
Response
Content-Type
(MIME)
https://cdn.colorlib.com/wp/wp-content/uploads/sites/2/the7-creative-flat-design-multipurpose-theme.jpg
Content-Type: text/html
http://www.1freewallpapers.com/despicable-me-2-minions/
Content-Type: application/xml
https://otvet.imgsmail.ru/download/500ab9aa0e65cb491a4ea103b779d399_i-4764.gif
Content-Type: application/json
{JSON}
{
"user": {
"id": 1,
"name": "John Doe",
"numbers": [1, 2, 3]
}
}
JSON
Apps
Web Apps
Mobile Apps
Desktop Apps
Backends
https://s3-us-west-2.amazonaws.com/devcode/media/blog/blog-articulo-frontendbackend.png
https://s3-us-west-2.amazonaws.com/devcode/media/blog/blog-articulo-frontendbackend.png
API
REST
http://2.bp.blogspot.com/-ulj8GyBrkSw/UhGB2RzH4XI/AAAAAAAA1jk/BqdVwUggWG4/w1200-h630-p-k-no-nu/%E2%88%A033%CB%9A_Outlet_Socket_Plug_Concept_1.jpg
REpresentational
State
Transfer
http://2.bp.blogspot.com/-ulj8GyBrkSw/UhGB2RzH4XI/AAAAAAAA1jk/BqdVwUggWG4/w1200-h630-p-k-no-nu/%E2%88%A033%CB%9A_Outlet_Socket_Plug_Concept_1.jpg
Resource
Posts
Comments
Users
CreateAccount
RemoveDirectory
VerifyEmailAddress
Resources
Posts
Comments
Users
CreateAccount
RemoveDirectory
VerifyEmailAddress
Resources
Posts
Comments
Users
CreateAccount
RemoveDirectory
VerifyEmailAddress
Resources
Posts
Comments
Users
CreateAccount
RemoveDirectory
VerifyEmailAddress
Resources
RPC :(
/posts
Collection Resource
/posts ⇒ [ {…}, {…}, {…}, …]
Collection Resource
/posts/abc123
Instance Resource
/posts/abc123 ⇒ {…}
Instance Resource
Behaviour
Behaviour
GET - POST - PUT - DELETE
POST
POST /posts
{
...
}
POST
POST /posts
{
"title": "Api Workshop!",
"body": "..."
}
POST
POST /posts
{
"title": "Api Workshop!",
"body": "..."
}
Response
HTTP 201 Created
Location: /posts/abc123
POST
GET
GET /posts
GET (Collection)
GET /posts
Response
HTTP 200 Ok
[
…
]
GET (Collection)
HTTP 200 Ok
[
{
"self": "/posts/abc123",
"title": "Api Workshop!",
"body": "..."
}, {
"self": "/posts/efg456",
"title": "...",
"body": "..."
},
…
]
GET (Collection)
GET /posts/abc123
GET (Instance)
HTTP 200 Ok
{
"self": "/posts/abc123",
"title": "Api Workshop!",
"body": "..."
}
GET (Instance)
HTTP 200 Ok
{
"self": "/posts/abc123",
"title": "Api Workshop!",
"body": "...",
"comments": [
{ "self": "/posts/abc123/comments/1" },
{ "self": "/posts/abc123/comments/2" },
{ "self": "/posts/abc123/comments/3" }
]
}
GET (Instance)
DELETE
DELETE /posts/abc123
DELETE
DELETE /posts/abc123
Response
HTTP 204 No Content
DELETE
PUT
PUT /posts/abc123
{
"title": "Updated Api Workshop!",
"body": ...
}
PUT (update)
PUT /posts/abc123
...
Response
HTTP 200 Ok
{
"self": "/posts/abc123",
"title": "Updated Api Workshop!",
"body": "..."
}
PUT (update)
PUT /posts/abc123
...
Response
HTTP 204 No Content
PUT (update)
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=====================================================================================
=================================================================
Idempotent
GET - PUT - DELETE
POST /posts/abc123
{
"title": "NEW Api Workshop!"
}
POST (partial update)
POST /posts/abc123
{
"title": "NEW Api Workshop!"
}
Response
HTTP 200 Ok
{
"self": "/posts/abc123",
"title": "NEW Api Workshop!",
"body": "..."
}
POST (partial update)
PATCH
DESIGN
http://georgianhome.ge/uploads/16/d85142b1389baddb13865c98d49d4828.jpg
BASE URL
https://api.domain.com
https://domain.com/others/services/api/rest
Base URL
HTTPS, please
VERSIONING
URL
https://api.domain.com/v1
Media type
application/json;v=1
Versioning
MEDIA TYPES
Content-Type: application/json
Media types
Content-Type: application/json
Content-Type: application/user+json
Content-Type: application/post+json
Media types
/posts/abc123.json
/posts/abc123.xml
Media types
LETTER CASES
{
"self": "/users/123",
"user_name": "John Doe",
}
{
"self": "/users/123",
"userName": "John Doe",
}
Letter cases
TIMESTAMPS
ISO 8601
{
"self": "/users/123",
"createdAt": "2016-01-03T03:41:52.212Z",
}
Timestamps
http://housesclarksvilletn.com/wp-content/uploads/2014/07/Blueprint.jpg
UTC!
ERRORS
HTTP 409 Conflict
Errors
HTTP 409 Conflict
{
"status": 409,
"message": "The username is taken."
}
Errors
HTTP 409 Conflict
{
"status": 409,
"message": "The username is taken.",
"devMessage": "The field 'username' must be unique.",
"property": "username",
"info": "https://api.dev/info/asb32321213"
}
Errors
RESPONSE
BODY
HTTP 200 Ok
{
"self": "/posts/abc123",
"title": "NEW Api Workshop!",
"body": "..."
}
Response body
HTTP 200 Ok
{
"self": "/posts/abc123",
"title": "NEW Api Workshop!",
"body": "..."
}
?_body=false
Response body
REFERENCE
EXPANSION
GET /users/123
{
"self": "/users/123",
"name": "John Doe",
"posts": [
{ "self": "/posts/abc123" },
{ "self": "/posts/def456" }
]
}
Reference expansion
GET /users/123?expand=posts
{
"self": "/users/123",
"name": "John Doe",
"posts": [
{ "self": "/posts/abc123", "title": "...", ... },
{ "self": "/posts/def456", "title": "...", ... }
]
}
Reference expansion
PARTIAL
REPRESENTATION
GET /users/123
{
"self": "/users/123",
"name": "John Doe",
"posts": [
{ "self": "/posts/abc123" },
{ "self": "/posts/def456" }
]
}
Partial representation
GET /users/123?fields=name,posts(title)
{
"self": "/users/123",
"name": "John Doe",
"posts": [
{ "self": "/posts/abc123", "title": "..." },
{ "self": "/posts/def456", "title": "..." }
]
}
Partial representation
http://c12.incisozluk.com.tr/res/incisozluk//11501/7/1371987_od88f.jpg
GET /users/123?fields=name,posts(title)
{
"self": "/users/123",
"name": "John Doe",
"posts": [
{ "self": "/posts/abc123", "title": "..." },
{ "self": "/posts/def456", "title": "..." }
]
}
Partial representation
Structure?
http://housesclarksvilletn.com/wp-content/uploads/2014/07/Blueprint.jpg
GET /users/123?fields=name,posts(title)
{
"self": "/users/123",
"name": "John Doe",
"posts": [
{ "self": "/posts/abc123", "title": "..." },
{ "self": "/posts/def456", "title": "..." }
]
}
Partial representation
GraphQL
https://c8.staticflickr.com/3/2920/14498140679_cd2f68f4b4_b.jpg
TYPE SYSTEM
type Post {
title: String
body: String
comments: [Comment]
}
Type system
type Post {
title: String
body: String
comments: [Comment]
}
type Comment {
post: Post
text: String
}
Type system
type Post {
title: String
body: String
comments: [Comment]
}
type Comment {
post: Post
text: String
}
Type system
QUERIES
{
posts {
title
comments {
text
}
}
}
Queries
{
posts {
title
comments {
text
}
}
}
Queries
{
"data": [
{
"title": "Api Workshop!",
"comments": [
{ "text": "..." },
{ "text": "..." }
]
}
// ...
]
}
{
posts(id: "abc123") {
title
comments {
text
}
}
}
Queries
{
"data": {
"title": "Api Workshop!",
"comments": [
{ "text": "..." },
{ "text": "..." }
]
}
}
REQUESTS
/graphql
Endpoint
GET /graphql?query={post(id:"abc123"){title}}
GET
Content-Type: application/json
POST
POST /graphql
{
"query": "{post(id:"abc123"){title}}"
}
POST
http://c12.incisozluk.com.tr/res/incisozluk//11501/7/1371987_od88f.jpg
APIs ♥
DISEÑO Y
DESARROLLO
DE APIS
Workshop de
http://cdn.traveler.es/uploads/images/thumbs/201408/9_locuras_del_skyline_de_londres_737368666_1200x798.jpg
#PosadasTechIng. Raúl Neis

More Related Content

What's hot

Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud Castles
Ben Scofield
 
Build restful ap is with python and flask
Build restful ap is with python and flaskBuild restful ap is with python and flask
Build restful ap is with python and flask
Jeetendra singh
 
Complex Sites with Silex
Complex Sites with SilexComplex Sites with Silex
Complex Sites with Silex
Chris Tankersley
 
With a Mighty Hammer
With a Mighty HammerWith a Mighty Hammer
With a Mighty Hammer
Ben Scofield
 
New PHP Exploitation Techniques
New PHP Exploitation TechniquesNew PHP Exploitation Techniques
New PHP Exploitation Techniques
RIPS Technologies GmbH
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers Steal
Ben Scofield
 
Building Cloud Castles - LRUG
Building Cloud Castles - LRUGBuilding Cloud Castles - LRUG
Building Cloud Castles - LRUG
Ben Scofield
 
To Batch Or Not To Batch
To Batch Or Not To BatchTo Batch Or Not To Batch
To Batch Or Not To Batch
Luca Mearelli
 
Silex Cheat Sheet
Silex Cheat SheetSilex Cheat Sheet
Silex Cheat Sheet
Andréia Bohner
 
Controlling The Cloud With Python
Controlling The Cloud With PythonControlling The Cloud With Python
Controlling The Cloud With Python
Luca Mearelli
 
Keeping it Small: Getting to know the Slim Micro Framework
Keeping it Small: Getting to know the Slim Micro FrameworkKeeping it Small: Getting to know the Slim Micro Framework
Keeping it Small: Getting to know the Slim Micro Framework
Jeremy Kendall
 
And the Greatest of These Is ... Rack Support
And the Greatest of These Is ... Rack SupportAnd the Greatest of These Is ... Rack Support
And the Greatest of These Is ... Rack Support
Ben Scofield
 
Effective ES6
Effective ES6Effective ES6
Effective ES6
Teppei Sato
 
Adding ES6 to Your Developer Toolbox
Adding ES6 to Your Developer ToolboxAdding ES6 to Your Developer Toolbox
Adding ES6 to Your Developer Toolbox
Jeff Strauss
 
PhpSpec extension points
PhpSpec extension pointsPhpSpec extension points
PhpSpec extension points
Norbert Orzechowicz
 
Getting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascriptGetting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascript
Mohd Saeed
 
The road to Ember.js 2.0
The road to Ember.js 2.0The road to Ember.js 2.0
The road to Ember.js 2.0
Codemotion
 
Flask Introduction - Python Meetup
Flask Introduction - Python MeetupFlask Introduction - Python Meetup
Flask Introduction - Python Meetup
Areski Belaid
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js framework
Ben Lin
 
用Tornado开发RESTful API运用
用Tornado开发RESTful API运用用Tornado开发RESTful API运用
用Tornado开发RESTful API运用
Felinx Lee
 

What's hot (20)

Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud Castles
 
Build restful ap is with python and flask
Build restful ap is with python and flaskBuild restful ap is with python and flask
Build restful ap is with python and flask
 
Complex Sites with Silex
Complex Sites with SilexComplex Sites with Silex
Complex Sites with Silex
 
With a Mighty Hammer
With a Mighty HammerWith a Mighty Hammer
With a Mighty Hammer
 
New PHP Exploitation Techniques
New PHP Exploitation TechniquesNew PHP Exploitation Techniques
New PHP Exploitation Techniques
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers Steal
 
Building Cloud Castles - LRUG
Building Cloud Castles - LRUGBuilding Cloud Castles - LRUG
Building Cloud Castles - LRUG
 
To Batch Or Not To Batch
To Batch Or Not To BatchTo Batch Or Not To Batch
To Batch Or Not To Batch
 
Silex Cheat Sheet
Silex Cheat SheetSilex Cheat Sheet
Silex Cheat Sheet
 
Controlling The Cloud With Python
Controlling The Cloud With PythonControlling The Cloud With Python
Controlling The Cloud With Python
 
Keeping it Small: Getting to know the Slim Micro Framework
Keeping it Small: Getting to know the Slim Micro FrameworkKeeping it Small: Getting to know the Slim Micro Framework
Keeping it Small: Getting to know the Slim Micro Framework
 
And the Greatest of These Is ... Rack Support
And the Greatest of These Is ... Rack SupportAnd the Greatest of These Is ... Rack Support
And the Greatest of These Is ... Rack Support
 
Effective ES6
Effective ES6Effective ES6
Effective ES6
 
Adding ES6 to Your Developer Toolbox
Adding ES6 to Your Developer ToolboxAdding ES6 to Your Developer Toolbox
Adding ES6 to Your Developer Toolbox
 
PhpSpec extension points
PhpSpec extension pointsPhpSpec extension points
PhpSpec extension points
 
Getting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascriptGetting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascript
 
The road to Ember.js 2.0
The road to Ember.js 2.0The road to Ember.js 2.0
The road to Ember.js 2.0
 
Flask Introduction - Python Meetup
Flask Introduction - Python MeetupFlask Introduction - Python Meetup
Flask Introduction - Python Meetup
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js framework
 
用Tornado开发RESTful API运用
用Tornado开发RESTful API运用用Tornado开发RESTful API运用
用Tornado开发RESTful API运用
 

Similar to Diseño y Desarrollo de APIs

A Blueprint for Scala Microservices
A Blueprint for Scala MicroservicesA Blueprint for Scala Microservices
A Blueprint for Scala Microservices
Federico Feroldi
 
Federico Feroldi - Scala microservices
Federico Feroldi - Scala microservicesFederico Feroldi - Scala microservices
Federico Feroldi - Scala microservices
Scala Italy
 
Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"
Fwdays
 
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
 Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data... Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
Big Data Spain
 
Prompt engineering for iOS developers (How LLMs and GenAI work)
Prompt engineering for iOS developers (How LLMs and GenAI work)Prompt engineering for iOS developers (How LLMs and GenAI work)
Prompt engineering for iOS developers (How LLMs and GenAI work)
Andrey Volobuev
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
Dylan Jay
 
Quick Fetch API Introduction
Quick Fetch API IntroductionQuick Fetch API Introduction
Quick Fetch API Introduction
Chris Love
 
Socket.IO
Socket.IOSocket.IO
Socket.IO
Arnout Kazemier
 
Protocol-Oriented Programming in Swift
Protocol-Oriented Programming in SwiftProtocol-Oriented Programming in Swift
Protocol-Oriented Programming in Swift
Oleksandr Stepanov
 
Revolution or Evolution in Page Object
Revolution or Evolution in Page ObjectRevolution or Evolution in Page Object
Revolution or Evolution in Page Object
Artem Sokovets
 
Apache Aries Blog Sample
Apache Aries Blog SampleApache Aries Blog Sample
Apache Aries Blog Sample
Skills Matter
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
scalaconfjp
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014
Ngoc Dao
 
Scala & sling
Scala & slingScala & sling
Scala & sling
michid
 
JavaScript Web Development
JavaScript Web DevelopmentJavaScript Web Development
JavaScript Web Development
vito jeng
 
Using WordPress as your application stack
Using WordPress as your application stackUsing WordPress as your application stack
Using WordPress as your application stack
Paul Bearne
 
Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
Hyun-Mook Choi
 
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryRemedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Tatsuhiko Miyagawa
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Roman Kirillov
 
Hammock, a Good Place to Rest
Hammock, a Good Place to RestHammock, a Good Place to Rest
Hammock, a Good Place to Rest
Stratoscale
 

Similar to Diseño y Desarrollo de APIs (20)

A Blueprint for Scala Microservices
A Blueprint for Scala MicroservicesA Blueprint for Scala Microservices
A Blueprint for Scala Microservices
 
Federico Feroldi - Scala microservices
Federico Feroldi - Scala microservicesFederico Feroldi - Scala microservices
Federico Feroldi - Scala microservices
 
Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"
 
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
 Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data... Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
 
Prompt engineering for iOS developers (How LLMs and GenAI work)
Prompt engineering for iOS developers (How LLMs and GenAI work)Prompt engineering for iOS developers (How LLMs and GenAI work)
Prompt engineering for iOS developers (How LLMs and GenAI work)
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
 
Quick Fetch API Introduction
Quick Fetch API IntroductionQuick Fetch API Introduction
Quick Fetch API Introduction
 
Socket.IO
Socket.IOSocket.IO
Socket.IO
 
Protocol-Oriented Programming in Swift
Protocol-Oriented Programming in SwiftProtocol-Oriented Programming in Swift
Protocol-Oriented Programming in Swift
 
Revolution or Evolution in Page Object
Revolution or Evolution in Page ObjectRevolution or Evolution in Page Object
Revolution or Evolution in Page Object
 
Apache Aries Blog Sample
Apache Aries Blog SampleApache Aries Blog Sample
Apache Aries Blog Sample
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014
 
Scala & sling
Scala & slingScala & sling
Scala & sling
 
JavaScript Web Development
JavaScript Web DevelopmentJavaScript Web Development
JavaScript Web Development
 
Using WordPress as your application stack
Using WordPress as your application stackUsing WordPress as your application stack
Using WordPress as your application stack
 
Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
 
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryRemedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
 
Hammock, a Good Place to Rest
Hammock, a Good Place to RestHammock, a Good Place to Rest
Hammock, a Good Place to Rest
 

Recently uploaded

E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 

Recently uploaded (20)

E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 

Diseño y Desarrollo de APIs