Skip to content

Experimental pre-release PRX3

Pre-release
Pre-release
Compare
Choose a tag to compare
@Benjozork Benjozork released this 24 Oct 01:09
· 867 commits to master since this release
2737f15

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 and  User.PersonalInformation are no longer needed
  • /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 a callContext, omitting the parameter uses theFakeApplicationCall object which disables caching.
  • 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 inside authenticatedBy { ... }
    • 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