SlideShare a Scribd company logo
1 of 54
Download to read offline
RESTful Arch
Benjamin Tan
1
about
• Benjamin Tan
• @tanbamboo
• github.com/tanbamboo
2
agenda
• Lesson 1
• what?
• why?
• Lesson 2
• how?
• how? in Java(using JAX-RS)
• Lesson 3
• good practice? bad practice?
• more?
3
what?
• what is REST? what is RESTful arch?
4
what?
• Representational state transfer (REST) is a style
of software architecture for distributed systems
such as the World Wide Web. REST has
emerged as a predominant web API design
model.
• Representational State
Transfer REST Roy Fielding
2000
5
the Author of REST
• Fielding HTTP 1.0
1.1 Apache
Apache
•
• REST
6
REST Triangle
• /nouns
• /verbs
• /content
types
7
/Resources
• REST " " " "
" " Resources " "
• " "
•
• URI
URI
• URI URI
8
• HTTP
• GET
• POST
• PUT
• DELETE
• HEAD OPTIONS CONNECT
TRACE
9
/Representation
• " "
• " " " /
/Representation"
• txt HTML
XML JSON
JPG PNG
• URI
10
key goals
• Scalability of component interactions
• Generality of interfaces
• Independent deployment of components
• Intermediary components to reduce
latency, enforce security and encapsulate
legacy systems
11
Constraints
• Client–server
• Stateless
• Cacheable
• Layered system
• Code on demand (optional)
• Uniform interface
12
• REST REST HTTP
URI XML HTML
• URI
•
HTTP GET POST PUT DELETE
•
• XML HTML
web web
13
REST
• HTTP
•
•
• REST
14
HATEOAS
•
15
REST Data Elements
• Resource - the intended conceptual target of a
hypertext reference
• Resource identifier – URL, URN
• Representation – HTML document, JPEG image
• Representation metadata – media type, last-
modified time
• Resource metadata – source link, alternates, vary
• Control data – if-modified-since, cache-control
16
REST Connectors
• Client - libwww, libwww-perl
• Server - libwww,Apache API, NSAPI
• Cache - browser cache,Akamai cache
network
• Resolver - bind (DNS lookup library)
• Tunnel - SOCKS, SSL after HTTP
CONNECT
17
REST Components
• User Agent – Netscape Navigator, Lynx,
MOMspider
• Origin Server – Apache httpd, Microsoft
IIS
• Gateway - Squid, CGI, Reverse Proxy
• Proxy - CERN Proxy, Netscape Proxy,
Gauntlet
18
why?
19
style design
20
REST
• Cache
•
•
• HTTP REST
•
•
21
network application
style
• / (MQ WebSocket)
• (P2P ZooKeeper)
• /
22
•
• The PUT and DELETE methods are
idempotent methods.
• The GET method is a safe method (or
nullipotent), meaning that calling it
23
Samples broken
Idempotent
• WebScan
• Robot
• http://stackoverflow.com/questions/
10519064/why-is-using-a-http-get-to-
update-state-on-the-server-in-a-restful-
call-incorrec
24
RESTful & Cloud
•
• RESTful API
• AWS API
• Twitter API
• http://www.infoq.com/news/2011/01/rest-
cloud
25
RESTful & SOA
26
RESTful & RIA
•
• RIA+REST
REST
27
RESTful & Mobile
28
Open Question?
• RESTful WAF
?
• RESTful LB ?
• RESTful CDN
?
29
the philosophy of
design
•
30
how?
31
Guiding principles of
the interface
• The uniform interface that any REST interface must provide is considered fundamental to the design of
any REST service.
• Identification of resources
• Individual resources are identified in requests, for example using URIs in web-based REST systems.
The resources themselves are conceptually separate from the representations that are returned
to the client. For example, the server does not send its database, but rather, perhaps, some HTML,
XML or JSON that represents some database records expressed, for instance, in Swahili and
encoded in UTF-8, depending on the details of the request and the server implementation.
• Manipulation of resources through these representations
• When a client holds a representation of a resource, including any metadata attached, it has enough
information to modify or delete the resource on the server, provided it has permission to do so.
• Self-descriptive messages
• Each message includes enough information to describe how to process the message. For example,
which parser to invoke may be specified by an Internet media type (previously known as a MIME
type). Responses also explicitly indicate their cacheability.[1]
• Hypermedia as the engine of application state (aka HATEOAS)
• Clients make state transitions only through actions that are dynamically identified within
hypermedia by the server (e.g., by hyperlinks within hypertext). Except for simple fixed entry
points to the application, a client does not assume that any particular action is available for any
particular resources beyond those described in representations previously received from the
server.
32
RESTful
•
• Resource-based vs.Action-based
•
•
33
HTTP
34
35
Cache
• Proxy
• Expires Cache-Control
• Last-Modified ETag
• 304 (Not Modified)
36
in one stentence
• REST is everywhere. It is the part of the web
that makes it work well. If you want to build
distributed applications that can scale like
the web, be resilient to change like the web
and promote re-use as the web has done,
then follow the same rules they did when
building web browsers.
• http://stackoverflow.com/questions/1368014/
why-do-we-need-restful-web-services
37
Good Practices
• Map your API model to the way your
data is consumed, not your data/object
model.
• Meaningful error messages help a lot.
• Providing solid API documentation
reduces need for external help.
• Use an appropriate security APIs.
38
bad practices
• Chatty APIs suck.
• Returning HTML in response.
• Failing to realize that a 4xx error means I
messed up and a 5xx means you messed
up
• Side-effects to 500 errors are evil.
• http://broadcast.oreilly.com/2011/06/the-
39
how? in Java
(using JAX-RS)
40
JAX-RS
• JSR 311: JAX-RS:The Java API for RESTful Web Services
• Java EE 6 JSR-311 JSR-311
Java
REST
• JSR 339: JAX-RS 2.0
• Java EE 7 with JAX-RS 2.0 brings several useful features,
which further simplify development and lead to the
creation of even more-sophisticated, but lean, Java SE/EE
RESTful applications.
41
JAX-RS API
<dependency>	
				<groupId>javax.ws.rs</groupId>	
				<artifactId>javax.ws.rs-api</artifactId>	
				<version>2.0</version>	
</dependency>	
<dependency>	
				<groupId>javax.ws.rs</groupId>	
				<artifactId>jsr311-api</artifactId>	
				<version>1.1.1</version>	
</dependency>
42
JAX-RS
• @POST @GET @PUT
@DELETE 4 HTTP
• @Path
43
JAX-RS
• JAX-RS Resource
@PathParam @MatrixParam @QueryParam
@FormParam @HeaderParam
@CookieParam @DefaultValue @Encoded
• @PathParam
@Path
44
JAX-RS
• Web
Content Negotiation
• Resource @Produces
MIME @Consumes
• Accept Content-
Type
• JAX-RS MessageBodyReader MessageBodyWriter
XML / Java JAXB
• @Provider MessageBodyProvider
45
JAX-RS
• Jersey
• JBoos Resteasy
• Apache Wink
• Play! Framework
46
JAX-RS
• Spring @MVC
• Restlet
47
how? other languages
• Rails(ruby)
• Sinatra(ruby)
• Tornado Web(python)
• Django REST(python)
• spray(scala)
• More RESTful frameworks:
• https://code.google.com/p/implementing-rest/
wiki/RESTFrameworks
48
more?
49
• HTTP
WebSockets REST
• REST
• SSL/TLS REST WS-Sec*
REST SSL
REST REST
• REST QoS
“ ”
50
API versioning
• API REST
51
POST
• post
•
52
reference 1
1.http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
2.http://www.redsaga.com/opendoc/REST_cn.pdf
3.https://en.wikipedia.org/wiki/REST
4.https://zh.wikipedia.org/wiki/REST
5.http://www.w3.org/Protocols/rfc2616/rfc2616.html
6.http://www.infoq.com/cn/rest
7.http://www.infoq.com/cn/minibooks/restful-web-services-cookbook-cn
8.https://jax-rs-spec.java.net/
9.http://jcp.org/en/jsr/detail?id=339
10.https://zh.wikipedia.org/wiki/JAX-RS
11.http://www.ibm.com/developerworks/cn/java/j-lo-jaxrs/
12.https://jersey.java.net/
13.http://www.slideshare.net/landlessness/teach-a-dog-to-rest
53
reference 2
1.http://www.jboss.org/resteasy
2.http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/
3.http://restlet.org/
4.http://www.infoq.com/cn/news/2008/10/jaxrs-comparison
5.http://www.infoq.com/news/2013/05/rest-drawbacks
6.http://www.infoq.com/cn/news/2013/06/rest-drawbacks
7.http://www.infoq.com/cn/articles/webber-rest-workflow
8.http://restfulobjects.org/
9.http://www.infoq.com/cn/interviews/robinson-webber-rest-cn
10.http://aws.amazon.com/cn/s3/
11.http://tools.ietf.org/html/rfc2046
12.http://www.iana.org/assignments/media-types
13.http://blog.toright.com/archives/725
54

More Related Content

What's hot

Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQPolyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQChristian Posta
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO Christian Posta
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...J V
 
High Volume Web API Management with WSO2 ESB
High Volume Web API Management with WSO2 ESBHigh Volume Web API Management with WSO2 ESB
High Volume Web API Management with WSO2 ESBWSO2
 
Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Bhakti Mehta
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBYuval Ararat
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Michel Schildmeijer
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postvamsi krishna
 
File System On Steroids
File System On SteroidsFile System On Steroids
File System On SteroidsJukka Zitting
 
Weblogic configuration & administration
Weblogic   configuration & administrationWeblogic   configuration & administration
Weblogic configuration & administrationMuhammad Mansoor
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootMichel Schildmeijer
 
Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2Christian Posta
 
WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013Michel Schildmeijer
 
WebLogic Administration course outline
WebLogic Administration course outlineWebLogic Administration course outline
WebLogic Administration course outlineVybhava Technologies
 
WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewJames Bayer
 

What's hot (20)

Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQPolyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
High Volume Web API Management with WSO2 ESB
High Volume Web API Management with WSO2 ESBHigh Volume Web API Management with WSO2 ESB
High Volume Web API Management with WSO2 ESB
 
Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,post
 
File System On Steroids
File System On SteroidsFile System On Steroids
File System On Steroids
 
Weblogic configuration & administration
Weblogic   configuration & administrationWeblogic   configuration & administration
Weblogic configuration & administration
 
Weblogic - clustering failover, and load balancing
Weblogic - clustering failover, and load balancingWeblogic - clustering failover, and load balancing
Weblogic - clustering failover, and load balancing
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
 
Jakarta EE 8 on JDK17
Jakarta EE 8 on JDK17Jakarta EE 8 on JDK17
Jakarta EE 8 on JDK17
 
Git preso to valtech cfml team
Git preso to valtech cfml teamGit preso to valtech cfml team
Git preso to valtech cfml team
 
Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2
 
Flywaydb
FlywaydbFlywaydb
Flywaydb
 
On being RESTful
On being RESTfulOn being RESTful
On being RESTful
 
WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013
 
WebLogic Administration course outline
WebLogic Administration course outlineWebLogic Administration course outline
WebLogic Administration course outline
 
WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool Overview
 

Viewers also liked

BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCEBE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCEVicky Aryan
 
148indianmobileinitiatifinal20110406 110408083717-phpapp02
148indianmobileinitiatifinal20110406 110408083717-phpapp02148indianmobileinitiatifinal20110406 110408083717-phpapp02
148indianmobileinitiatifinal20110406 110408083717-phpapp02Rovin Cutinho
 
LM_MAHAMMAD_GOUSE_CV_Jul15
LM_MAHAMMAD_GOUSE_CV_Jul15LM_MAHAMMAD_GOUSE_CV_Jul15
LM_MAHAMMAD_GOUSE_CV_Jul15Gouse Lmd
 
Profitable Sustainability
Profitable SustainabilityProfitable Sustainability
Profitable SustainabilityChris Peart
 
Violin Memory DOAG (German Oracle User Group) Nov 2012
Violin Memory DOAG (German Oracle User Group) Nov 2012Violin Memory DOAG (German Oracle User Group) Nov 2012
Violin Memory DOAG (German Oracle User Group) Nov 2012Jack O'Brien
 
Compliance Management Software
Compliance Management SoftwareCompliance Management Software
Compliance Management SoftwareCompliance Mantra
 
Certificate Of Participation
Certificate Of ParticipationCertificate Of Participation
Certificate Of ParticipationAnant Pradhan
 
The five graphs of telecommunications may 22 2013 webinar final
The five graphs of telecommunications may 22 2013 webinar finalThe five graphs of telecommunications may 22 2013 webinar final
The five graphs of telecommunications may 22 2013 webinar finalNeo4j
 
Score your Goals, Leave Password Management to us!
Score your Goals, Leave Password Management to us!Score your Goals, Leave Password Management to us!
Score your Goals, Leave Password Management to us!ILANTUS Technologies
 
Pradeep_iOS_Developer
Pradeep_iOS_DeveloperPradeep_iOS_Developer
Pradeep_iOS_DeveloperPradeep kn
 
Business process reengineering
Business process reengineeringBusiness process reengineering
Business process reengineeringDhana Lakshmi
 

Viewers also liked (20)

BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCEBE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
 
MiDulceLocura y EmporioDianora
MiDulceLocura y EmporioDianoraMiDulceLocura y EmporioDianora
MiDulceLocura y EmporioDianora
 
148indianmobileinitiatifinal20110406 110408083717-phpapp02
148indianmobileinitiatifinal20110406 110408083717-phpapp02148indianmobileinitiatifinal20110406 110408083717-phpapp02
148indianmobileinitiatifinal20110406 110408083717-phpapp02
 
GoToMeetings
GoToMeetingsGoToMeetings
GoToMeetings
 
Агман Забуровна
Агман ЗабуровнаАгман Забуровна
Агман Забуровна
 
LM_MAHAMMAD_GOUSE_CV_Jul15
LM_MAHAMMAD_GOUSE_CV_Jul15LM_MAHAMMAD_GOUSE_CV_Jul15
LM_MAHAMMAD_GOUSE_CV_Jul15
 
TLC
TLCTLC
TLC
 
Profitable Sustainability
Profitable SustainabilityProfitable Sustainability
Profitable Sustainability
 
Violin Memory DOAG (German Oracle User Group) Nov 2012
Violin Memory DOAG (German Oracle User Group) Nov 2012Violin Memory DOAG (German Oracle User Group) Nov 2012
Violin Memory DOAG (German Oracle User Group) Nov 2012
 
Pragadees Resume
Pragadees ResumePragadees Resume
Pragadees Resume
 
Compliance Management Software
Compliance Management SoftwareCompliance Management Software
Compliance Management Software
 
Certificate Of Participation
Certificate Of ParticipationCertificate Of Participation
Certificate Of Participation
 
The five graphs of telecommunications may 22 2013 webinar final
The five graphs of telecommunications may 22 2013 webinar finalThe five graphs of telecommunications may 22 2013 webinar final
The five graphs of telecommunications may 22 2013 webinar final
 
One night at the call center by chetan bhagat
One night at the call center by chetan bhagatOne night at the call center by chetan bhagat
One night at the call center by chetan bhagat
 
Score your Goals, Leave Password Management to us!
Score your Goals, Leave Password Management to us!Score your Goals, Leave Password Management to us!
Score your Goals, Leave Password Management to us!
 
Pradeep_iOS_Developer
Pradeep_iOS_DeveloperPradeep_iOS_Developer
Pradeep_iOS_Developer
 
Test PPT
Test PPTTest PPT
Test PPT
 
Presentation EOI - Apps & Tech 2.0
Presentation EOI - Apps & Tech 2.0Presentation EOI - Apps & Tech 2.0
Presentation EOI - Apps & Tech 2.0
 
Wedding Invite
Wedding InviteWedding Invite
Wedding Invite
 
Business process reengineering
Business process reengineeringBusiness process reengineering
Business process reengineering
 

Similar to Restful风格ž„web服务架构

RESTful web
RESTful webRESTful web
RESTful webAlvin Qi
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferaydaveayan
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftRX-M Enterprises LLC
 
REST Methodologies
REST MethodologiesREST Methodologies
REST Methodologiesjrodbx
 
Enjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web APIEnjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web APIKevin Hazzard
 
Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?Cask Data
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API RecommendationsJeelani Shaik
 
Coding 100-session-slides
Coding 100-session-slidesCoding 100-session-slides
Coding 100-session-slidesCisco DevNet
 
Cross-platform interaction
Cross-platform interactionCross-platform interaction
Cross-platform interactionOleksii Duhno
 
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesomeClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesomeMetosin Oy
 

Similar to Restful风格ž„web服务架构 (20)

RESTful web
RESTful webRESTful web
RESTful web
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache Thrift
 
REST Methodologies
REST MethodologiesREST Methodologies
REST Methodologies
 
Enjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web APIEnjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web API
 
Web APIs
Web APIsWeb APIs
Web APIs
 
Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?
 
REST APIs
REST APIsREST APIs
REST APIs
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API Recommendations
 
Coding 100-session-slides
Coding 100-session-slidesCoding 100-session-slides
Coding 100-session-slides
 
Cross-platform interaction
Cross-platform interactionCross-platform interaction
Cross-platform interaction
 
Api crash
Api crashApi crash
Api crash
 
Api crash
Api crashApi crash
Api crash
 
Api crash
Api crashApi crash
Api crash
 
Api crash
Api crashApi crash
Api crash
 
Api crash
Api crashApi crash
Api crash
 
Api crash
Api crashApi crash
Api crash
 
Api crash
Api crashApi crash
Api crash
 
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesomeClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
 

Recently uploaded

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Restful风格ž„web服务架构