Experimental pre-release PRX3
Pre-release
Pre-release
This experimental pre-release of blogify-core includes the following changes :
Additions
- Profile page now displays articles created by the user
- Comments are now shown and can be created on article page
- Resource slicer introduced : allows calls to resource endpoints to choose which fields they need using
?fields=<...>
- This in turn reduces the number of subobjects necessary :
Articles.Content
andUser.PersonalInformation
are no longer needed
- This in turn reduces the number of subobjects necessary :
/api/articles/forUser/<uuid>
: get all articles created by a certain user/api/comments/tree/<uuid>?depth=n
: get a tree of comments from the root comment provided via UUID. Depth can be configured with the relevant query parameter.
Improvements
- Major UI improvements
- Major improvements to caching and query optimization : improves backend performance significantly
- Call caching: resources fetched during a call are cached for the duration of the call, to avoid re-fetching them later in the same call
- This means that almost every Service method can now take a
callContext: ApplicationCall
object on which it can do a cache lookup. If it is impossible to pass in acallContext
, omitting the parameter uses theFakeApplicationCall
object which disables caching.
- This means that almost every Service method can now take a
- Call caching: resources fetched during a call are cached for the duration of the call, to avoid re-fetching them later in the same call
- Improved documentation for various methods and classes/objects
Breaking changes
/api/articles/content
and/api/users/info
are no longer supported. They should be replaced by a call to the root endpoint with a?fields=<...>
query parameter instead, as the properties they held are now held on the main object.
Internal
- Call handlers/wrappers now take an optional
authPredicate
parameter : this now has to be used instead of wrapping the whole call insideauthenticatedBy { ... }
- Some of those predicate parameters can now take functions that can also take a resource of the appropriate type as a parameter: this allows the predicate to verify data inside of the resource to do it's authentication