SlideShare ist ein Scribd-Unternehmen logo
1 von 102
API                      1
                              7
Best Practises                JUNI
                              2011




 PRESENTED BY ANDREAS KROHN
Agenda
Agenda
         1   DEFINE THE GOAL
Agenda
         1   DEFINE THE GOAL




         2
         THE DEVELOPERS ROLE
Agenda
         1
         DEFINE THE GOAL




         2
         THE DEVELOPERS ROLE




         3
         WHAT IS NEEDED FOR A SUCCESSFUL API
Goal
Goal
       ‣ The most
        technically perfect
        API known to man
Goal
       ‣ The most
        technically perfect
        API known to man
Goal
       ‣ The most
         technically perfect
         API known to man
       ‣ API that fulfills
         business
         requirements
Needed
for
Success
Needed
for
Success
          API
Needed
for
Success
          DISCOVER
                     API
Needed               VALUE

for
Success
          DISCOVER
                       API
Needed               VALUE

for
Success                      TECHNOLOGY

          DISCOVER
                       API
Needed               VALUE

for
Success                      TECHNOLOGY

          DISCOVER
                       API


                             GET STARTED
Needed               VALUE

for
Success                            TECHNOLOGY

          DISCOVER
                        API


                                   GET STARTED


                     PREDICTABLE
Needed               VALUE

for
Success                            TECHNOLOGY

          DISCOVER
                        API


          SCALE                    GET STARTED


                     PREDICTABLE
Needed                 VALUE

for
Success                            TECHNOLOGY
          DISCOVER
                         API


          SCALE                     GET STARTED


                     PREDICTABLE
Discover



Build it and
they will come
Discover
                 Nothing is free




Build it and
they will come
Discover
                    Nothing is free




Build it and     Marketing strategy
they will come
Value
Value
        Valuable data
Value
        Valuable data




           Valuable
         functionality
Value
          Valuable data




             Valuable
           functionality




        Path to success
Technolog
y
Technolog
y            De facto
            standards
Technolog
y            De facto
            standards




              Fits the
               target
             developers
Technolog
y            De facto
            standards




              Fits the
               target
             developers

            Fits the use
                case
Resources



“ROA”
Resources
            ‣ REST


“ROA”
Resources
            ‣ REST
            ‣ Resource = data
             with a state
“ROA”
Resources
            ‣ REST
            ‣ Resource = data
              with a state
“ROA”       ‣ Linkable
api.booli.se/listing/Uppsala
api.booli.se/listing/Uppsala
api.runkeeper.com/user/
api.booli.se/listing/Uppsala
api.runkeeper.com/user/
api.linkedin.com/v1/companies/162479
Data
formats
Data
formats   JSON
Data
formats   JSON




          XML
Data
formats   JSON




          XML




          JSONP
api.twitter.com/.../public_timeline.json
api.twitter.com/.../public_timeline.json
api.twitter.com/.../public_timeline.xml
api.twitter.com/.../public_timeline.json
api.twitter.com/.../public_timeline.xml
api.twitter.com/.../public_timeline.rss
api.twitter.com/.../public_timeline.json
api.twitter.com/.../public_timeline.xml
api.twitter.com/.../public_timeline.rss
api.twitter.com/.../public_timeline.atom
Security
Security
           HTTPS
Security
           HTTPS




           OAuth
Security
           HTTPS




           OAuth




           API Keys
HTTP is your
friend
Methods



HTTP is your friend
Methods


                      HTTP
HTTP is your friend
Methods
                      GET




                      HTTP
HTTP is your friend
Methods
                      GET




                      HTTP   POST


HTTP is your friend
Methods
                            GET




                            HTTP   POST
                      PUT
HTTP is your friend
Methods
                            GET




                            HTTP           POST
                      PUT
HTTP is your friend




                                  DELETE
Status
Codes


HTTP is your friend
Status
Codes

                      HTTP
HTTP is your friend
Status
Codes                 200 OK




                      HTTP
HTTP is your friend
Status
Codes                                   200 OK




                                        HTTP
                      400 Bad Request
HTTP is your friend
Status
Codes                                   200 OK




                                        HTTP     401 Unauthorized
                      400 Bad Request
HTTP is your friend
Status
Codes                                   200 OK




                                        HTTP        401 Unauthorized
                      400 Bad Request
HTTP is your friend




                                         405 Method Not Allowed
HTTP
DON’Ts


HTTP is your friend
HTTP
DON’Ts                ‣ Use GET to update/
                       add data


HTTP is your friend
HTTP
DON’Ts                ‣ Use GET to update/
                        add data
                      ‣ Use 200 OK when
                        an error occurs
HTTP is your friend
Get
Started


Remove thresholds
Get
Started             Free and direct




Remove thresholds
Get
Started             Free and direct




                    Documentatio
                         n

Remove thresholds
Get
Started             Free and direct




                     Documentatio
                          n

Remove thresholds
                    Clear terms
                    and pricing
Predictable



No surprises
Predictable
               Predictable
                behavior




No surprises
Predictable
               Predictable
                behavior



                Predictable
               management

No surprises
Predictable
               Predictable
                behavior



                Predictable
               management

No surprises
               Predictable
                upgrades
Versions



Plan for the future
Versions
                      Things change




Plan for the future
Versions
                      Things change



                      Make it easy
                          for
                      developers

Plan for the future
Versions
                      Things change



                      Make it easy
                          for
                      developers

Plan for the future
                        Version in
                           URI
api.twitter.com/1/users/show.json?...
api.twitter.com/1/users/show.json?...
api.linkedin.com/v1/companies/162479
Scale
Scale
        Not unique to
            APIs
Cache is
king
Cache is
king       Server & Client
Cache is
king       Server & Client




           HTTP Caching
Cache is
king       Server & Client




           HTTP Caching



            API Proxy
Traffic



Mo’ traffic,
mo’ problems
Traffic
               Plan for traffic
               & concurrancy




Mo’ traffic,
mo’ problems
Traffic
               Plan for traffic
               & concurrancy



               Rate limits


Mo’ traffic,
mo’ problems
Traffic
               Plan for traffic
               & concurrancy



               Rate limits


Mo’ traffic,
mo’ problems
                 Response
                   times
Needed               VALUE

for
Success                            TECHNOLOGY

          DISCOVER
                        API


          SCALE                    GET STARTED


                     PREDICTABLE
QA
andreas@dopter.se
                    &
                    @andreaskrohn   mashup.se

                THANK YOU!

Weitere ähnliche Inhalte

Was ist angesagt?

AGILE -- YOU CAN GO BIG -- HOW TO DO IT WELL WITH STEVE ADOLPH!
AGILE -- YOU CAN GO BIG -- HOW TO DO IT WELL WITH STEVE ADOLPH!AGILE -- YOU CAN GO BIG -- HOW TO DO IT WELL WITH STEVE ADOLPH!
AGILE -- YOU CAN GO BIG -- HOW TO DO IT WELL WITH STEVE ADOLPH!XBOSoft
 
The Last Mile Continued: Incident Management
The Last Mile Continued: Incident Management The Last Mile Continued: Incident Management
The Last Mile Continued: Incident Management Rundeck
 
Hire India's Top Python Developers: 60% Cost Saving & 2X Faster Delivery
Hire India's Top Python Developers: 60% Cost Saving & 2X Faster DeliveryHire India's Top Python Developers: 60% Cost Saving & 2X Faster Delivery
Hire India's Top Python Developers: 60% Cost Saving & 2X Faster DeliveryPixel Crayons
 
SysAdmin to SRE: Solving the Last Mile Problem
SysAdmin to SRE: Solving the Last Mile ProblemSysAdmin to SRE: Solving the Last Mile Problem
SysAdmin to SRE: Solving the Last Mile ProblemRundeck
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & ReleaseDhaval Patel
 
Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE Rundeck
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...mfrancis
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile TestingApple Chow
 

Was ist angesagt? (11)

AGILE -- YOU CAN GO BIG -- HOW TO DO IT WELL WITH STEVE ADOLPH!
AGILE -- YOU CAN GO BIG -- HOW TO DO IT WELL WITH STEVE ADOLPH!AGILE -- YOU CAN GO BIG -- HOW TO DO IT WELL WITH STEVE ADOLPH!
AGILE -- YOU CAN GO BIG -- HOW TO DO IT WELL WITH STEVE ADOLPH!
 
The Last Mile Continued: Incident Management
The Last Mile Continued: Incident Management The Last Mile Continued: Incident Management
The Last Mile Continued: Incident Management
 
Hire India's Top Python Developers: 60% Cost Saving & 2X Faster Delivery
Hire India's Top Python Developers: 60% Cost Saving & 2X Faster DeliveryHire India's Top Python Developers: 60% Cost Saving & 2X Faster Delivery
Hire India's Top Python Developers: 60% Cost Saving & 2X Faster Delivery
 
Real speaker us
Real speaker usReal speaker us
Real speaker us
 
Final ppt
Final pptFinal ppt
Final ppt
 
SysAdmin to SRE: Solving the Last Mile Problem
SysAdmin to SRE: Solving the Last Mile ProblemSysAdmin to SRE: Solving the Last Mile Problem
SysAdmin to SRE: Solving the Last Mile Problem
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
 
Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile Testing
 
Keynoteof A P I
Keynoteof A P IKeynoteof A P I
Keynoteof A P I
 

Andere mochten auch

Waste Management, Waste Recycling, Waste Treatment & Waste disposal methods, ...
Waste Management, Waste Recycling, Waste Treatment & Waste disposal methods, ...Waste Management, Waste Recycling, Waste Treatment & Waste disposal methods, ...
Waste Management, Waste Recycling, Waste Treatment & Waste disposal methods, ...Ajjay Kumar Gupta
 
solid waste management garbage recycling waste water treatment specialized wa...
solid waste management garbage recycling waste water treatment specialized wa...solid waste management garbage recycling waste water treatment specialized wa...
solid waste management garbage recycling waste water treatment specialized wa...ecoclean
 
Waste & recycling
Waste & recyclingWaste & recycling
Waste & recyclingElisa
 
E-Waste | Electronic Waste PPT
E-Waste | Electronic Waste PPTE-Waste | Electronic Waste PPT
E-Waste | Electronic Waste PPTA M
 
Waste Management
Waste ManagementWaste Management
Waste Managementvishakeb
 

Andere mochten auch (8)

Waste Management, Waste Recycling, Waste Treatment & Waste disposal methods, ...
Waste Management, Waste Recycling, Waste Treatment & Waste disposal methods, ...Waste Management, Waste Recycling, Waste Treatment & Waste disposal methods, ...
Waste Management, Waste Recycling, Waste Treatment & Waste disposal methods, ...
 
solid waste management garbage recycling waste water treatment specialized wa...
solid waste management garbage recycling waste water treatment specialized wa...solid waste management garbage recycling waste water treatment specialized wa...
solid waste management garbage recycling waste water treatment specialized wa...
 
Waste & recycling
Waste & recyclingWaste & recycling
Waste & recycling
 
E-Waste | Electronic Waste PPT
E-Waste | Electronic Waste PPTE-Waste | Electronic Waste PPT
E-Waste | Electronic Waste PPT
 
Proposal on Solid Waste Management
Proposal on Solid Waste ManagementProposal on Solid Waste Management
Proposal on Solid Waste Management
 
Waste Management
Waste ManagementWaste Management
Waste Management
 
Biomedical waste management dr.praveen doddamani
Biomedical waste management dr.praveen doddamaniBiomedical waste management dr.praveen doddamani
Biomedical waste management dr.praveen doddamani
 
Solid waste management ppt
Solid waste management pptSolid waste management ppt
Solid waste management ppt
 

Ähnlich wie Best Practises for Building Successful APIs

Netapp Michael Galpin
Netapp Michael GalpinNetapp Michael Galpin
Netapp Michael Galpinrajivmordani
 
Why are APIs important?
Why are APIs important?Why are APIs important?
Why are APIs important?Andreas Krohn
 
Tech Talk: Monitor the Performance of APIs Across the Application Lifecycle
Tech Talk: Monitor the Performance of APIs Across the Application LifecycleTech Talk: Monitor the Performance of APIs Across the Application Lifecycle
Tech Talk: Monitor the Performance of APIs Across the Application LifecycleCA Technologies
 
Why APIs are important
Why APIs are importantWhy APIs are important
Why APIs are importantAndreas Krohn
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPICrystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPIScott Triglia
 
Whitebox Testing for Blackbox Testers: Simplifying API Testing
Whitebox Testing for Blackbox Testers: Simplifying API TestingWhitebox Testing for Blackbox Testers: Simplifying API Testing
Whitebox Testing for Blackbox Testers: Simplifying API TestingQASymphony
 
Mobile and API identity – The New Challenges
Mobile and API identity – The New ChallengesMobile and API identity – The New Challenges
Mobile and API identity – The New ChallengesCA API Management
 
Coding Together - A Dev Workflow
Coding Together - A Dev WorkflowCoding Together - A Dev Workflow
Coding Together - A Dev WorkflowPeter Chester
 
Open Ap Is State Of The Market
Open Ap Is State Of The MarketOpen Ap Is State Of The Market
Open Ap Is State Of The MarketConSanFrancisco123
 
Swagger for startups
Swagger for startupsSwagger for startups
Swagger for startupsTony Tam
 
Wake Up to the API Economy
Wake Up to the API EconomyWake Up to the API Economy
Wake Up to the API EconomySmartBear
 
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...CA Technologies
 
Creating an app ecosystem for your APIs
Creating an app ecosystem for your APIsCreating an app ecosystem for your APIs
Creating an app ecosystem for your APIsWaveMaker, Inc.
 
Better and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and EnjoymentBetter and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and EnjoymentChris Holland
 
Merging Security with DevOps - An AppSec Perspective
Merging Security with DevOps - An AppSec PerspectiveMerging Security with DevOps - An AppSec Perspective
Merging Security with DevOps - An AppSec PerspectiveAbhay Bhargav
 
API Program Lessons learned
API Program Lessons learnedAPI Program Lessons learned
API Program Lessons learnedSmartWave
 
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...Virtual Forge
 

Ähnlich wie Best Practises for Building Successful APIs (20)

Netapp Michael Galpin
Netapp Michael GalpinNetapp Michael Galpin
Netapp Michael Galpin
 
Why are APIs important?
Why are APIs important?Why are APIs important?
Why are APIs important?
 
Api readiness ss
Api readiness ssApi readiness ss
Api readiness ss
 
Tech Talk: Monitor the Performance of APIs Across the Application Lifecycle
Tech Talk: Monitor the Performance of APIs Across the Application LifecycleTech Talk: Monitor the Performance of APIs Across the Application Lifecycle
Tech Talk: Monitor the Performance of APIs Across the Application Lifecycle
 
Why APIs are important
Why APIs are importantWhy APIs are important
Why APIs are important
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPICrystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPI
 
Whitebox Testing for Blackbox Testers: Simplifying API Testing
Whitebox Testing for Blackbox Testers: Simplifying API TestingWhitebox Testing for Blackbox Testers: Simplifying API Testing
Whitebox Testing for Blackbox Testers: Simplifying API Testing
 
Practical Semantic Web
Practical Semantic WebPractical Semantic Web
Practical Semantic Web
 
Mobile and API identity – The New Challenges
Mobile and API identity – The New ChallengesMobile and API identity – The New Challenges
Mobile and API identity – The New Challenges
 
Coding Together - A Dev Workflow
Coding Together - A Dev WorkflowCoding Together - A Dev Workflow
Coding Together - A Dev Workflow
 
Open Ap Is State Of The Market
Open Ap Is State Of The MarketOpen Ap Is State Of The Market
Open Ap Is State Of The Market
 
Swagger for startups
Swagger for startupsSwagger for startups
Swagger for startups
 
Wake Up to the API Economy
Wake Up to the API EconomyWake Up to the API Economy
Wake Up to the API Economy
 
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
 
Creating an app ecosystem for your APIs
Creating an app ecosystem for your APIsCreating an app ecosystem for your APIs
Creating an app ecosystem for your APIs
 
Better and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and EnjoymentBetter and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and Enjoyment
 
Merging Security with DevOps - An AppSec Perspective
Merging Security with DevOps - An AppSec PerspectiveMerging Security with DevOps - An AppSec Perspective
Merging Security with DevOps - An AppSec Perspective
 
Huge: Running an API at Scale
Huge: Running an API at ScaleHuge: Running an API at Scale
Huge: Running an API at Scale
 
API Program Lessons learned
API Program Lessons learnedAPI Program Lessons learned
API Program Lessons learned
 
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
 

Mehr von Andreas Krohn

20 APIs in 20 minutes - Göteborg Startup Hack
20 APIs in 20 minutes -  Göteborg Startup Hack20 APIs in 20 minutes -  Göteborg Startup Hack
20 APIs in 20 minutes - Göteborg Startup HackAndreas Krohn
 
Målgrupper för öppna data
Målgrupper för öppna dataMålgrupper för öppna data
Målgrupper för öppna dataAndreas Krohn
 
20 ap is in 20 minutes - Nordic APIs Gothenburg
20 ap is in 20 minutes  - Nordic APIs Gothenburg20 ap is in 20 minutes  - Nordic APIs Gothenburg
20 ap is in 20 minutes - Nordic APIs GothenburgAndreas Krohn
 
Business Impact of Private, Partner and Public APIs
Business Impact of Private, Partner and Public APIsBusiness Impact of Private, Partner and Public APIs
Business Impact of Private, Partner and Public APIsAndreas Krohn
 
I hate developers - at least I strongly dislike how developers are worshipped...
I hate developers - at least I strongly dislike how developers are worshipped...I hate developers - at least I strongly dislike how developers are worshipped...
I hate developers - at least I strongly dislike how developers are worshipped...Andreas Krohn
 
APIs are not a technical challenge
APIs are not a technical challengeAPIs are not a technical challenge
APIs are not a technical challengeAndreas Krohn
 
Gör allt socialt - Integrera Sociala Media
Gör allt socialt - Integrera Sociala MediaGör allt socialt - Integrera Sociala Media
Gör allt socialt - Integrera Sociala MediaAndreas Krohn
 
Framgångsrik datapublicering från Nordic APIs Sundsvall
Framgångsrik datapublicering från Nordic APIs SundsvallFramgångsrik datapublicering från Nordic APIs Sundsvall
Framgångsrik datapublicering från Nordic APIs SundsvallAndreas Krohn
 
State of APIs: API trends from Nordic APIs Copenhagen & Sundsvall
State of APIs: API trends from Nordic APIs Copenhagen & SundsvallState of APIs: API trends from Nordic APIs Copenhagen & Sundsvall
State of APIs: API trends from Nordic APIs Copenhagen & SundsvallAndreas Krohn
 
20 APIs på 20 minuter - Meet n Hack
20 APIs på 20 minuter - Meet n Hack20 APIs på 20 minuter - Meet n Hack
20 APIs på 20 minuter - Meet n HackAndreas Krohn
 
State of APIs: Now & Next
State of APIs: Now & NextState of APIs: Now & Next
State of APIs: Now & NextAndreas Krohn
 
20 APIs in 20 Minutes - apps4norge
20 APIs in 20 Minutes - apps4norge20 APIs in 20 Minutes - apps4norge
20 APIs in 20 Minutes - apps4norgeAndreas Krohn
 
APIer i Sociala Medier
APIer i Sociala MedierAPIer i Sociala Medier
APIer i Sociala MedierAndreas Krohn
 
Cloud API introduction from Infosec 2012
Cloud API introduction from Infosec 2012Cloud API introduction from Infosec 2012
Cloud API introduction from Infosec 2012Andreas Krohn
 
Öppna APIer gör din information tillgänglig för alla
Öppna APIer  gör din information tillgänglig för allaÖppna APIer  gör din information tillgänglig för alla
Öppna APIer gör din information tillgänglig för allaAndreas Krohn
 
Maximera nyttan med APIer
Maximera nyttan med APIerMaximera nyttan med APIer
Maximera nyttan med APIerAndreas Krohn
 
20 APIs in 20 minutes
20 APIs in 20 minutes20 APIs in 20 minutes
20 APIs in 20 minutesAndreas Krohn
 
20 APIer på 20 minuter
20 APIer på 20 minuter20 APIer på 20 minuter
20 APIer på 20 minuterAndreas Krohn
 
Mashup - Web Service Awards Stockholm 2008
Mashup  - Web Service Awards Stockholm 2008Mashup  - Web Service Awards Stockholm 2008
Mashup - Web Service Awards Stockholm 2008Andreas Krohn
 
Openkapow At Mashup Camp 5
Openkapow At Mashup Camp 5Openkapow At Mashup Camp 5
Openkapow At Mashup Camp 5Andreas Krohn
 

Mehr von Andreas Krohn (20)

20 APIs in 20 minutes - Göteborg Startup Hack
20 APIs in 20 minutes -  Göteborg Startup Hack20 APIs in 20 minutes -  Göteborg Startup Hack
20 APIs in 20 minutes - Göteborg Startup Hack
 
Målgrupper för öppna data
Målgrupper för öppna dataMålgrupper för öppna data
Målgrupper för öppna data
 
20 ap is in 20 minutes - Nordic APIs Gothenburg
20 ap is in 20 minutes  - Nordic APIs Gothenburg20 ap is in 20 minutes  - Nordic APIs Gothenburg
20 ap is in 20 minutes - Nordic APIs Gothenburg
 
Business Impact of Private, Partner and Public APIs
Business Impact of Private, Partner and Public APIsBusiness Impact of Private, Partner and Public APIs
Business Impact of Private, Partner and Public APIs
 
I hate developers - at least I strongly dislike how developers are worshipped...
I hate developers - at least I strongly dislike how developers are worshipped...I hate developers - at least I strongly dislike how developers are worshipped...
I hate developers - at least I strongly dislike how developers are worshipped...
 
APIs are not a technical challenge
APIs are not a technical challengeAPIs are not a technical challenge
APIs are not a technical challenge
 
Gör allt socialt - Integrera Sociala Media
Gör allt socialt - Integrera Sociala MediaGör allt socialt - Integrera Sociala Media
Gör allt socialt - Integrera Sociala Media
 
Framgångsrik datapublicering från Nordic APIs Sundsvall
Framgångsrik datapublicering från Nordic APIs SundsvallFramgångsrik datapublicering från Nordic APIs Sundsvall
Framgångsrik datapublicering från Nordic APIs Sundsvall
 
State of APIs: API trends from Nordic APIs Copenhagen & Sundsvall
State of APIs: API trends from Nordic APIs Copenhagen & SundsvallState of APIs: API trends from Nordic APIs Copenhagen & Sundsvall
State of APIs: API trends from Nordic APIs Copenhagen & Sundsvall
 
20 APIs på 20 minuter - Meet n Hack
20 APIs på 20 minuter - Meet n Hack20 APIs på 20 minuter - Meet n Hack
20 APIs på 20 minuter - Meet n Hack
 
State of APIs: Now & Next
State of APIs: Now & NextState of APIs: Now & Next
State of APIs: Now & Next
 
20 APIs in 20 Minutes - apps4norge
20 APIs in 20 Minutes - apps4norge20 APIs in 20 Minutes - apps4norge
20 APIs in 20 Minutes - apps4norge
 
APIer i Sociala Medier
APIer i Sociala MedierAPIer i Sociala Medier
APIer i Sociala Medier
 
Cloud API introduction from Infosec 2012
Cloud API introduction from Infosec 2012Cloud API introduction from Infosec 2012
Cloud API introduction from Infosec 2012
 
Öppna APIer gör din information tillgänglig för alla
Öppna APIer  gör din information tillgänglig för allaÖppna APIer  gör din information tillgänglig för alla
Öppna APIer gör din information tillgänglig för alla
 
Maximera nyttan med APIer
Maximera nyttan med APIerMaximera nyttan med APIer
Maximera nyttan med APIer
 
20 APIs in 20 minutes
20 APIs in 20 minutes20 APIs in 20 minutes
20 APIs in 20 minutes
 
20 APIer på 20 minuter
20 APIer på 20 minuter20 APIer på 20 minuter
20 APIer på 20 minuter
 
Mashup - Web Service Awards Stockholm 2008
Mashup  - Web Service Awards Stockholm 2008Mashup  - Web Service Awards Stockholm 2008
Mashup - Web Service Awards Stockholm 2008
 
Openkapow At Mashup Camp 5
Openkapow At Mashup Camp 5Openkapow At Mashup Camp 5
Openkapow At Mashup Camp 5
 

Kürzlich hochgeladen

"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
 
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
 
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
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 

Kürzlich hochgeladen (20)

"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
 
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!
 
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
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 

Best Practises for Building Successful APIs

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. Pragmatic solutions are needed\n
  9. Pragmatic solutions are needed\n
  10. Pragmatic solutions are needed\n
  11. Pragmatic solutions are needed\n
  12. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  13. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  14. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  15. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  16. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  17. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  18. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  19. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  20. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  21. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  22. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  23. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  24. Company\nWebsite\nEnd users\nAPI\nDevelopers/3rd party apps\n- developers are now the middle man between you and your end customer\n- key to API success is to attract the right developers\n
  25. Steve Balmer\nhttp://video.google.com/videoplay?docid=6304687408656696643#\n\nDevelopers are key to your success\n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. Build it and they will come is a common dream, but not very realistic\nIf nobody discovers your API nobody will use it and then what is the point?\n
  61. Build it and they will come is a common dream, but not very realistic\nIf nobody discovers your API nobody will use it and then what is the point?\n
  62. Build it and they will come is a common dream, but not very realistic\nIf nobody discovers your API nobody will use it and then what is the point?\n
  63. Build it and they will come is a common dream, but not very realistic\nIf nobody discovers your API nobody will use it and then what is the point?\n
  64. Value is more than money - data, functionality, time saved, build reputation, fun/experimenting\nDecide who you are building for and offer them what they want and need\nDare to risk cannibalizing existing business model to build a new business model\nOffer developers a path to success, if they are successfull so are you\n\n
  65. Value is more than money - data, functionality, time saved, build reputation, fun/experimenting\nDecide who you are building for and offer them what they want and need\nDare to risk cannibalizing existing business model to build a new business model\nOffer developers a path to success, if they are successfull so are you\n\n
  66. Value is more than money - data, functionality, time saved, build reputation, fun/experimenting\nDecide who you are building for and offer them what they want and need\nDare to risk cannibalizing existing business model to build a new business model\nOffer developers a path to success, if they are successfull so are you\n\n
  67. Value is more than money - data, functionality, time saved, build reputation, fun/experimenting\nDecide who you are building for and offer them what they want and need\nDare to risk cannibalizing existing business model to build a new business model\nOffer developers a path to success, if they are successfull so are you\n\n
  68. Value is more than money - data, functionality, time saved, build reputation, fun/experimenting\nDecide who you are building for and offer them what they want and need\nDare to risk cannibalizing existing business model to build a new business model\nOffer developers a path to success, if they are successfull so are you\n\n
  69. Value is more than money - data, functionality, time saved, build reputation, fun/experimenting\nDecide who you are building for and offer them what they want and need\nDare to risk cannibalizing existing business model to build a new business model\nOffer developers a path to success, if they are successfull so are you\n\n
  70. Be pragmatic when picking the technology for your API\n
  71. Be pragmatic when picking the technology for your API\n
  72. Be pragmatic when picking the technology for your API\n
  73. Be pragmatic when picking the technology for your API\n
  74. Be pragmatic when picking the technology for your API\n
  75. Be pragmatic when picking the technology for your API\n
  76. Use SOAP when\n- performance is worse, read caching is not important\n- need Enterprise style security (including identity through intermediaries)\n- need transactions\n- message reliability\n- data formats do not matter, SOAP only supports XML\n
  77. Use SOAP when\n- performance is worse, read caching is not important\n- need Enterprise style security (including identity through intermediaries)\n- need transactions\n- message reliability\n- data formats do not matter, SOAP only supports XML\n
  78. Use SOAP when\n- performance is worse, read caching is not important\n- need Enterprise style security (including identity through intermediaries)\n- need transactions\n- message reliability\n- data formats do not matter, SOAP only supports XML\n
  79. easier to use - since via HTTP it is easier to create clients and use the APIs, and understand the documentation\nperformance - caching\nmore popular - http://blog.programmableweb.com/2010/06/09/new-job-requirement-experience-building-restful-apis/\n\ndefault to REST unless there is a real need for SOAP, the rest of this presentation is just going to cover REST\n
  80. easier to use - since via HTTP it is easier to create clients and use the APIs, and understand the documentation\nperformance - caching\nmore popular - http://blog.programmableweb.com/2010/06/09/new-job-requirement-experience-building-restful-apis/\n\ndefault to REST unless there is a real need for SOAP, the rest of this presentation is just going to cover REST\n
  81. easier to use - since via HTTP it is easier to create clients and use the APIs, and understand the documentation\nperformance - caching\nmore popular - http://blog.programmableweb.com/2010/06/09/new-job-requirement-experience-building-restful-apis/\n\ndefault to REST unless there is a real need for SOAP, the rest of this presentation is just going to cover REST\n
  82. easier to use - since via HTTP it is easier to create clients and use the APIs, and understand the documentation\nperformance - caching\nmore popular - http://blog.programmableweb.com/2010/06/09/new-job-requirement-experience-building-restful-apis/\n\ndefault to REST unless there is a real need for SOAP, the rest of this presentation is just going to cover REST\n
  83. REST is resource-centric, Resource Oriented Architecture (ROA)\nunique URLs that returns current state of the resource\nREST = Representational State Transfer\nData model != database/MVC data model\nResource transfered as a document over HTTP\nA web page is a resource\n
  84. REST is resource-centric, Resource Oriented Architecture (ROA)\nunique URLs that returns current state of the resource\nREST = Representational State Transfer\nData model != database/MVC data model\nResource transfered as a document over HTTP\nA web page is a resource\n
  85. REST is resource-centric, Resource Oriented Architecture (ROA)\nunique URLs that returns current state of the resource\nREST = Representational State Transfer\nData model != database/MVC data model\nResource transfered as a document over HTTP\nA web page is a resource\n
  86. \n
  87. \n
  88. \n
  89. JSON most popular return format\nXML \nJSONP “json with padding” - javascript callback function, great for APIs meant to be used by web apps\nOther important formats: plist, csv, rss, atom\nVery use case dependant\n
  90. JSON most popular return format\nXML \nJSONP “json with padding” - javascript callback function, great for APIs meant to be used by web apps\nOther important formats: plist, csv, rss, atom\nVery use case dependant\n
  91. JSON most popular return format\nXML \nJSONP “json with padding” - javascript callback function, great for APIs meant to be used by web apps\nOther important formats: plist, csv, rss, atom\nVery use case dependant\n
  92. JSON most popular return format\nXML \nJSONP “json with padding” - javascript callback function, great for APIs meant to be used by web apps\nOther important formats: plist, csv, rss, atom\nVery use case dependant\n
  93. JSON most popular return format\nXML \nJSONP “json with padding” - javascript callback function, great for APIs meant to be used by web apps\nOther important formats: plist, csv, rss, atom\nVery use case dependant\n
  94. JSON most popular return format\nXML \nJSONP “json with padding” - javascript callback function, great for APIs meant to be used by web apps\nOther important formats: plist, csv, rss, atom\nVery use case dependant\n
  95. Set format via suffix or via “Accept” HTTP header\n
  96. Set format via suffix or via “Accept” HTTP header\n
  97. Set format via suffix or via “Accept” HTTP header\n
  98. Set format via suffix or via “Accept” HTTP header\n
  99. https - signed SSL certificate to verify server and not just client\noauth - give 3rd party access rights to your data\napi keys - not mainly for security, but in order to contact developers + rate limits\n
  100. https - signed SSL certificate to verify server and not just client\noauth - give 3rd party access rights to your data\napi keys - not mainly for security, but in order to contact developers + rate limits\n
  101. https - signed SSL certificate to verify server and not just client\noauth - give 3rd party access rights to your data\napi keys - not mainly for security, but in order to contact developers + rate limits\n
  102. https - signed SSL certificate to verify server and not just client\noauth - give 3rd party access rights to your data\napi keys - not mainly for security, but in order to contact developers + rate limits\n
  103. https - signed SSL certificate to verify server and not just client\noauth - give 3rd party access rights to your data\napi keys - not mainly for security, but in order to contact developers + rate limits\n
  104. https - signed SSL certificate to verify server and not just client\noauth - give 3rd party access rights to your data\napi keys - not mainly for security, but in order to contact developers + rate limits\n
  105. \n
  106. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  107. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  108. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  109. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  110. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  111. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  112. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  113. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  114. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  115. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  116. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  117. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  118. GET - DO use to retrieve data, DON’T use to update data\nPOST - DO use to update or add data, DO use to retrieve data if GET is not enough\nPUT - DO use to add data, ONLY IF you set the resource URI yourself\nDELETE - DO use to remove data\nIdempotency\nGET, PUT, DELETE (HEAD, OPTIONS) give same response on the same request repeated\nPOST is not idempotent\nDELETE in practice often not, returns 404 not found instead of 200 OK\n
  119. Top HTTP status codes\n
  120. Top HTTP status codes\n
  121. Top HTTP status codes\n
  122. Top HTTP status codes\n
  123. Top HTTP status codes\n
  124. Top HTTP status codes\n
  125. Top HTTP status codes\n
  126. Top HTTP status codes\n
  127. Top HTTP status codes\n
  128. Top HTTP status codes\n
  129. Top HTTP status codes\n
  130. Top HTTP status codes\n
  131. Top HTTP status codes\n
  132. Top HTTP status codes\n304 not modified\n
  133. Top HTTP status codes\n304 not modified\n
  134. Top HTTP status codes\n304 not modified\n
  135. Top HTTP status codes\n304 not modified\n
  136. Top HTTP status codes\n304 not modified\n
  137. Top HTTP status codes\n304 not modified\n
  138. Top HTTP status codes\n304 not modified\n
  139. Top HTTP status codes\n304 not modified\n
  140. Top HTTP status codes\n304 not modified\n
  141. Top HTTP status codes\n304 not modified\n
  142. Please don’t, please, and if you do please do not tell anybody you’ve heard this talk\n
  143. Please don’t, please, and if you do please do not tell anybody you’ve heard this talk\n
  144. Have a generous free option if it is a payed API\nGenerate API keys directly and automatically so that developers can get started ASAP\n\nThe REST API should be self documenting in resources/method/parameter names\nDocumentation - Code examples are key, code libs a great advantage\n\n“no commercial use” or “contact us for pricing” cuts out a lot of developers before they get started\n
  145. Have a generous free option if it is a payed API\nGenerate API keys directly and automatically so that developers can get started ASAP\n\nThe REST API should be self documenting in resources/method/parameter names\nDocumentation - Code examples are key, code libs a great advantage\n\n“no commercial use” or “contact us for pricing” cuts out a lot of developers before they get started\n
  146. Have a generous free option if it is a payed API\nGenerate API keys directly and automatically so that developers can get started ASAP\n\nThe REST API should be self documenting in resources/method/parameter names\nDocumentation - Code examples are key, code libs a great advantage\n\n“no commercial use” or “contact us for pricing” cuts out a lot of developers before they get started\n
  147. Have a generous free option if it is a payed API\nGenerate API keys directly and automatically so that developers can get started ASAP\n\nThe REST API should be self documenting in resources/method/parameter names\nDocumentation - Code examples are key, code libs a great advantage\n\n“no commercial use” or “contact us for pricing” cuts out a lot of developers before they get started\n
  148. Have a generous free option if it is a payed API\nGenerate API keys directly and automatically so that developers can get started ASAP\n\nThe REST API should be self documenting in resources/method/parameter names\nDocumentation - Code examples are key, code libs a great advantage\n\n“no commercial use” or “contact us for pricing” cuts out a lot of developers before they get started\n
  149. Have a generous free option if it is a payed API\nGenerate API keys directly and automatically so that developers can get started ASAP\n\nThe REST API should be self documenting in resources/method/parameter names\nDocumentation - Code examples are key, code libs a great advantage\n\n“no commercial use” or “contact us for pricing” cuts out a lot of developers before they get started\n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. add but never remove\nVersion number in URI even if not strictly RESTful, it is just the best pragmatical solution\n
  157. add but never remove\nVersion number in URI even if not strictly RESTful, it is just the best pragmatical solution\n
  158. add but never remove\nVersion number in URI even if not strictly RESTful, it is just the best pragmatical solution\n
  159. add but never remove\nVersion number in URI even if not strictly RESTful, it is just the best pragmatical solution\n
  160. add but never remove\nVersion number in URI even if not strictly RESTful, it is just the best pragmatical solution\n
  161. add but never remove\nVersion number in URI even if not strictly RESTful, it is just the best pragmatical solution\n
  162. \n
  163. \n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. play nice when somebody breaks the rules\n
  176. play nice when somebody breaks the rules\n
  177. play nice when somebody breaks the rules\n
  178. play nice when somebody breaks the rules\n
  179. play nice when somebody breaks the rules\n
  180. play nice when somebody breaks the rules\n
  181. play nice when somebody breaks the rules\n
  182. play nice when somebody breaks the rules\n
  183. play nice when somebody breaks the rules\n
  184. play nice when somebody breaks the rules\n
  185. play nice when somebody breaks the rules\n
  186. keeps the devs in the loop, listen to feedback\n
  187. keeps the devs in the loop, listen to feedback\n
  188. keeps the devs in the loop, listen to feedback\n
  189. keeps the devs in the loop, listen to feedback\n
  190. keeps the devs in the loop, listen to feedback\n
  191. keeps the devs in the loop, listen to feedback\n
  192. keeps the devs in the loop, listen to feedback\n
  193. keeps the devs in the loop, listen to feedback\n
  194. keeps the devs in the loop, listen to feedback\n
  195. keeps the devs in the loop, listen to feedback\n
  196. keeps the devs in the loop, listen to feedback\n
  197. \n
  198. \n
  199. Caching built in to HTTP, many good HTTP headers\nUse Varnish, CDNs etc\nCache on server and on client\nProxy - caching inbetween server and client, not touching either\n
  200. Caching built in to HTTP, many good HTTP headers\nUse Varnish, CDNs etc\nCache on server and on client\nProxy - caching inbetween server and client, not touching either\n
  201. Caching built in to HTTP, many good HTTP headers\nUse Varnish, CDNs etc\nCache on server and on client\nProxy - caching inbetween server and client, not touching either\n
  202. Caching built in to HTTP, many good HTTP headers\nUse Varnish, CDNs etc\nCache on server and on client\nProxy - caching inbetween server and client, not touching either\n
  203. Caching built in to HTTP, many good HTTP headers\nUse Varnish, CDNs etc\nCache on server and on client\nProxy - caching inbetween server and client, not touching either\n
  204. Caching built in to HTTP, many good HTTP headers\nUse Varnish, CDNs etc\nCache on server and on client\nProxy - caching inbetween server and client, not touching either\n
  205. control rate limits with API keys\nresponse times are key\n\n
  206. control rate limits with API keys\nresponse times are key\n\n
  207. control rate limits with API keys\nresponse times are key\n\n
  208. control rate limits with API keys\nresponse times are key\n\n
  209. control rate limits with API keys\nresponse times are key\n\n
  210. control rate limits with API keys\nresponse times are key\n\n
  211. response times are key\n
  212. response times are key\n
  213. response times are key\n
  214. response times are key\n
  215. response times are key\n
  216. response times are key\n
  217. response times are key\n
  218. response times are key\n
  219. response times are key\n
  220. response times are key\n
  221. response times are key\n
  222. \n
  223. \n
  224. http://www.useit.com/alertbox/timeframes.html, Jakob Nielsen\n\nMore than 10 seconds, and you break the flow. Users will often leave the site rather than trying to regain the groove once they've started thinking about other things.\n10 seconds is also the time users typically allocate to examining a page before deciding that it's so bad that they're going to leave.\nThe average page visit lasts about 30 seconds, but the more experienced the users are, the less time they allocate to each Web page. People are impatient on the Internet. Instantly gratify them, or they're out.\n\n