SlideShare a Scribd company logo
Introduction to Google APIs
                                                              August 25, 2012




                            Sivasubramaniam Arunachalam



http://barcampbangalore.org/bcb/bcb12/google-apis-and-google-app-engine-introduction-demo
http://www.ebaypartnernetworkblog.com/en/files/2011/05/api1.gif
Agenda
•   What is an API?
•   REST - Introduction
•   Google APIs
•   Demo
API

“Specification intended to be used as an interface
by software components to communicate with
each other”
Language Dependent APIs
•   Python (pydoc)
•   Ruby (ri)
•   Perl (perldoc)
•   Java (javadoc)
•   Unix (man)
Language Independent APIs
 • RPCs
 • CORBA
 • Web Services
Evolution
  • Web 2.0 & 3.0
  • Web Services

 "A software system designed to support
 interoperable machine-to-machine interaction
 over a network" (W3C)
Web APIs
• HTTP, HTTP & HTTP
  • XML
  • JSON
• Mash-ups
  • Enterprise
  • Consumer
  • Data
Web Services
• SOAP
  • Heavy Weight
  • Suitable for Enterprises
• REST
  • Light Weight
  • Suitable for Web APIs
Why REST?
•   Ease of Development & Deployment
•   Serves the actual purpose of HTTP
•   Cache Proxies
•   Human readable results
•   Flexile Formats
•   Better Performance
•   Better Browser Support
•   Social Media Authentication
REST - Introduction
•   Architectural Style
•   Uses only HTTP
•   Stateless
•   Clean URL (Slugs & SEO)
REST - Components
• Origin Servers
    • Gateways
    • Proxies
• Clients

•   Client (Requested By)
•   Server (Provided By)
•   Resource (What is being exchanged)
•   Representation
REST - Methods
•   GET
•   PUT
•   POST
•   DELETE

http://provider.com/resources/
    http://provider.com/resources/entry05
REST – Methods (GET)
http://provider.com/resources/
http://provider.com/resources/entry05

•List
•Retrieve
REST – Methods (PUT & POST)
   http://provider.com/resources/
   http://provider.com/resources/entry05

   •Replace
   •Replace/Create
REST – Methods (DELETE)
 http://provider.com/resources/
 http://provider.com/resources/entry05

 •Delete the List
 •Delete the Entry
PUT vs POST
• Explicit URL Name in request (PUT)
• Idempotent (PUT)
  • No Duplicate
• PUT - Same URL for (Create/Update)
PUT
• /resources/<existing_resource>   (update)
• /resources/<new_resource>        (Create)
POST
• /resources (Create and URL will be returned)
• /resources/<existing_resource>      (Update)
• /resources/<new_resource>           (Error)
OAuth 2.0 Flow




            http://tutorials.jenkov.com/oauth2/overview.html
OAuth 2.0 Flow (Contd…)




         http://www.ibm.com/developerworks/library/x-androidfacebookapi/index.html
Google APIs
• Data APIs (Demo in few minutes)
• Ajax APIs
  • JS & HTML
  • Rich dynamic web sites
• Ads APIs
  • Adsense
  • Adwords
  •   (SOAP Based)
Google Data APIs

• 46 Apps
• Tools
  • API Explorer
  • API Console
  • OAuth 2.0 Playground
Demo
•   Discovery
•   Books
•   URL Shorter
•   Tasks
•   Google +

• Others
Questions (?)
Thank You!
             siva@sivaa.in

             @sivaa_in
References
•   http://en.wikipedia.org/wiki/Application_programming_interface
•   http://en.wikipedia.org/wiki/Representational_state_transfer
•   http://en.wikipedia.org/wiki/Google_Code
•   http://googlecode.blogspot.in/2009/08/well-earned-retirement-for-soap-search.html
•   http://stackoverflow.com/questions/6166746/why-use-soap-for-webservices
•   http://stackoverflow.com/questions/630453/put-vs-post-in-rest
•   http://stackoverflow.com/questions/3487991/why-does-oauth-v2-have-both-access-and-refresh-tokens
Tweets




 http://1photos.com/wp-content/uploads/2011/02/wpid-web_delight_s37_15_part.jpg
Tweets
Tweets
Tweets
Tweets
Tweets
Tweets

More Related Content

PPTX
Introduction to Node.js
PDF
SQOOP PPT
PPT
Google Maps in Android
PPTX
Basics of MongoDB
PDF
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
PPTX
Programming in Spark using PySpark
PDF
MongoDB Fundamentals
PPTX
SplunkLive 2011 Advanced Session
Introduction to Node.js
SQOOP PPT
Google Maps in Android
Basics of MongoDB
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
Programming in Spark using PySpark
MongoDB Fundamentals
SplunkLive 2011 Advanced Session

What's hot (20)

PDF
Web Development with Python and Django
PDF
Introduction to Cloud Computing
PPTX
Android activity lifecycle
PPTX
PPTX
Introduction to Big Data & Hadoop Architecture - Module 1
PDF
Cypress Automation Testing Tutorial (Part 1).pdf
PDF
Introduction to Spark Internals
PPTX
Cloud vs.data center
PPTX
Flask – Python
PPTX
Cloud security ppt
PDF
Google Firebase presentation - English
PPTX
Migration into a Cloud
PPTX
Final year project presentation in android application
PPTX
03 hive query language (hql)
PDF
給 iOS 工程師的 Flutter 開發
PPTX
Mobile application architecture
PPTX
Introduction to Hadoop
PDF
What Is RDD In Spark? | Edureka
PDF
Spark (Structured) Streaming vs. Kafka Streams
PDF
InfluxDB & Grafana
Web Development with Python and Django
Introduction to Cloud Computing
Android activity lifecycle
Introduction to Big Data & Hadoop Architecture - Module 1
Cypress Automation Testing Tutorial (Part 1).pdf
Introduction to Spark Internals
Cloud vs.data center
Flask – Python
Cloud security ppt
Google Firebase presentation - English
Migration into a Cloud
Final year project presentation in android application
03 hive query language (hql)
給 iOS 工程師的 Flutter 開發
Mobile application architecture
Introduction to Hadoop
What Is RDD In Spark? | Edureka
Spark (Structured) Streaming vs. Kafka Streams
InfluxDB & Grafana
Ad

Similar to Introduction to Google APIs (20)

PDF
Web APIs
PDF
マイクロサービスバックエンドAPIのためのRESTとgRPC
PDF
Alfresco Day Vienna 2015 - Technical Track - REST API of the Future
PPTX
Webservices: The RESTful Approach
PDF
Google APIs for NSBM Students
PPTX
Custom Development in SharePoint – What are my options now?
PPTX
Lessons learned on the Azure API Stewardship Journey.pptx
PPTX
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
PPTX
ASP.NET Mvc 4 web api
PDF
APIエコノミー時代の認証・認可
PPSX
Advanced Web Development in PHP - Understanding REST API
PPTX
Building Software Backend (Web API)
PPTX
First Look at Azure Logic Apps (BAUG)
PDF
Sinergija2012 - Developing REST API for Windows Azure with ASP.NET Web API
PPTX
Scaling with swagger
PDF
API Testing. Streamline your testing process.
PPTX
automated-automation-of-rest-apis.pptx
PDF
Restful风格ž„web服务架构
PDF
Design & Deploy a data-driven Web API in 2 hours
PDF
Maine WordPress Meetup JSON REST API, 3/16/2016
Web APIs
マイクロサービスバックエンドAPIのためのRESTとgRPC
Alfresco Day Vienna 2015 - Technical Track - REST API of the Future
Webservices: The RESTful Approach
Google APIs for NSBM Students
Custom Development in SharePoint – What are my options now?
Lessons learned on the Azure API Stewardship Journey.pptx
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
ASP.NET Mvc 4 web api
APIエコノミー時代の認証・認可
Advanced Web Development in PHP - Understanding REST API
Building Software Backend (Web API)
First Look at Azure Logic Apps (BAUG)
Sinergija2012 - Developing REST API for Windows Azure with ASP.NET Web API
Scaling with swagger
API Testing. Streamline your testing process.
automated-automation-of-rest-apis.pptx
Restful风格ž„web服务架构
Design & Deploy a data-driven Web API in 2 hours
Maine WordPress Meetup JSON REST API, 3/16/2016
Ad

More from Siva Arunachalam (18)

PDF
Introduction to EDI(Electronic Data Interchange)
PDF
Introduction to logging in django
PDF
Introduction to Test Driven Development
PDF
Setup a New Virtualenv for Django in Windows
PDF
What's New in Django 1.6
PDF
Introduction to Browser Internals
PDF
Web sockets in java EE 7 - JavaOne 2013
PDF
Python for High School Programmers
PDF
Introduction to Cloud Computing
PDF
Web Sockets in Java EE 7
PDF
Simplify AJAX using jQuery
PDF
Introduction to Browser DOM
PDF
jQuery for beginners
PDF
Installing MySQL for Python
PDF
Using Eclipse and Installing PyDev
PPT
Installing Python 2.7 in Windows
PDF
Setup a New Virtualenv for Django in Windows
PDF
Introduction to Django
Introduction to EDI(Electronic Data Interchange)
Introduction to logging in django
Introduction to Test Driven Development
Setup a New Virtualenv for Django in Windows
What's New in Django 1.6
Introduction to Browser Internals
Web sockets in java EE 7 - JavaOne 2013
Python for High School Programmers
Introduction to Cloud Computing
Web Sockets in Java EE 7
Simplify AJAX using jQuery
Introduction to Browser DOM
jQuery for beginners
Installing MySQL for Python
Using Eclipse and Installing PyDev
Installing Python 2.7 in Windows
Setup a New Virtualenv for Django in Windows
Introduction to Django

Recently uploaded (20)

PDF
Modernizing your data center with Dell and AMD
PPTX
A Presentation on Artificial Intelligence
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
Teaching material agriculture food technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
DOCX
The AUB Centre for AI in Media Proposal.docx
Modernizing your data center with Dell and AMD
A Presentation on Artificial Intelligence
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Chapter 3 Spatial Domain Image Processing.pdf
20250228 LYD VKU AI Blended-Learning.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Building Integrated photovoltaic BIPV_UPV.pdf
Network Security Unit 5.pdf for BCA BBA.
Teaching material agriculture food technology
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
“AI and Expert System Decision Support & Business Intelligence Systems”
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Encapsulation_ Review paper, used for researhc scholars
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The AUB Centre for AI in Media Proposal.docx

Introduction to Google APIs

  • 1. Introduction to Google APIs August 25, 2012 Sivasubramaniam Arunachalam http://barcampbangalore.org/bcb/bcb12/google-apis-and-google-app-engine-introduction-demo
  • 3. Agenda • What is an API? • REST - Introduction • Google APIs • Demo
  • 4. API “Specification intended to be used as an interface by software components to communicate with each other”
  • 5. Language Dependent APIs • Python (pydoc) • Ruby (ri) • Perl (perldoc) • Java (javadoc) • Unix (man)
  • 6. Language Independent APIs • RPCs • CORBA • Web Services
  • 7. Evolution • Web 2.0 & 3.0 • Web Services "A software system designed to support interoperable machine-to-machine interaction over a network" (W3C)
  • 8. Web APIs • HTTP, HTTP & HTTP • XML • JSON • Mash-ups • Enterprise • Consumer • Data
  • 9. Web Services • SOAP • Heavy Weight • Suitable for Enterprises • REST • Light Weight • Suitable for Web APIs
  • 10. Why REST? • Ease of Development & Deployment • Serves the actual purpose of HTTP • Cache Proxies • Human readable results • Flexile Formats • Better Performance • Better Browser Support • Social Media Authentication
  • 11. REST - Introduction • Architectural Style • Uses only HTTP • Stateless • Clean URL (Slugs & SEO)
  • 12. REST - Components • Origin Servers • Gateways • Proxies • Clients • Client (Requested By) • Server (Provided By) • Resource (What is being exchanged) • Representation
  • 13. REST - Methods • GET • PUT • POST • DELETE http://provider.com/resources/ http://provider.com/resources/entry05
  • 14. REST – Methods (GET) http://provider.com/resources/ http://provider.com/resources/entry05 •List •Retrieve
  • 15. REST – Methods (PUT & POST) http://provider.com/resources/ http://provider.com/resources/entry05 •Replace •Replace/Create
  • 16. REST – Methods (DELETE) http://provider.com/resources/ http://provider.com/resources/entry05 •Delete the List •Delete the Entry
  • 17. PUT vs POST • Explicit URL Name in request (PUT) • Idempotent (PUT) • No Duplicate • PUT - Same URL for (Create/Update)
  • 18. PUT • /resources/<existing_resource> (update) • /resources/<new_resource> (Create)
  • 19. POST • /resources (Create and URL will be returned) • /resources/<existing_resource> (Update) • /resources/<new_resource> (Error)
  • 20. OAuth 2.0 Flow http://tutorials.jenkov.com/oauth2/overview.html
  • 21. OAuth 2.0 Flow (Contd…) http://www.ibm.com/developerworks/library/x-androidfacebookapi/index.html
  • 22. Google APIs • Data APIs (Demo in few minutes) • Ajax APIs • JS & HTML • Rich dynamic web sites • Ads APIs • Adsense • Adwords • (SOAP Based)
  • 23. Google Data APIs • 46 Apps • Tools • API Explorer • API Console • OAuth 2.0 Playground
  • 24. Demo • Discovery • Books • URL Shorter • Tasks • Google + • Others
  • 26. Thank You! siva@sivaa.in @sivaa_in
  • 27. References • http://en.wikipedia.org/wiki/Application_programming_interface • http://en.wikipedia.org/wiki/Representational_state_transfer • http://en.wikipedia.org/wiki/Google_Code • http://googlecode.blogspot.in/2009/08/well-earned-retirement-for-soap-search.html • http://stackoverflow.com/questions/6166746/why-use-soap-for-webservices • http://stackoverflow.com/questions/630453/put-vs-post-in-rest • http://stackoverflow.com/questions/3487991/why-does-oauth-v2-have-both-access-and-refresh-tokens