[Roadmap] Shop API with API Platform completedΒ #12466
Description
Hi! π
The purpose of this issue is to better orchestrate and complete the effort of migration to the new API with the API Platform. I'd love to hear your thoughts, feedback and challenge my thinking about this. :) Also, if you are up for contribution, let us know in the comment so that we do not duplicate efforts.
Definition of done and current progress from my perspective and some open questions:
Sylius Core:
- ApiBundle (new) has ~90% feature parity with ShopApiPlugin and can replace it
- ApiBundle provides a clear API to better support API-first payment gateways
Open Questions:
- Do you have some preference for how to handle payments via API? How do you handle it right now?
- If you have used the new API already, what are the most common customization you have made and what was your experience?
- What are your benchmarks for great APIs?
Sylius SDKs
- At least one SDK provided to consume Sylius API
I think this is a must-have for any headless platform and would open Sylius to the ecosystem of frontend developers, who are not familiar with Symfony. :) There was something for ShopAPIPlugin: https://www.npmjs.com/package/lin3s-sylius-shop-api-client
Open Questions:
- Do you have some thoughts on this? Do you use an SDK already?
Documentation:
- There is a public API Reference
- Minimal tutorial for frontend developers published, explaining how to get products and add to cart
- Getting Started with Sylius tutorial includes API examples
- Minimally sufficient migration guide from ShopAPIPlugin to ApiBundle published
- All references to AdminApiBundle and ShopApiBundle moved to section clearly marked as "legacy"
- "Customizing API Endpoints" added to The Customization Guide
- The "Custom Paths in new API" article included in a proper Customization Guide "How to customize paths in the API?"
Open Questions:
- What other documentation would you like to see (or contribute π ) related to the new API?
PS. If you would like to contribute to the admin part of the new API, please see this issue opened by @lchrusciel: #11250