You may remember my question regarding a "Headless ProcessWire" quite a few months back.
The end result with either GraphQL, JSON, RestApi, and any other solution based on ProcessWire looked almost exactly like that when I wanted to use that data in either 11ty or Astro - which I used a lot back then.
So... yes, in plain ProcessWire this is a super simple no-brainer with 1 to 3 lines of minimal PHP.
Yet, when using anything else as the frontend, aka JS Framework (React, Svelte, Astro, 11ty) we still would have to go that route in some way or another.
Even with Hygraph, Payload, Directus, and whatever Headless CMS out there - it would look like that.
The part you attribute to Strapi here is not really about Strapi. It's more about the used frontend. So... a bit off.
Probably more interesting and more comparable would be Laravel with Inertia JS (on the JS side of things) or Laravel with Livewire (on the side or similar to PW of things, from the creator of AlpineJS).
For that matter I really enjoy those Laravel-related videos from Aaron Francis (the PHP is cool again - guy) and the 30 days to learn Laravel Workshop.
Besides that we might want to ask better questions like:
Why use a (static) JS Frontend?
How to make PW more compatible with JS Frontend Frameworks?