Hello
I’ve been a part of this community for four years, consistently working with Strapi, and as we approach the release of version V5, I feel compelled to express some concerns regarding the frequent breaking changes and the challenges they introduce.
Historically, the transition from V3 to V4 was taxing, and it seems V5 is poised to continue this trend. It’s concerning to see essential functions like findOne
evolve so drastically over just four years:
- V3:
strapi.query('restaurant').findOne(params, populate);
- V4:
strapi.entityService.findOne(uid: string, id: ID, parameters: Params)
- V5:
await strapi.documents('api:restaurant.restaurant').findOne({documentId: 'a1b2c3d4e5f6g7h8i9j0klm'})
Other examples:
- The infamous json response from V4
- The upcoming
documentId
thing coming on V5 - The V3 Services changed to V4 Entities changed to V5 Documents
Such changes require significant rewrites not just on the backend but also on the frontend, affecting every component that interacts with these APIs. This places a heavy burden on teams to continually adapt, diverting resources from feature development to maintenance.
Comparatively, communities like Laravel and technologies like SQLite offer extensive backward compatibility, ensuring that applications can be upgraded without requiring complete overhauls—this is not the case with Strapi.
The ideal approach would be to ensure backward compatibility. For example, maintaining the existing findOne
method from V4 and introducing new functionality under a different name like findById
. This would allow existing projects to continue functioning while offering pathways to adopt new features at a manageable pace.
Our team has decided to delay the migration to V5 until at least mid-2025. We appreciate the advancements each new version brings but wish these could be integrated without such significant disruption.
We understand the immense effort that goes into developing these versions and do recognize the potential benefits. However, a focus on backward compatibility could greatly alleviate the challenges faced by your user base
Thanks