SlideShare a Scribd company logo
Magento Web API Ecosystem. Imagine 2018
Magento
Web API
Ecosystem
Eugene Tulika
Magento 2 Architect, Community Engineering | Magento
@vrann
Misha Kotov
Sr. Product Manager | Magento
@mish_capish
The Beginning
Magento Web API Ecosystem. Imagine 2018
Benefits
Business Agility
• Support for virtually all external systems
• Ultimate platform flexibility
Innovation Potential
• Unlimited customization potential
• Piecemeal platform consumption
Lower Total Cost of Ownership (TCO)
• Minimized integration efforts
• Streamlined Magento implementations
• Reduced conflicts and maintenance
Faster Time to Market (TTM)
• Accelerated development
• Shorter learning curve
Magento Web API Ecosystem. Imagine 2018
What makes a good API?
• Support overall business strategy
• Help users reach strategic objectives
• Embody strong developer experience
– Intuitive
– Fast
– Reliable
– Extensible
Vision for Magento APIs
Rich coverage
Performance
Scalability
Documentation
Tooling
Developer experience
Customization
Standardization
Web API use in Magento
• 3rd party back-office integrations
• Extensions
– Back-end
– Front-end
• Mobile applications
• Front-end customizations
– Headless
– PWAs
...
Accounting
Item-level inventory management
POS management
Loyalty program management
Sales Promotions
Sales forecasting
Data exchange
Invoice processing
KPI monitoring
Price management
Workflow management
Supply chain
Manufacturing
Supplier price book management
HR
...
Unlock the Future
• Virtual Reality (VR)
• Augmented Reality (AR)
• Voice Assistants
• Chat Bots
• Connected Devices
• IOT
• Artificial Intelligence (AI)
• Machine Learning
SOAP, REST, GraphQL
SOAP
• Designed for system integrations
• Relies on XML, WSDL
• Built-in error handling
• Language-, platform-, transport-
neutral
• Decreasing use in modern tech
REST
• GET/POST/PUT/DELETE commands
• HTTP status codes
• Various data formats
• Multiple authentication methods
• Wide adoption
GraphQL
• Accomplishes more with one API call
• Developer gets exactly (and only) the requested data
• Documentation is a first-class citizen
• Deprecation in a first-class citizen
• Introspection and graphical tooling
Demo (if time allows)
GraphQL
• First experimental release
– Storefront data only
– Support for products, categories, customer, EAV, scopes
– Custom resolvers
– Testing framework
– Error handling, helpers
• Next
– Performance improvements
– Support for checkout, payments, orders, My Account
• Get involved! https://github.com/magento/graphql-ce/wiki
Play nice with others
Magento Asynchronous
and Bulk APIs
Use Case
• ERP system sends all updated entities to the Magento Web API
at once
– resulted in a massive database overload. This caused performance
to decrease, affecting conversions as well as the shoppers’ user
experience.
• ERP system is not capable of tracking error messages.
• ERP system should say online till the process finished.
Usage of Message Queues
Asynchronous APIs Endpoint Prefix
Every existing Magneto 2 Web API Endpoint is converted to
asynchronous by adding /async prefix (for PUT/POST/DELETE
requests only)
Examples:
• POST /async/V1/orders/:id/cancel
• PUT /async/V1/customer
• DELETE /async/V1/products/:sku
• …
Bulk APIs
• Allow to send multiple entities to API endpoint in one request
POST /async/bulk/V1/products
[
{
"product": {...}
},
{
"product": {...}
}
…
]
Bulk Asynchronous APIs Endpoint Prefix
• For any existing Magneto 2 Web API Synchronous endpoints
• Adding prefix /async/bulk enables accepting array of entities
• for PUT/POST/DELETE requests only
– i.e.: for POST /V1/products analogue bulk endpoint is:
POST /async/bulk/V1/products
Dealing with Parameters in Bulk Requests
Consider PUT /V1/product/my-first-product-1/options/3
• This endpoint has information in request path related to particular
resource, so cannot accept array of different resources.
To construct equivalent Bulk endpoint we should rewrite parameters
placeholders replacing “:” with “by”, i.e.:
• PUT /V1/product/:sku/options/:optionId =>
PUT /async/bulk/V1/product/bySku/options/byOptionId
• The value of the parameters should be passed as the part of the
entity body.
Asynchronous Response
202 Accepted
{
"bulk_uuid": "b8b79af4-fe6a-4f8a-a6f3-76b6e95aeec8",
"request_items": {
"items": [
{
"id": 0,
"data_hash": null,
"status": "accepted"
}
]
}
}
Status Endpoints
• GET /V1/bulk/:bulkUuid/status
• GET /V1/bulk/:bulkUuid/detailed-status
{ "operations_list": [{
"id": 0,
"topic_name": ”/async/products",
"status": 0,
"result_serialized_data": ”{…}",
"result_message": "",
"error_code": 0
}],
"extension_attributes": {},
"bulk_id": " b8b79af4-fe6a-4f8a-a6f3-76b6e95aeec8 ",
"description": "string",
"start_time": "string",
"user_id": 0,
"operation_count": 0
}
Load Testing
Increasing number of parallel threads, Sync vs Async, average response time
Load Testing
Increasing number of parallel threads, Sync vs Async, Errors Rate
Swagger Support
Building Feature with Community
• Project started in December 2017 initiated by Magento Solution
partners:
• Requirements discussion and architecture design till January 2018
• 3 developers total participated from comwrap and Balance Internet
side
• Implemented and Merged to Magento 2.3 Open Source release
line – March 2018
Phase 2 of the project
• Performance improvements
with Redis
• API for search on Statuses
• Status Endpoints for the
Entities
https://github.com/magento/commu
nity-features/projects/1
Thank you!

More Related Content

PPTX
Essential reporting for capacity and performance management webinar 11 18
PPTX
Upstream O&G Power Platform User Group Dec 2020 - News You Can Use
PDF
Макс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
PDF
ConfusingDataVisuallyAttractiveOracleAltaAMIS25
PPTX
Travis Wright - Complete it service management
PPTX
Webinar: Salesforce Customization using Visualforce and Lightning Component F...
PDF
Dynamic Route Optmization
PPT
Presentation by Richard McMahon - Senior Support Consultant of Geowise
Essential reporting for capacity and performance management webinar 11 18
Upstream O&G Power Platform User Group Dec 2020 - News You Can Use
Макс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
ConfusingDataVisuallyAttractiveOracleAltaAMIS25
Travis Wright - Complete it service management
Webinar: Salesforce Customization using Visualforce and Lightning Component F...
Dynamic Route Optmization
Presentation by Richard McMahon - Senior Support Consultant of Geowise

What's hot (14)

PDF
Pega systems vs siebel CRM capabilities - A first look
PDF
The mobility group (eng) 2015
PPTX
Azure Web Apps - Deep Dive
PPTX
Continuous Delivery Summit London '17
PDF
47Line PriorityEngine
PPT
CubeView is a browser based Business Analytical reporting tool OLAP Dashboard
PPTX
Construction erp
PDF
How a major industrial group automated its purchase order processes
PPTX
ERP monitoring with Applications Manager
PPTX
DWBI-WORK MIDWAY
PDF
Managing transactions on Ethereum with Apache Airflow
PDF
Introduction to Software Potential
PPTX
Pega systems vs siebel CRM capabilities - A first look
The mobility group (eng) 2015
Azure Web Apps - Deep Dive
Continuous Delivery Summit London '17
47Line PriorityEngine
CubeView is a browser based Business Analytical reporting tool OLAP Dashboard
Construction erp
How a major industrial group automated its purchase order processes
ERP monitoring with Applications Manager
DWBI-WORK MIDWAY
Managing transactions on Ethereum with Apache Airflow
Introduction to Software Potential
Ad

Similar to Magento Web API Ecosystem. Imagine 2018 (20)

PDF
An Introduction to Microservices
PPTX
Event-Based API Patterns and Practices
PPTX
Api gateway : To be or not to be
PDF
API and Big Data Solution Patterns
PDF
Processing Real-Time Data at Scale: A streaming platform as a central nervous...
PDF
Online shopping portal: Software Project Plan
PPTX
F1_Design Mission Critical Enterprise Applications with Power Automate and Do...
PDF
PDF
Overview xs en
DOCX
Resume Somnath B_October 2016
PDF
Salesforce Winter 23 Release Webinar Slide Deck
PPTX
Magento 2 overview. Alan Kent
PPTX
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
PDF
Contribution day guide. MLEU 2019
PPTX
Agile scrum with Microsoft VSTS
PDF
IBM Licensing: Technical fundamentals for discovery
PDF
Introduction to Software Potential
PDF
Next level data operations using Power Automate magic
PPT
APITalkMeetupSharable
An Introduction to Microservices
Event-Based API Patterns and Practices
Api gateway : To be or not to be
API and Big Data Solution Patterns
Processing Real-Time Data at Scale: A streaming platform as a central nervous...
Online shopping portal: Software Project Plan
F1_Design Mission Critical Enterprise Applications with Power Automate and Do...
Overview xs en
Resume Somnath B_October 2016
Salesforce Winter 23 Release Webinar Slide Deck
Magento 2 overview. Alan Kent
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
Contribution day guide. MLEU 2019
Agile scrum with Microsoft VSTS
IBM Licensing: Technical fundamentals for discovery
Introduction to Software Potential
Next level data operations using Power Automate magic
APITalkMeetupSharable
Ad

More from Vrann Tulika (7)

PPTX
Career of the Software Engineer in Modern Open-Source e-Commerce Company
PPTX
Magento Live Australia 2016 Facebook Chatbot for Magento
PPTX
Magento Live Australia 2016: Request Flow
PPTX
Mage Titans USA 2016 Magento/Facebook/RabbitMQ
PPT
Enterprise Patterns in Magento
PPT
Розпаралелювання Програм на Фортрані з Використанням Техніки Переписувальних ...
PPTX
PHP and Asynchronous Systems
Career of the Software Engineer in Modern Open-Source e-Commerce Company
Magento Live Australia 2016 Facebook Chatbot for Magento
Magento Live Australia 2016: Request Flow
Mage Titans USA 2016 Magento/Facebook/RabbitMQ
Enterprise Patterns in Magento
Розпаралелювання Програм на Фортрані з Використанням Техніки Переписувальних ...
PHP and Asynchronous Systems

Recently uploaded (20)

PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PPT
Teaching material agriculture food technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Machine learning based COVID-19 study performance prediction
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Machine Learning_overview_presentation.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
The AUB Centre for AI in Media Proposal.docx
Teaching material agriculture food technology
Network Security Unit 5.pdf for BCA BBA.
Machine learning based COVID-19 study performance prediction
Spectral efficient network and resource selection model in 5G networks
Machine Learning_overview_presentation.pptx
A Presentation on Artificial Intelligence
Mobile App Security Testing_ A Comprehensive Guide.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Programs and apps: productivity, graphics, security and other tools
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Empathic Computing: Creating Shared Understanding
Review of recent advances in non-invasive hemoglobin estimation
“AI and Expert System Decision Support & Business Intelligence Systems”
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Digital-Transformation-Roadmap-for-Companies.pptx

Magento Web API Ecosystem. Imagine 2018

  • 3. Eugene Tulika Magento 2 Architect, Community Engineering | Magento @vrann Misha Kotov Sr. Product Manager | Magento @mish_capish
  • 6. Benefits Business Agility • Support for virtually all external systems • Ultimate platform flexibility Innovation Potential • Unlimited customization potential • Piecemeal platform consumption Lower Total Cost of Ownership (TCO) • Minimized integration efforts • Streamlined Magento implementations • Reduced conflicts and maintenance Faster Time to Market (TTM) • Accelerated development • Shorter learning curve
  • 8. What makes a good API? • Support overall business strategy • Help users reach strategic objectives • Embody strong developer experience – Intuitive – Fast – Reliable – Extensible
  • 9. Vision for Magento APIs Rich coverage Performance Scalability Documentation Tooling Developer experience Customization Standardization
  • 10. Web API use in Magento • 3rd party back-office integrations • Extensions – Back-end – Front-end • Mobile applications • Front-end customizations – Headless – PWAs ... Accounting Item-level inventory management POS management Loyalty program management Sales Promotions Sales forecasting Data exchange Invoice processing KPI monitoring Price management Workflow management Supply chain Manufacturing Supplier price book management HR ...
  • 11. Unlock the Future • Virtual Reality (VR) • Augmented Reality (AR) • Voice Assistants • Chat Bots • Connected Devices • IOT • Artificial Intelligence (AI) • Machine Learning
  • 13. SOAP • Designed for system integrations • Relies on XML, WSDL • Built-in error handling • Language-, platform-, transport- neutral • Decreasing use in modern tech
  • 14. REST • GET/POST/PUT/DELETE commands • HTTP status codes • Various data formats • Multiple authentication methods • Wide adoption
  • 15. GraphQL • Accomplishes more with one API call • Developer gets exactly (and only) the requested data • Documentation is a first-class citizen • Deprecation in a first-class citizen • Introspection and graphical tooling Demo (if time allows)
  • 16. GraphQL • First experimental release – Storefront data only – Support for products, categories, customer, EAV, scopes – Custom resolvers – Testing framework – Error handling, helpers • Next – Performance improvements – Support for checkout, payments, orders, My Account • Get involved! https://github.com/magento/graphql-ce/wiki
  • 17. Play nice with others
  • 19. Use Case • ERP system sends all updated entities to the Magento Web API at once – resulted in a massive database overload. This caused performance to decrease, affecting conversions as well as the shoppers’ user experience. • ERP system is not capable of tracking error messages. • ERP system should say online till the process finished.
  • 21. Asynchronous APIs Endpoint Prefix Every existing Magneto 2 Web API Endpoint is converted to asynchronous by adding /async prefix (for PUT/POST/DELETE requests only) Examples: • POST /async/V1/orders/:id/cancel • PUT /async/V1/customer • DELETE /async/V1/products/:sku • …
  • 22. Bulk APIs • Allow to send multiple entities to API endpoint in one request POST /async/bulk/V1/products [ { "product": {...} }, { "product": {...} } … ]
  • 23. Bulk Asynchronous APIs Endpoint Prefix • For any existing Magneto 2 Web API Synchronous endpoints • Adding prefix /async/bulk enables accepting array of entities • for PUT/POST/DELETE requests only – i.e.: for POST /V1/products analogue bulk endpoint is: POST /async/bulk/V1/products
  • 24. Dealing with Parameters in Bulk Requests Consider PUT /V1/product/my-first-product-1/options/3 • This endpoint has information in request path related to particular resource, so cannot accept array of different resources. To construct equivalent Bulk endpoint we should rewrite parameters placeholders replacing “:” with “by”, i.e.: • PUT /V1/product/:sku/options/:optionId => PUT /async/bulk/V1/product/bySku/options/byOptionId • The value of the parameters should be passed as the part of the entity body.
  • 25. Asynchronous Response 202 Accepted { "bulk_uuid": "b8b79af4-fe6a-4f8a-a6f3-76b6e95aeec8", "request_items": { "items": [ { "id": 0, "data_hash": null, "status": "accepted" } ] } }
  • 26. Status Endpoints • GET /V1/bulk/:bulkUuid/status • GET /V1/bulk/:bulkUuid/detailed-status { "operations_list": [{ "id": 0, "topic_name": ”/async/products", "status": 0, "result_serialized_data": ”{…}", "result_message": "", "error_code": 0 }], "extension_attributes": {}, "bulk_id": " b8b79af4-fe6a-4f8a-a6f3-76b6e95aeec8 ", "description": "string", "start_time": "string", "user_id": 0, "operation_count": 0 }
  • 27. Load Testing Increasing number of parallel threads, Sync vs Async, average response time
  • 28. Load Testing Increasing number of parallel threads, Sync vs Async, Errors Rate
  • 30. Building Feature with Community • Project started in December 2017 initiated by Magento Solution partners: • Requirements discussion and architecture design till January 2018 • 3 developers total participated from comwrap and Balance Internet side • Implemented and Merged to Magento 2.3 Open Source release line – March 2018
  • 31. Phase 2 of the project • Performance improvements with Redis • API for search on Statuses • Status Endpoints for the Entities https://github.com/magento/commu nity-features/projects/1