SlideShare a Scribd company logo
1 of 34
Download to read offline
222	Third	Street,	Suite	234	Cambridge,	MA	02142	|	www.bioraft.com
JSON:API	2
A	Path	To	Decoupled	Drupal
Senior Drupal Developer at
BioRAFT
Drupal:
https://www.drupal.org/u/ebeyrent
Twitter:
https://twitter.com/ebeyrent
LinkedIn:
https://www.linkedin.com/in/
erichbeyrent
ERICH	BEYRENT
Agenda
• What	is	JSON:API
Agenda
• What	is	JSON:API	
• Why	JSON:API?
Agenda
• What	is	JSON:API	
• Why	JSON:API?	
• JSON:API	overview
Agenda
• What	is	JSON:API	
• Why	JSON:API?	
• JSON:API	overview	
• Authentication	with	JSON	Web	Tokens
Agenda
• What	is	JSON:API	
• Why	JSON:API?	
• JSON:API	overview	
• Authentication	with	JSON	Web	Tokens	
• Requests,	filters,	sorting,	pagination
Agenda
• What	is	JSON:API	
• Why	JSON:API?	
• JSON:API	overview	
• Authentication	with	JSON	Web	Tokens	
• Requests,	filters,	sorting,	pagination	
• File	uploads,	image	derivatives
Agenda
• What	is	JSON:API	
• Why	JSON:API?	
• JSON:API	overview	
• Authentication	with	JSON	Web	Tokens	
• Requests,	filters,	sorting,	pagination	
• File	uploads,	image	derivatives	
• Gotchas
{	JSON:API	}
A	Specification	For	Building	APIs	In	JSON
{	json:api	}
• It’s	a	specification	that	Drupal	now	implements	
• Designed	to	be	readable,	flexible,	and	
discoverable	
• Design	to	minimize	the	number	of	requests	
and	amount	of	data	transmitted	
• Provides	a	new	IANA-registered	media	type

application/vnd.api+json
Why	JSON:API?
• High	Productivity	
• Minimum	requests	to	the	server	
• Efficient	use	of	caching	
• Great	filtering,	pagination,	and	sorting	
• Related	resources	in	one	request	
• Supports	sparse	field	sets
Why	not	core	REST?
• Multiple	requests	are	needed	for	common	needs*	
• Responses	are	bloated	
• Doesn’t	follow	widely	accepted	guidelines	or	
specifications	
• Data	structures	are	not	consistent	
• Doesn’t	support	sparse	fieldsets*	
• No	support	for	bulk	writing	of	data	
• Configuration	requires	a	contrib	module	(REST	UI)	
• No	support	for	decoupled	filtering
Why	not	core	GraphQL?
• Often	requires	extra	infrastructure	
• Clients	often	require	additional	libraries	
• Extra	work	to	be	able	to	use	CDNs	and	browser	caches	
• Each	implementation	dictates	how	writes	are	handled;	there	is	
no	standard	
• GraphQL	queries	can	get	very	large	making	GET	requests	
impossible	to	cache	
• Servers	require	their	own	tooling	to	support	the	full	benefit	of	
GraphQL	
• May	require	additional	permissions,	configuration,	and	custom	
code
JSON:API	Overview
• Defaults	to	Read-Only	mode	
• admin/config/services/jsonapi
JSON:API	Overview
• Enable	Counts	
• admin/config/services/jsonapi/extras
JSON:API	Overview
• Headers
The	follow	headers	are	required	on	all	GET	request	to	get	a	
proper	JSON:API	request	and	response.	
✦ Accept:	application/vnd.api+json	
✦ Content-Type:	application/vnd.api+json
JSON:API	Overview
• Response	Document	

Structure
{
jsonapi: {
},
data: {
},
included: {
}
meta: {
},
links: {
}
JSON:API	Overview
• Response	Document	

Structure
{
jsonapi: {
},
data: {
},
included: {
}
meta: {
},
links: {
}
Contains	the	jsonapi	
version	and	link	to	
the	jsonapi	schema
JSON:API	Overview
• Response	Document	

Structure
{
jsonapi: {
},
data: {
},
included: {
}
meta: {
},
links: {
}
Contains	“resource	objects”	-	a	
JSON	representation	of		a	single	
entity
{
JSON:API	Overview
• Response	Document	

Structure
{
jsonapi: {
},
data: {
},
included: {
}
meta: {
},
links: {
}
JSON:API	Extras	adds	this,	
contains	a	count	of	all	resource	
objects	matched	by	the	query
JSON:API	Overview
• Response	Document	

Structure
{
jsonapi: {
},
data: {
},
included: {
}
meta: {
},
links: {
}
Contains	a	link	to	the	query	
executed
Includes
• Allows	you	to	get	all	related	data	in	one	
request	
• Related	entities	shared	by	resource	objects	are	
fetched	only	once	
• Each	relationship	has	an	id	that	correlates	to	a	
matching	id	in	the	includes
Basic	Authentication
• Enable	the	HTTP	Basic	Authentication	module	
Authorization:	Basic	<Base64EncodedUser/Password>
Authentication	with	JWT
• Install	the	Key	and	JWT	modules*	
• Signing	and	validating	JWTs	requires	a	secret	
• JWT	HMAC		
head -c 64 /dev/urandom | base64 -w 0 > /path/to/private/dir/jwt.key.txt
• JWT	RSA	Key	
openssl genrsa -out private.key 2048 > /path/to/private/dir/jwt.key.txt
• The	Key	module	provides	the	storage	for	
these	keys,	which	JWT	uses
Authentication	with	JWT
• The	secret	is	shared	between	client	and	server	
• The	client	encodes	a	JWT	using	the	shared	
secret	
• The	JWT	is	passed	in	as	a	Bearer	token	
• The	JWT	module	decodes	the	Bearer	token	and	
uses	the	uid	property	to	create	a	Drupal	
session	for	that	user
Authentication	with	JWT
• Payload
{
'iss': 'mydomain.com',
'iat': 1516239022,
'exp': 1562762688,
'drupal': {
'uid': 45
}
}
Authorization:	Bearer	
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZ
SI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJkcnVwYWwiOnsidWlkIjo0NX
19.w2NqGAQXLYn5iBOkG9NM1ImTtVBDKoi76RDGFMZomm8
Collections
• Queries	are	resource-based	
• /jsonapi/node	
• /jsonapi/node/article	
• /jsonapi/node/article/10eb67d4-
c045-4b9b-9e2b-5ea299122a67
Which	of	these	is	wrong?
Requests,	filters,	sorting,	pagination
• GET	
• POST	
• PATCH	
• DELETE
File	uploads,	image	derivatives
• File	uploads	are	a	two-step	process	
• POST	the	file,	get	the	response	
• Attach	the	file	entity	to	another	entity	using	
the	id	in	the	response
Image	derivatives
• Enable	the	Consumer	and	Consumer	Image	
Styles	modules	
• Configure	
• Add	the	consumer	id	to	your	request	headers	
X-Consumer-ID: {{ your_consumer_id }}
Gotchas
• JSON:API	is	entirely	resource-based,	you	can’t	get	a	result	set	
with	different	resources	
• Doesn’t	support	business	logic	(reset	passwords,	registering	
users)	
• Resource	limits	are	capped	at	50	per	request	
• Limited	multilingual	functionality	
• Some	filters	may	be	too	much	for	GET;	custom	code	will	be	
needed	to	transform	POST	(use	a	route	enhancer)	
• Some	queries	with	includes	will	result	in	very	large	responses,	
may	have	to	make	multiple	requests	in	parallel
Resources
• https://jsonapi.org	
• https://drupal.org/project/jsonapi	
• https://drupal.org/docs/8/modules/jsonapi	
• https://dri.es/headless-cms-rest-vs-jsonapi-vs-
graphql
{ JSON:API} 2 - A Path to Decoupled Drupal

More Related Content

Similar to { JSON:API} 2 - A Path to Decoupled Drupal

2012 09 aos-workshop-johanneskeizer
2012 09 aos-workshop-johanneskeizer2012 09 aos-workshop-johanneskeizer
2012 09 aos-workshop-johanneskeizerJohannes Keizer
 
NISO REST Training IIIF
NISO REST Training IIIF NISO REST Training IIIF
NISO REST Training IIIF Glen Robson
 
Evaluating Drupal for the Enterprise
Evaluating Drupal for the EnterpriseEvaluating Drupal for the Enterprise
Evaluating Drupal for the Enterpriseultimike
 
Restful风格ž„web服务架构
Restful风格ž„web服务架构Restful风格ž„web服务架构
Restful风格ž„web服务架构Benjamin Tan
 
Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012Adhearsion Foundation
 
Utilizing open-data
Utilizing open-dataUtilizing open-data
Utilizing open-dataccalnan
 
Utilizing Open Government Data Using Drupal
Utilizing Open Government Data Using DrupalUtilizing Open Government Data Using Drupal
Utilizing Open Government Data Using Drupalccalnan
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebChris Canal
 
Web APIs in Node.js Core: Past, Present, and Future (JSConf EU 2019)
Web APIs in Node.js Core: Past, Present, and Future (JSConf EU 2019)Web APIs in Node.js Core: Past, Present, and Future (JSConf EU 2019)
Web APIs in Node.js Core: Past, Present, and Future (JSConf EU 2019)Igalia
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCdisc99_
 
2012 05 usain-johanneskeizer
2012 05 usain-johanneskeizer2012 05 usain-johanneskeizer
2012 05 usain-johanneskeizerJohannes Keizer
 
NCBO Technology Overview
NCBO Technology OverviewNCBO Technology Overview
NCBO Technology OverviewTrish Whetzel
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swaggerTony Tam
 
Four Days Out: Quick Itineraries For Last-Minute Dates
Four Days Out: Quick Itineraries For Last-Minute DatesFour Days Out: Quick Itineraries For Last-Minute Dates
Four Days Out: Quick Itineraries For Last-Minute DatesFlatiron School
 
Building the Global Open Knowledgebase (ER&L 2013)
Building the Global Open Knowledgebase (ER&L 2013)Building the Global Open Knowledgebase (ER&L 2013)
Building the Global Open Knowledgebase (ER&L 2013)GOKb Project
 
UPenn on Rails intro
UPenn on Rails introUPenn on Rails intro
UPenn on Rails introMat Schaffer
 
Semantic search: from document retrieval to virtual assistants
Semantic search: from document retrieval to virtual assistantsSemantic search: from document retrieval to virtual assistants
Semantic search: from document retrieval to virtual assistantsPeter Mika
 
Web performance: beyond load testing
Web performance: beyond load testingWeb performance: beyond load testing
Web performance: beyond load testingSergeyChernyshev
 
"Easy and scalable serverless backend for your next mobile or web app", Arman...
"Easy and scalable serverless backend for your next mobile or web app", Arman..."Easy and scalable serverless backend for your next mobile or web app", Arman...
"Easy and scalable serverless backend for your next mobile or web app", Arman...Fwdays
 
Workshop "Building Modern Web Applications with Firebase (and Angular)", Arm...
Workshop "Building Modern Web Applications with Firebase (and Angular)",  Arm...Workshop "Building Modern Web Applications with Firebase (and Angular)",  Arm...
Workshop "Building Modern Web Applications with Firebase (and Angular)", Arm...Fwdays
 

Similar to { JSON:API} 2 - A Path to Decoupled Drupal (20)

2012 09 aos-workshop-johanneskeizer
2012 09 aos-workshop-johanneskeizer2012 09 aos-workshop-johanneskeizer
2012 09 aos-workshop-johanneskeizer
 
NISO REST Training IIIF
NISO REST Training IIIF NISO REST Training IIIF
NISO REST Training IIIF
 
Evaluating Drupal for the Enterprise
Evaluating Drupal for the EnterpriseEvaluating Drupal for the Enterprise
Evaluating Drupal for the Enterprise
 
Restful风格ž„web服务架构
Restful风格ž„web服务架构Restful风格ž„web服务架构
Restful风格ž„web服务架构
 
Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012
 
Utilizing open-data
Utilizing open-dataUtilizing open-data
Utilizing open-data
 
Utilizing Open Government Data Using Drupal
Utilizing Open Government Data Using DrupalUtilizing Open Government Data Using Drupal
Utilizing Open Government Data Using Drupal
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
 
Web APIs in Node.js Core: Past, Present, and Future (JSConf EU 2019)
Web APIs in Node.js Core: Past, Present, and Future (JSConf EU 2019)Web APIs in Node.js Core: Past, Present, and Future (JSConf EU 2019)
Web APIs in Node.js Core: Past, Present, and Future (JSConf EU 2019)
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
2012 05 usain-johanneskeizer
2012 05 usain-johanneskeizer2012 05 usain-johanneskeizer
2012 05 usain-johanneskeizer
 
NCBO Technology Overview
NCBO Technology OverviewNCBO Technology Overview
NCBO Technology Overview
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
 
Four Days Out: Quick Itineraries For Last-Minute Dates
Four Days Out: Quick Itineraries For Last-Minute DatesFour Days Out: Quick Itineraries For Last-Minute Dates
Four Days Out: Quick Itineraries For Last-Minute Dates
 
Building the Global Open Knowledgebase (ER&L 2013)
Building the Global Open Knowledgebase (ER&L 2013)Building the Global Open Knowledgebase (ER&L 2013)
Building the Global Open Knowledgebase (ER&L 2013)
 
UPenn on Rails intro
UPenn on Rails introUPenn on Rails intro
UPenn on Rails intro
 
Semantic search: from document retrieval to virtual assistants
Semantic search: from document retrieval to virtual assistantsSemantic search: from document retrieval to virtual assistants
Semantic search: from document retrieval to virtual assistants
 
Web performance: beyond load testing
Web performance: beyond load testingWeb performance: beyond load testing
Web performance: beyond load testing
 
"Easy and scalable serverless backend for your next mobile or web app", Arman...
"Easy and scalable serverless backend for your next mobile or web app", Arman..."Easy and scalable serverless backend for your next mobile or web app", Arman...
"Easy and scalable serverless backend for your next mobile or web app", Arman...
 
Workshop "Building Modern Web Applications with Firebase (and Angular)", Arm...
Workshop "Building Modern Web Applications with Firebase (and Angular)",  Arm...Workshop "Building Modern Web Applications with Firebase (and Angular)",  Arm...
Workshop "Building Modern Web Applications with Firebase (and Angular)", Arm...
 

More from Erich Beyrent

Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Erich Beyrent
 
Digital Mayflower - Data Pilgrimage with the Drupal Migrate Module
Digital Mayflower - Data Pilgrimage with the Drupal Migrate ModuleDigital Mayflower - Data Pilgrimage with the Drupal Migrate Module
Digital Mayflower - Data Pilgrimage with the Drupal Migrate ModuleErich Beyrent
 
Hack-Proof Your Drupal App
Hack-Proof Your Drupal AppHack-Proof Your Drupal App
Hack-Proof Your Drupal AppErich Beyrent
 
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for DrupalStaging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for DrupalErich Beyrent
 
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for DrupalStaging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for DrupalErich Beyrent
 

More from Erich Beyrent (6)

Test your modules
Test your modulesTest your modules
Test your modules
 
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
 
Digital Mayflower - Data Pilgrimage with the Drupal Migrate Module
Digital Mayflower - Data Pilgrimage with the Drupal Migrate ModuleDigital Mayflower - Data Pilgrimage with the Drupal Migrate Module
Digital Mayflower - Data Pilgrimage with the Drupal Migrate Module
 
Hack-Proof Your Drupal App
Hack-Proof Your Drupal AppHack-Proof Your Drupal App
Hack-Proof Your Drupal App
 
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for DrupalStaging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
 
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for DrupalStaging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
 

Recently uploaded

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 

Recently uploaded (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 

{ JSON:API} 2 - A Path to Decoupled Drupal