State of JSON:API (December 2018)
Gabe, Mateu and I just released the third RC of JSON:API 2, so time for an update! The last update is from three weeks ago.
What happened since then? In a nutshell:
- Usage continues to rise: ~330 → ~400 sites 1
- 2.0-RC3 released :)
- RC2 had about 20 issues reported. Most (⅔) are fixed in RC3. 2
- Of those, ⅓ support requests (all fixed), ⅓ for future improvements.
- Version 1.1 RC1 of the JSON:API spec was released on December 3
- The revisions feature: 90% → 95%, will ship in
2.22.1! - Gabe proposed a JSON:API profile for versioning/revisions 3
- New core patch to bring JSON:API to Drupal core: #2843147-92
RC3
Curious about RC3? RC2 → RC3 has five key changes:
- ndobromirov is all over the issue queue to fix performance issues: he fixed a critical performance regression in 2.x vs 1.x that is only noticeable when requesting responses with hundreds of resources (entities); he also fixed another performance problem that manifests itself only in those circumstances, but also exists in 1.x.
- One major bug was reported by dagmar: the
?filter
syntax that we made less confusing in RC2 was a big step forward, but we had missed one particular edge case! - A pretty obscure broken edge case was discovered, but probably fairly common for those creating custom entity types: optional entity reference base fields that are empty made the JSON:API module stumble. Turns out optional entity reference fields get different default values depending on whether they’re base fields or configured fields! Fortunately, three people gave valuable information that led to finding this root cause and the solution! Thanks, olexyy, keesee & caseylau!
- A minor bug that only occurs when installing JSON:API Extras and configuring it in a certain way.
- Version 1.1 RC1 of the JSON:API spec was published; it includes two clarifications to the existing spec. We already were doing one of them correctly (test coverage added to guarantee it), and the other one we are now complying with too. Everything else in version 1.1 of the spec is additive, this is the only thing that could be disruptive, so we chose to do it ASAP.
So … now is the time to update to 2.0-RC3. We’d love the next release of JSON:API to be the final 2.0 release!
P.S.: if you want fixes to land quickly, follow dagmar’s example:
If you don't know how to fix a bug of a #drupal module, providing a failing test usually is really helpful to guide project maintainers. Thanks! @GabeSullice and @wimleers for fixing my bug report https://t.co/bEkkjSrE8U
— Mariano D'Agostino (@cuencodigital) December 11, 2018
-
Note that usage statistics on drupal.org are an underestimation! Any site can opt out from reporting back, and composer-based installs don’t report back by default. ↩︎
-
Since we’re in the RC phase, we’re limiting ourselves to only critical issues. ↩︎
-
This is the first officially proposed JSON:API profile! ↩︎