SlideShare a Scribd company logo
Building a framework
agnostic API
David Manners
@mannersd
How to un-Magento your
Magento code/developers
David Manners
@mannersd
Disclaimers
• Not for all,
• Not perfect,
• Will not code for you!
• Love to build in blocks,
Are you sitting comfortably
Are you sitting comfortably
• Magento 1 EOL,
• New customer,
• Lots of integrations,
• Migration possible,
ERP API Magento
How do you build this?
What on earth is a store?
Interface everything!
Interface everything
• Take your domain and enforce your properties,
• Tell frameworks how to interact with your domain,
Domain Objects
A middleware
A middleware
• Pick one you like!
• Take request,
• Give response,
• SIMPLES!
Response/Request parsing
Build a bridge
The results!
The results!
• Ready to go with M1,
• Ready to switch to M2,
• Happy Customer?
• Happy Developers?
All that glitters is not gold
Build from the interfaces
Store Interface
interface StoreInterface
{
public function getIdentifier();
public function getCode();
public function getName();
public function getActive();
}
StoreRepositoryInterface
interface StoreRepositoryInterface
{
public function find(array $ids = []);
public function save(StoreInterface $store);
}
ExporterInterface
interface ExporterInterface
{
public function setIdentifier(array $identifier = []);
public function execute();
}
ImporterInterface
interface ImporterInterface
{
public function execute();
}
Bridge Interface
interface BridgeInterface
{
public function getPageRepository();
}
Build from the interfaces
• implement ExporterInterface
• implement ImporterInterface
• implement StoreInterface
Build from the interfaces (M1/M2)
• Implement BridgeInterface,
• Implement StoreRepositoryInterface
Let Magento do Magento
Do one thing well
Free your developers
Enjoy coding again
Can I see it?
• https://github.com/sitewards/setup
• https://github.com/sitewards/setup-mage2
• https://github.com/sitewards/setup-mage1
Building a framework
agnostic API
David Manners
@mannersd

More Related Content

What's hot (20)

Apex code Benchmarking
Apex code BenchmarkingApex code Benchmarking
Apex code Benchmarking
Amit Chaudhary
 
Google chrome extensions
Google chrome extensionsGoogle chrome extensions
Google chrome extensions
lillianabe
 
Headless - the future of e-commerce
Headless - the future of e-commerceHeadless - the future of e-commerce
Headless - the future of e-commerce
Jamie Maria Schouren
 
Building a custom column office 365 app - lessons learnt from building the K...
Building a custom column office 365 app - lessons learnt from building  the K...Building a custom column office 365 app - lessons learnt from building  the K...
Building a custom column office 365 app - lessons learnt from building the K...
Nimrod Geva
 
Useful tools for Freelancers
Useful tools for FreelancersUseful tools for Freelancers
Useful tools for Freelancers
lillianabe
 
Magento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHPMagento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHP
varien
 
Few Project Management Tips
Few Project Management TipsFew Project Management Tips
Few Project Management Tips
Ketan Raval
 
PickBazar Best React GraphQL ECommerce Template
PickBazar Best React GraphQL ECommerce TemplatePickBazar Best React GraphQL ECommerce Template
PickBazar Best React GraphQL ECommerce Template
SeasonGowen
 
Forms + Zaps = No Code Apps - No Code Conf 2019 Demo Theater
Forms + Zaps = No Code Apps - No Code Conf 2019 Demo TheaterForms + Zaps = No Code Apps - No Code Conf 2019 Demo Theater
Forms + Zaps = No Code Apps - No Code Conf 2019 Demo Theater
Webflow
 
Django Shop
Django ShopDjango Shop
Django Shop
rkmohammadi
 
WebFest 2011 WebMatrix Overview by Gavin Warrener
WebFest 2011 WebMatrix Overview by Gavin WarrenerWebFest 2011 WebMatrix Overview by Gavin Warrener
WebFest 2011 WebMatrix Overview by Gavin Warrener
Spiffy
 
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High GearASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
Kevin Griffin
 
Don't lose revenue. Go viral with no downtime.
Don't lose revenue. Go viral with no downtime.Don't lose revenue. Go viral with no downtime.
Don't lose revenue. Go viral with no downtime.
WP Engine
 
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
AOE
 
The Future is Now! Using Machine Learning to Automate Plugin Updates + Secure...
The Future is Now! Using Machine Learning to Automate Plugin Updates + Secure...The Future is Now! Using Machine Learning to Automate Plugin Updates + Secure...
The Future is Now! Using Machine Learning to Automate Plugin Updates + Secure...
WP Engine
 
Unit Testing: Not Just for Apex
Unit Testing: Not Just for ApexUnit Testing: Not Just for Apex
Unit Testing: Not Just for Apex
Salesforce Developers
 
Website Application Developers
Website Application Developers Website Application Developers
Website Application Developers
iapp Techologies LLP
 
Headless 101 - Everything You Wanted to Know and More!
Headless 101 - Everything You Wanted to Know and More!Headless 101 - Everything You Wanted to Know and More!
Headless 101 - Everything You Wanted to Know and More!
WP Engine
 
ASP.NET MVC From The Ground Up
ASP.NET MVC From The Ground UpASP.NET MVC From The Ground Up
ASP.NET MVC From The Ground Up
Kevin Griffin
 
jQuery From the Ground Up
jQuery From the Ground UpjQuery From the Ground Up
jQuery From the Ground Up
Kevin Griffin
 
Apex code Benchmarking
Apex code BenchmarkingApex code Benchmarking
Apex code Benchmarking
Amit Chaudhary
 
Google chrome extensions
Google chrome extensionsGoogle chrome extensions
Google chrome extensions
lillianabe
 
Headless - the future of e-commerce
Headless - the future of e-commerceHeadless - the future of e-commerce
Headless - the future of e-commerce
Jamie Maria Schouren
 
Building a custom column office 365 app - lessons learnt from building the K...
Building a custom column office 365 app - lessons learnt from building  the K...Building a custom column office 365 app - lessons learnt from building  the K...
Building a custom column office 365 app - lessons learnt from building the K...
Nimrod Geva
 
Useful tools for Freelancers
Useful tools for FreelancersUseful tools for Freelancers
Useful tools for Freelancers
lillianabe
 
Magento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHPMagento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHP
varien
 
Few Project Management Tips
Few Project Management TipsFew Project Management Tips
Few Project Management Tips
Ketan Raval
 
PickBazar Best React GraphQL ECommerce Template
PickBazar Best React GraphQL ECommerce TemplatePickBazar Best React GraphQL ECommerce Template
PickBazar Best React GraphQL ECommerce Template
SeasonGowen
 
Forms + Zaps = No Code Apps - No Code Conf 2019 Demo Theater
Forms + Zaps = No Code Apps - No Code Conf 2019 Demo TheaterForms + Zaps = No Code Apps - No Code Conf 2019 Demo Theater
Forms + Zaps = No Code Apps - No Code Conf 2019 Demo Theater
Webflow
 
WebFest 2011 WebMatrix Overview by Gavin Warrener
WebFest 2011 WebMatrix Overview by Gavin WarrenerWebFest 2011 WebMatrix Overview by Gavin Warrener
WebFest 2011 WebMatrix Overview by Gavin Warrener
Spiffy
 
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High GearASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
Kevin Griffin
 
Don't lose revenue. Go viral with no downtime.
Don't lose revenue. Go viral with no downtime.Don't lose revenue. Go viral with no downtime.
Don't lose revenue. Go viral with no downtime.
WP Engine
 
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
AOE
 
The Future is Now! Using Machine Learning to Automate Plugin Updates + Secure...
The Future is Now! Using Machine Learning to Automate Plugin Updates + Secure...The Future is Now! Using Machine Learning to Automate Plugin Updates + Secure...
The Future is Now! Using Machine Learning to Automate Plugin Updates + Secure...
WP Engine
 
Headless 101 - Everything You Wanted to Know and More!
Headless 101 - Everything You Wanted to Know and More!Headless 101 - Everything You Wanted to Know and More!
Headless 101 - Everything You Wanted to Know and More!
WP Engine
 
ASP.NET MVC From The Ground Up
ASP.NET MVC From The Ground UpASP.NET MVC From The Ground Up
ASP.NET MVC From The Ground Up
Kevin Griffin
 
jQuery From the Ground Up
jQuery From the Ground UpjQuery From the Ground Up
jQuery From the Ground Up
Kevin Griffin
 

Similar to Building a framework agnostic API (20)

Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce Approach
Ampersand
 
MyAppConverter DroidconUK 2014
MyAppConverter DroidconUK 2014MyAppConverter DroidconUK 2014
MyAppConverter DroidconUK 2014
myappconverter
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
Marc D Anderson
 
API Centric Development in PHP
API Centric Development in PHPAPI Centric Development in PHP
API Centric Development in PHP
Joe Stagner
 
Old code doesn't stink - Detroit
Old code doesn't stink - DetroitOld code doesn't stink - Detroit
Old code doesn't stink - Detroit
Martin Gutenbrunner
 
Our Learnings from Building Magento 2 Extensions
Our Learnings from Building Magento 2 ExtensionsOur Learnings from Building Magento 2 Extensions
Our Learnings from Building Magento 2 Extensions
Karen Baker
 
Stop Coding; Start Assembling Your Websites
Stop Coding; Start Assembling Your WebsitesStop Coding; Start Assembling Your Websites
Stop Coding; Start Assembling Your Websites
Amit Kumar Singh
 
Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013
Mikael Svenson
 
Vue Storefront MUG
Vue Storefront MUGVue Storefront MUG
Vue Storefront MUG
Filip Rakowski
 
Write Generic Code with the Tooling API
Write Generic Code with the Tooling APIWrite Generic Code with the Tooling API
Write Generic Code with the Tooling API
Adam Olshansky
 
Mendix React Native & Javascript actions - Lessons learned
Mendix React Native & Javascript actions - Lessons learnedMendix React Native & Javascript actions - Lessons learned
Mendix React Native & Javascript actions - Lessons learned
Menno de Haas
 
Wc philly 2012 presentation
Wc philly 2012 presentationWc philly 2012 presentation
Wc philly 2012 presentation
onefinejay
 
Accelerate your Sitecore development with GenAI
Accelerate your Sitecore development with GenAIAccelerate your Sitecore development with GenAI
Accelerate your Sitecore development with GenAI
Ahmed Okour
 
SharePoint Saturday San Antonio: Workflow 2013
SharePoint Saturday San Antonio: Workflow 2013SharePoint Saturday San Antonio: Workflow 2013
SharePoint Saturday San Antonio: Workflow 2013
Sam Larko
 
Websphere - About IBM HTTP Server & WAS Plug-in
Websphere -  About IBM HTTP Server & WAS Plug-inWebsphere -  About IBM HTTP Server & WAS Plug-in
Websphere - About IBM HTTP Server & WAS Plug-in
Vibrant Technologies & Computers
 
Magento 2 Development Best Practices
Magento 2 Development Best PracticesMagento 2 Development Best Practices
Magento 2 Development Best Practices
Ben Marks
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!
pixelonion
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Ofer Zelig
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
Steven Herod
 
How to make a great website
How to make a great websiteHow to make a great website
How to make a great website
Dr. Taher Ghazal
 
Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce Approach
Ampersand
 
MyAppConverter DroidconUK 2014
MyAppConverter DroidconUK 2014MyAppConverter DroidconUK 2014
MyAppConverter DroidconUK 2014
myappconverter
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
Marc D Anderson
 
API Centric Development in PHP
API Centric Development in PHPAPI Centric Development in PHP
API Centric Development in PHP
Joe Stagner
 
Old code doesn't stink - Detroit
Old code doesn't stink - DetroitOld code doesn't stink - Detroit
Old code doesn't stink - Detroit
Martin Gutenbrunner
 
Our Learnings from Building Magento 2 Extensions
Our Learnings from Building Magento 2 ExtensionsOur Learnings from Building Magento 2 Extensions
Our Learnings from Building Magento 2 Extensions
Karen Baker
 
Stop Coding; Start Assembling Your Websites
Stop Coding; Start Assembling Your WebsitesStop Coding; Start Assembling Your Websites
Stop Coding; Start Assembling Your Websites
Amit Kumar Singh
 
Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013
Mikael Svenson
 
Write Generic Code with the Tooling API
Write Generic Code with the Tooling APIWrite Generic Code with the Tooling API
Write Generic Code with the Tooling API
Adam Olshansky
 
Mendix React Native & Javascript actions - Lessons learned
Mendix React Native & Javascript actions - Lessons learnedMendix React Native & Javascript actions - Lessons learned
Mendix React Native & Javascript actions - Lessons learned
Menno de Haas
 
Wc philly 2012 presentation
Wc philly 2012 presentationWc philly 2012 presentation
Wc philly 2012 presentation
onefinejay
 
Accelerate your Sitecore development with GenAI
Accelerate your Sitecore development with GenAIAccelerate your Sitecore development with GenAI
Accelerate your Sitecore development with GenAI
Ahmed Okour
 
SharePoint Saturday San Antonio: Workflow 2013
SharePoint Saturday San Antonio: Workflow 2013SharePoint Saturday San Antonio: Workflow 2013
SharePoint Saturday San Antonio: Workflow 2013
Sam Larko
 
Magento 2 Development Best Practices
Magento 2 Development Best PracticesMagento 2 Development Best Practices
Magento 2 Development Best Practices
Ben Marks
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!
pixelonion
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Ofer Zelig
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
Steven Herod
 
How to make a great website
How to make a great websiteHow to make a great website
How to make a great website
Dr. Taher Ghazal
 

Recently uploaded (20)

Progecad 2025 Professional Cracked [Latest]
Progecad 2025 Professional Cracked [Latest]Progecad 2025 Professional Cracked [Latest]
Progecad 2025 Professional Cracked [Latest]
Luisa Weist
 
LightBurn 1.7.0.6 + Crack Download🔓
LightBurn  1.7.0.6  +  Crack  Download🔓LightBurn  1.7.0.6  +  Crack  Download🔓
LightBurn 1.7.0.6 + Crack Download🔓
Berkeley
 
Menu in Android (Define,Create,Inflate and Click Handler)
Menu in Android (Define,Create,Inflate and Click Handler)Menu in Android (Define,Create,Inflate and Click Handler)
Menu in Android (Define,Create,Inflate and Click Handler)
Nabin Dhakal
 
wAIred_LearnWithOutAI_LunchAndLearn_27052025.pptx
wAIred_LearnWithOutAI_LunchAndLearn_27052025.pptxwAIred_LearnWithOutAI_LunchAndLearn_27052025.pptx
wAIred_LearnWithOutAI_LunchAndLearn_27052025.pptx
SimonedeGijt
 
Optimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing SystemsOptimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing Systems
Insurance Tech Services
 
German Marketo User Group - May 2025 survey results
German Marketo User Group - May 2025 survey resultsGerman Marketo User Group - May 2025 survey results
German Marketo User Group - May 2025 survey results
BradBedford3
 
20200823-Intro-to-FIRRTLllllllllllllllllll
20200823-Intro-to-FIRRTLllllllllllllllllll20200823-Intro-to-FIRRTLllllllllllllllllll
20200823-Intro-to-FIRRTLllllllllllllllllll
JonathanSong28
 
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdfBoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
Ortus Solutions, Corp
 
Microsoft Defender para ponto de extremidade
Microsoft Defender para ponto de extremidadeMicrosoft Defender para ponto de extremidade
Microsoft Defender para ponto de extremidade
leotcerveira
 
Techdebt handling with cleancode focus and as risk taker
Techdebt handling with cleancode focus and as risk takerTechdebt handling with cleancode focus and as risk taker
Techdebt handling with cleancode focus and as risk taker
RajaNagendraKumar
 
Lightworks PRO 2025.1 Crack Free Download
Lightworks PRO 2025.1 Crack Free DownloadLightworks PRO 2025.1 Crack Free Download
Lightworks PRO 2025.1 Crack Free Download
Berkeley
 
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
officeiqai
 
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdfSecure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Northwind Technologies
 
Scaling up your Snapshot tests, without the friction
Scaling up your Snapshot tests, without the frictionScaling up your Snapshot tests, without the friction
Scaling up your Snapshot tests, without the friction
arnold844201
 
Top 10 Mobile Banking Apps in the USA.pdf
Top 10 Mobile Banking Apps in the USA.pdfTop 10 Mobile Banking Apps in the USA.pdf
Top 10 Mobile Banking Apps in the USA.pdf
LL Technolab
 
Improving Engagement with CRM Software for Instance Agents
Improving Engagement with CRM Software for Instance AgentsImproving Engagement with CRM Software for Instance Agents
Improving Engagement with CRM Software for Instance Agents
Insurance Tech Services
 
Why-Choose-an-Authorised-Microsoft-Reseller.pptx
Why-Choose-an-Authorised-Microsoft-Reseller.pptxWhy-Choose-an-Authorised-Microsoft-Reseller.pptx
Why-Choose-an-Authorised-Microsoft-Reseller.pptx
Michael cole
 
Frontier AI Regulation: What form should it take?
Frontier AI Regulation: What form should it take?Frontier AI Regulation: What form should it take?
Frontier AI Regulation: What form should it take?
Petar Radanliev
 
Field service report Luzon.pptxxxxxxxxxxxxxxxx
Field service report Luzon.pptxxxxxxxxxxxxxxxxField service report Luzon.pptxxxxxxxxxxxxxxxx
Field service report Luzon.pptxxxxxxxxxxxxxxxx
kashinathgpsgc
 
Getting Started with BoxLang - CFCamp 2025.pdf
Getting Started with BoxLang - CFCamp 2025.pdfGetting Started with BoxLang - CFCamp 2025.pdf
Getting Started with BoxLang - CFCamp 2025.pdf
Ortus Solutions, Corp
 
Progecad 2025 Professional Cracked [Latest]
Progecad 2025 Professional Cracked [Latest]Progecad 2025 Professional Cracked [Latest]
Progecad 2025 Professional Cracked [Latest]
Luisa Weist
 
LightBurn 1.7.0.6 + Crack Download🔓
LightBurn  1.7.0.6  +  Crack  Download🔓LightBurn  1.7.0.6  +  Crack  Download🔓
LightBurn 1.7.0.6 + Crack Download🔓
Berkeley
 
Menu in Android (Define,Create,Inflate and Click Handler)
Menu in Android (Define,Create,Inflate and Click Handler)Menu in Android (Define,Create,Inflate and Click Handler)
Menu in Android (Define,Create,Inflate and Click Handler)
Nabin Dhakal
 
wAIred_LearnWithOutAI_LunchAndLearn_27052025.pptx
wAIred_LearnWithOutAI_LunchAndLearn_27052025.pptxwAIred_LearnWithOutAI_LunchAndLearn_27052025.pptx
wAIred_LearnWithOutAI_LunchAndLearn_27052025.pptx
SimonedeGijt
 
Optimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing SystemsOptimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing Systems
Insurance Tech Services
 
German Marketo User Group - May 2025 survey results
German Marketo User Group - May 2025 survey resultsGerman Marketo User Group - May 2025 survey results
German Marketo User Group - May 2025 survey results
BradBedford3
 
20200823-Intro-to-FIRRTLllllllllllllllllll
20200823-Intro-to-FIRRTLllllllllllllllllll20200823-Intro-to-FIRRTLllllllllllllllllll
20200823-Intro-to-FIRRTLllllllllllllllllll
JonathanSong28
 
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdfBoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
Ortus Solutions, Corp
 
Microsoft Defender para ponto de extremidade
Microsoft Defender para ponto de extremidadeMicrosoft Defender para ponto de extremidade
Microsoft Defender para ponto de extremidade
leotcerveira
 
Techdebt handling with cleancode focus and as risk taker
Techdebt handling with cleancode focus and as risk takerTechdebt handling with cleancode focus and as risk taker
Techdebt handling with cleancode focus and as risk taker
RajaNagendraKumar
 
Lightworks PRO 2025.1 Crack Free Download
Lightworks PRO 2025.1 Crack Free DownloadLightworks PRO 2025.1 Crack Free Download
Lightworks PRO 2025.1 Crack Free Download
Berkeley
 
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
officeiqai
 
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdfSecure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Northwind Technologies
 
Scaling up your Snapshot tests, without the friction
Scaling up your Snapshot tests, without the frictionScaling up your Snapshot tests, without the friction
Scaling up your Snapshot tests, without the friction
arnold844201
 
Top 10 Mobile Banking Apps in the USA.pdf
Top 10 Mobile Banking Apps in the USA.pdfTop 10 Mobile Banking Apps in the USA.pdf
Top 10 Mobile Banking Apps in the USA.pdf
LL Technolab
 
Improving Engagement with CRM Software for Instance Agents
Improving Engagement with CRM Software for Instance AgentsImproving Engagement with CRM Software for Instance Agents
Improving Engagement with CRM Software for Instance Agents
Insurance Tech Services
 
Why-Choose-an-Authorised-Microsoft-Reseller.pptx
Why-Choose-an-Authorised-Microsoft-Reseller.pptxWhy-Choose-an-Authorised-Microsoft-Reseller.pptx
Why-Choose-an-Authorised-Microsoft-Reseller.pptx
Michael cole
 
Frontier AI Regulation: What form should it take?
Frontier AI Regulation: What form should it take?Frontier AI Regulation: What form should it take?
Frontier AI Regulation: What form should it take?
Petar Radanliev
 
Field service report Luzon.pptxxxxxxxxxxxxxxxx
Field service report Luzon.pptxxxxxxxxxxxxxxxxField service report Luzon.pptxxxxxxxxxxxxxxxx
Field service report Luzon.pptxxxxxxxxxxxxxxxx
kashinathgpsgc
 
Getting Started with BoxLang - CFCamp 2025.pdf
Getting Started with BoxLang - CFCamp 2025.pdfGetting Started with BoxLang - CFCamp 2025.pdf
Getting Started with BoxLang - CFCamp 2025.pdf
Ortus Solutions, Corp
 

Building a framework agnostic API

Editor's Notes

  • #2: The Fake Title!
  • #3: The real title!
  • #4: There is no need for a complete framework anymore!
  • #5: A little story about a customer journey into the eCommerce
  • #6: Talk about the Store API as an example, Not just stores but stock, product, customers and orders. Built in a way that migration should be possible,
  • #7: Erp (or other 3rd parties) API in the middle, Magento bridge Communicate with our API so loosening the coupling to Magento,
  • #8: Complex? Detailed? Think ahead?
  • #9: Answer me this question what is a store, customer, order, product? Define and design your domain,
  • #10: Allowing you to take your design and make “rough” code out of it. Interface the data object, the workers, the request and response objects
  • #12: How does your store look like! Active, id, code, name, Nothing “complex” just data getters and setters, Workers, Converters, Buisness Logic,
  • #13: Pick a middleware, pick any one you like I don’t care. Keep the middleware to deal with response and request.
  • #15: Fan of symphony serilizer as it allows you to work with objects,
  • #16: Yes ok you got me you do need some Magento code. Just some not much though. Try to keep it to working with the collections and factories. Ask Magento for the DATA!
  • #18: Use what you like, Enjoy the control, Pass on docs to 3rd party and “sit back”
  • #19: But what glitters is not always gold You have to think, Not a silver bullet,
  • #26: None-magento code, Export (Find in repo, make json/xml, do something with file) Import (deserialize, pass to repository save) Store (constructor)
  • #27: Bridge (setup repositories) Repository (How to find and Save in M1/M2)
  • #32: Not complete! I got bored sorry 