SlideShare a Scribd company logo
WEB SERVICES CRASH COURSE
Presented by: Noah Lively, Founder of KoreMedia Productions
DRUPAL 7
PURPOSE OF THIS CLASS:
Demonstrate how to use Drupal 7 as a
web service endpoint.
Why?
So you can connect apps and other websites to your Drupal
site.
ANALOGY:
Let Drupal be the “brain”
Let your apps be the “face”
WHY DRUPAL WEB SERVICES:
Because web services are cool
Because a website is much more versatile when it can connect
with other sites
(continued)
WHY DRUPAL WEB SERVICES:
Because Drupal provides an excellent hybrid solution between
powerful CMS and web service platform
 Leverage an enterprise-class CMS
 Provide a web-based back-end management interface
via core platform
 Provide a web-based front-end user interface
via core platform
 Provide a mobile app or HTML5 app interface
via web services
EXAMPLE APP: PIZZA SHOP
Back-end:
 A Drupal site acts as the application server and content management platform.
 Manager can manage the menu through the Drupal site.
 Drupal site receives orders and notifies the manager.
EXAMPLE APP: PIZZA SHOP
Front-end:
 An AngularJS app connects to Drupal and displays pizzas in a responsive web
page.
 Customers can order pizzas from the app, which triggers a server-side email to
the manager (via web services)
 Customers can make menu suggestions by configuring their own pizza topping
combinations. These suggestions get added as “unpublished” nodes to the Drupal
site via web services.
MODULES:
Common modules to use and be aware of:
 Services – Core platform that exposes existing data types to Drupal
 Oauth or OAuth2
 CORS – cross-origin resource sharing. Provides necessary web server headers to
allow front-end apps to access the data
 Services Views
DRUPAL SETUP:
 Install services module
 Configure a web service endpoint
 Select which web service methods to enable for that endpoint
 Configure authentication (session, oauth or none)
 Install services_views module to use views as web service endpoints
 Write your own service endpoints by implementing hook_services_resources() in
your module
TESTING IT OUT:
 Install the Postman extension on Google chrome
 Set up an HTTP request in Postman pointing to your web service method:
 (SITE URL) + (ENDPOINT PATH) + (METHOD NAME).json
 For example usage, download the Postman collection referenced at the end of this
presentation and install it into your local Postman app
EXAMPLE CODE:
Example site (includes database dump):
https://github.com/nlively/pizza_shop
Example app:
https://github.com/nlively/pizza_shop_app
Postman collection:
https://www.getpostman.com/collections/26f40e0428bd1ba8c10
9
CONTACT ME:
Email: noah@koremedia.net
Twitter: noahlively
Skype: noahlively
Drupal.org: noahlively
ABOUT ME:
Noah Lively
 Been involved in Drupal development since 2008.
 Founder and CEO of KoreMedia Productions,
a full-service Rocklin-based Drupal firm
 Co-creator of WindowAgent, a Drupal-backed product that takes real estate
listings from the MLS and exposes them via
a touch screen interface
ABOUT KOREMEDIA:
We are a growing team of Drupal devs. Our key strengths are
in connecting Drupal to other platforms and upgrading Drupal
sites (major versions), and optimizing Drupal for the
enterprise.

More Related Content

What's hot

Laravel & Composer presentation - WebHostFace
Laravel & Composer presentation - WebHostFace Laravel & Composer presentation - WebHostFace
Laravel & Composer presentation - WebHostFace
Cvetomir Denchev
 
Create web services jax - ws3
Create web services jax - ws3Create web services jax - ws3
Create web services jax - ws3
Antonio Pellegrino
 
Deploy mule application
Deploy mule applicationDeploy mule application
Deploy mule application
Son Nguyen
 
Introducing Mule Application and API
Introducing Mule Application and APIIntroducing Mule Application and API
Introducing Mule Application and API
Jitendra Bafna
 
Integration with CMIS using Mule ESB
Integration with CMIS using Mule ESBIntegration with CMIS using Mule ESB
Integration with CMIS using Mule ESB
Sanjeet Pandey
 
Create web services jax - ws2
Create web services jax - ws2Create web services jax - ws2
Create web services jax - ws2
Antonio Pellegrino
 
Mule Integration with Dropbox
Mule Integration with DropboxMule Integration with Dropbox
Mule Integration with Dropbox
Ramakrishna Narkedamilli
 
Mule with drools
Mule with droolsMule with drools
Mule with drools
Khan625
 
Using maven with mule
Using maven with muleUsing maven with mule
Using maven with mule
Sindhu VL
 
Logging best practice in mule using logger component
Logging best practice in mule using logger componentLogging best practice in mule using logger component
Logging best practice in mule using logger component
Govind Mulinti
 
Mule
MuleMule
Mule
irfan1008
 
Mule integration-application
Mule integration-applicationMule integration-application
Mule integration-application
Naresh Naidu
 
CloudHub Connector With Mulesoft
CloudHub Connector With MulesoftCloudHub Connector With Mulesoft
CloudHub Connector With Mulesoft
Jitendra Bafna
 
Mule with salesforce push topic notification copy
Mule with salesforce push topic notification   copyMule with salesforce push topic notification   copy
Mule with salesforce push topic notification copy
Sanjeet Pandey
 
Introduction to Cakephp
Introduction to CakephpIntroduction to Cakephp
Introduction to CakephpAditya Mooley
 
Automatic documentation with mule
Automatic documentation with muleAutomatic documentation with mule
Automatic documentation with mule
F K
 
Cloudhub fabric
Cloudhub fabricCloudhub fabric
Cloudhub fabric
Shanky Gupta
 
ASP.NET - Directives
ASP.NET - DirectivesASP.NET - Directives
ASP.NET - Directives
Dhammapal Kamble
 
Building Restful Web App Rapidly in CakePHP
Building Restful Web App Rapidly in CakePHPBuilding Restful Web App Rapidly in CakePHP
Building Restful Web App Rapidly in CakePHP
Edureka!
 

What's hot (19)

Laravel & Composer presentation - WebHostFace
Laravel & Composer presentation - WebHostFace Laravel & Composer presentation - WebHostFace
Laravel & Composer presentation - WebHostFace
 
Create web services jax - ws3
Create web services jax - ws3Create web services jax - ws3
Create web services jax - ws3
 
Deploy mule application
Deploy mule applicationDeploy mule application
Deploy mule application
 
Introducing Mule Application and API
Introducing Mule Application and APIIntroducing Mule Application and API
Introducing Mule Application and API
 
Integration with CMIS using Mule ESB
Integration with CMIS using Mule ESBIntegration with CMIS using Mule ESB
Integration with CMIS using Mule ESB
 
Create web services jax - ws2
Create web services jax - ws2Create web services jax - ws2
Create web services jax - ws2
 
Mule Integration with Dropbox
Mule Integration with DropboxMule Integration with Dropbox
Mule Integration with Dropbox
 
Mule with drools
Mule with droolsMule with drools
Mule with drools
 
Using maven with mule
Using maven with muleUsing maven with mule
Using maven with mule
 
Logging best practice in mule using logger component
Logging best practice in mule using logger componentLogging best practice in mule using logger component
Logging best practice in mule using logger component
 
Mule
MuleMule
Mule
 
Mule integration-application
Mule integration-applicationMule integration-application
Mule integration-application
 
CloudHub Connector With Mulesoft
CloudHub Connector With MulesoftCloudHub Connector With Mulesoft
CloudHub Connector With Mulesoft
 
Mule with salesforce push topic notification copy
Mule with salesforce push topic notification   copyMule with salesforce push topic notification   copy
Mule with salesforce push topic notification copy
 
Introduction to Cakephp
Introduction to CakephpIntroduction to Cakephp
Introduction to Cakephp
 
Automatic documentation with mule
Automatic documentation with muleAutomatic documentation with mule
Automatic documentation with mule
 
Cloudhub fabric
Cloudhub fabricCloudhub fabric
Cloudhub fabric
 
ASP.NET - Directives
ASP.NET - DirectivesASP.NET - Directives
ASP.NET - Directives
 
Building Restful Web App Rapidly in CakePHP
Building Restful Web App Rapidly in CakePHPBuilding Restful Web App Rapidly in CakePHP
Building Restful Web App Rapidly in CakePHP
 

Viewers also liked

Web coding principle
Web coding principleWeb coding principle
Web coding principle
ZongYing Lyu
 
提高 Code 品質心得
提高 Code 品質心得提高 Code 品質心得
提高 Code 品質心得
ZongYing Lyu
 
SCRUM
SCRUMSCRUM
Architecture of the oasis mobile shared virtual memory system
Architecture of the oasis mobile shared virtual memory systemArchitecture of the oasis mobile shared virtual memory system
Architecture of the oasis mobile shared virtual memory system
ZongYing Lyu
 
Libckpt transparent checkpointing under unix
Libckpt transparent checkpointing under unixLibckpt transparent checkpointing under unix
Libckpt transparent checkpointing under unix
ZongYing Lyu
 
Consistency protocols
Consistency protocolsConsistency protocols
Consistency protocols
ZongYing Lyu
 
Device Driver - Chapter 6字元驅動程式的進階作業
Device Driver - Chapter 6字元驅動程式的進階作業Device Driver - Chapter 6字元驅動程式的進階作業
Device Driver - Chapter 6字元驅動程式的進階作業
ZongYing Lyu
 
Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式
ZongYing Lyu
 

Viewers also liked (14)

Lec5
Lec5Lec5
Lec5
 
Lec7
Lec7Lec7
Lec7
 
Web coding principle
Web coding principleWeb coding principle
Web coding principle
 
Lec1
Lec1Lec1
Lec1
 
Lec12
Lec12Lec12
Lec12
 
提高 Code 品質心得
提高 Code 品質心得提高 Code 品質心得
提高 Code 品質心得
 
Lec3
Lec3Lec3
Lec3
 
SCRUM
SCRUMSCRUM
SCRUM
 
Architecture of the oasis mobile shared virtual memory system
Architecture of the oasis mobile shared virtual memory systemArchitecture of the oasis mobile shared virtual memory system
Architecture of the oasis mobile shared virtual memory system
 
Libckpt transparent checkpointing under unix
Libckpt transparent checkpointing under unixLibckpt transparent checkpointing under unix
Libckpt transparent checkpointing under unix
 
Consistency protocols
Consistency protocolsConsistency protocols
Consistency protocols
 
Device Driver - Chapter 6字元驅動程式的進階作業
Device Driver - Chapter 6字元驅動程式的進階作業Device Driver - Chapter 6字元驅動程式的進階作業
Device Driver - Chapter 6字元驅動程式的進階作業
 
OpenMP
OpenMPOpenMP
OpenMP
 
Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式
 

Similar to Drupal 7 Web Services Crash Course

Intro to Google Cloud Platform Data Engineering.
Intro to Google Cloud Platform Data Engineering.Intro to Google Cloud Platform Data Engineering.
Intro to Google Cloud Platform Data Engineering.
Joseph Holbrook, Chief Learning Officer (CLO)
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developers
Filip Rakowski
 
Web services
Web servicesWeb services
Web services
ishmecse13
 
Drupalcon Mumbai
Drupalcon MumbaiDrupalcon Mumbai
Drupalcon Mumbai
Sumit Kataria
 
Progressive web app testing
Progressive web app testingProgressive web app testing
Progressive web app testing
Kalhan Liyanage
 
From 4 releases per year to 4 releases per day
From 4 releases per year to 4 releases per dayFrom 4 releases per year to 4 releases per day
From 4 releases per year to 4 releases per day
continuousphp
 
Cloudhub deployment
Cloudhub deploymentCloudhub deployment
Cloudhub deployment
D.Rajesh Kumar
 
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
Evan Mullins
 
REST full API Design
REST full API DesignREST full API Design
REST full API Design
Christian Guenther
 
Checklist for progressive web app development
Checklist for progressive web app developmentChecklist for progressive web app development
Checklist for progressive web app development
WebGuru Infosystems Pvt. Ltd.
 
Cloud Computing basic
Cloud Computing basicCloud Computing basic
Cloud Computing basic
Himanshu Pareek
 
Untangling the web9
Untangling the web9Untangling the web9
Untangling the web9
Derek Jacoby
 
Hire Drupal Developers For Your Website
Hire Drupal Developers For Your WebsiteHire Drupal Developers For Your Website
Hire Drupal Developers For Your Website
ajohnson85
 
Hire Drupal Developers For Your Website
Hire Drupal Developers For Your WebsiteHire Drupal Developers For Your Website
Hire Drupal Developers For Your Website
ajohnson85
 
Miracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hubMiracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hub
kishore ippili
 
App Service Web
App Service WebApp Service Web
App Service Web
Lisa Muthukumar
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressGeorge Kanellopoulos
 
Cordova training : Day 1 : Introduction to Cordova
Cordova training : Day 1 : Introduction to CordovaCordova training : Day 1 : Introduction to Cordova
Cordova training : Day 1 : Introduction to Cordova
Binu Paul
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
Software Park Thailand
 
RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8
Gajendra Sharma
 

Similar to Drupal 7 Web Services Crash Course (20)

Intro to Google Cloud Platform Data Engineering.
Intro to Google Cloud Platform Data Engineering.Intro to Google Cloud Platform Data Engineering.
Intro to Google Cloud Platform Data Engineering.
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developers
 
Web services
Web servicesWeb services
Web services
 
Drupalcon Mumbai
Drupalcon MumbaiDrupalcon Mumbai
Drupalcon Mumbai
 
Progressive web app testing
Progressive web app testingProgressive web app testing
Progressive web app testing
 
From 4 releases per year to 4 releases per day
From 4 releases per year to 4 releases per dayFrom 4 releases per year to 4 releases per day
From 4 releases per year to 4 releases per day
 
Cloudhub deployment
Cloudhub deploymentCloudhub deployment
Cloudhub deployment
 
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
 
REST full API Design
REST full API DesignREST full API Design
REST full API Design
 
Checklist for progressive web app development
Checklist for progressive web app developmentChecklist for progressive web app development
Checklist for progressive web app development
 
Cloud Computing basic
Cloud Computing basicCloud Computing basic
Cloud Computing basic
 
Untangling the web9
Untangling the web9Untangling the web9
Untangling the web9
 
Hire Drupal Developers For Your Website
Hire Drupal Developers For Your WebsiteHire Drupal Developers For Your Website
Hire Drupal Developers For Your Website
 
Hire Drupal Developers For Your Website
Hire Drupal Developers For Your WebsiteHire Drupal Developers For Your Website
Hire Drupal Developers For Your Website
 
Miracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hubMiracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hub
 
App Service Web
App Service WebApp Service Web
App Service Web
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
 
Cordova training : Day 1 : Introduction to Cordova
Cordova training : Day 1 : Introduction to CordovaCordova training : Day 1 : Introduction to Cordova
Cordova training : Day 1 : Introduction to Cordova
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8
 

Recently uploaded

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 

Recently uploaded (20)

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 

Drupal 7 Web Services Crash Course

  • 1. WEB SERVICES CRASH COURSE Presented by: Noah Lively, Founder of KoreMedia Productions DRUPAL 7
  • 2. PURPOSE OF THIS CLASS: Demonstrate how to use Drupal 7 as a web service endpoint. Why? So you can connect apps and other websites to your Drupal site.
  • 3. ANALOGY: Let Drupal be the “brain” Let your apps be the “face”
  • 4. WHY DRUPAL WEB SERVICES: Because web services are cool Because a website is much more versatile when it can connect with other sites (continued)
  • 5. WHY DRUPAL WEB SERVICES: Because Drupal provides an excellent hybrid solution between powerful CMS and web service platform  Leverage an enterprise-class CMS  Provide a web-based back-end management interface via core platform  Provide a web-based front-end user interface via core platform  Provide a mobile app or HTML5 app interface via web services
  • 6. EXAMPLE APP: PIZZA SHOP Back-end:  A Drupal site acts as the application server and content management platform.  Manager can manage the menu through the Drupal site.  Drupal site receives orders and notifies the manager.
  • 7. EXAMPLE APP: PIZZA SHOP Front-end:  An AngularJS app connects to Drupal and displays pizzas in a responsive web page.  Customers can order pizzas from the app, which triggers a server-side email to the manager (via web services)  Customers can make menu suggestions by configuring their own pizza topping combinations. These suggestions get added as “unpublished” nodes to the Drupal site via web services.
  • 8. MODULES: Common modules to use and be aware of:  Services – Core platform that exposes existing data types to Drupal  Oauth or OAuth2  CORS – cross-origin resource sharing. Provides necessary web server headers to allow front-end apps to access the data  Services Views
  • 9. DRUPAL SETUP:  Install services module  Configure a web service endpoint  Select which web service methods to enable for that endpoint  Configure authentication (session, oauth or none)  Install services_views module to use views as web service endpoints  Write your own service endpoints by implementing hook_services_resources() in your module
  • 10. TESTING IT OUT:  Install the Postman extension on Google chrome  Set up an HTTP request in Postman pointing to your web service method:  (SITE URL) + (ENDPOINT PATH) + (METHOD NAME).json  For example usage, download the Postman collection referenced at the end of this presentation and install it into your local Postman app
  • 11. EXAMPLE CODE: Example site (includes database dump): https://github.com/nlively/pizza_shop Example app: https://github.com/nlively/pizza_shop_app Postman collection: https://www.getpostman.com/collections/26f40e0428bd1ba8c10 9
  • 12. CONTACT ME: Email: noah@koremedia.net Twitter: noahlively Skype: noahlively Drupal.org: noahlively
  • 13. ABOUT ME: Noah Lively  Been involved in Drupal development since 2008.  Founder and CEO of KoreMedia Productions, a full-service Rocklin-based Drupal firm  Co-creator of WindowAgent, a Drupal-backed product that takes real estate listings from the MLS and exposes them via a touch screen interface
  • 14. ABOUT KOREMEDIA: We are a growing team of Drupal devs. Our key strengths are in connecting Drupal to other platforms and upgrading Drupal sites (major versions), and optimizing Drupal for the enterprise.