-
Notifications
You must be signed in to change notification settings - Fork 1
RFC: Message schemas #11
Comments
Had an offline question about this: to clarify, eLife’s scholarly articles are currently sourced from JATS, everything else comes directly from a CMS. Some types (such as blog posts) could fit into JATS without too much trouble, others wouldn’t (eg collections, podcast episodes). |
@thewilkybarkid Does this model still allow a micro-service to offer, through content negotiation, JSON documents? Also, with versions being dropped in favour of XML namespaces, is there a mechanism over HTTP to request a particular XML document under a specific XML namespace? Perhaps out of scope for this, but do you think the namespaces will or should match semantic versioning of the components themselves? |
More relevant to #8; requesting a JSON (or whatever) format can work if you choose to do that, as the API should respect HTTP. Libero itself should only recommend one format though.
Not considered that, but I guess Libero will need to define a content type (even if it's just
Reading the RFC I realise it's not that clear that the breaking change would appear in a different namespace, not the whole document. So, take the following example: <front xmlns="http://libero.pub" xmlns:libero2="http://libero.pub/2" xml:lang="en">
<id>some-id</id>
<title>Some title</title>
<some-element>some-text</some-element>
<libero2:some-element>
<libero2:some-sub-element>some-text</libero2:some-sub-element>
<libero2:some-sub-element>some-more-text</libero2:some-sub-element>
</libero2:some-element>
</front> The Migration from the old to new is still controlled:
Which is a cookbook entry, rather than having to support explicit versioning everywhere. Relies on a few differences to eLife's setup though: the API isn't meant for public consumption (you can choose to expose it though), elements that are unknown are to be ignored, and most things should be optional. A new element is also preferable to a new namespace (as long as the new name makes sense). As to the format the namespaces should take, not sure. Other XML format tend to use dates. Libero components won't be individually versioned, but could be grouped together even if breaking changes were made at different times to avoid namespace proliferation. That said, we really should avoid having to make any breaking changes. |
Problem
Libero needs to allow for services to communicate with each other (either through the API or the event bus), these messages need a structure.
Suggestion
Concerns
The text was updated successfully, but these errors were encountered: