At the moment, breaking changes to the circulation interface involves assessment of at least 7 dependent modules:
Often, a change does not impact many of these modules. That suggests that there are different aspects of the interface that are relevant to different clients.
Making those aspects more explicit, by separating the interface into multiple interfaces, could reduce the cascade and make it easier to understand the impact of changes.
- Record representations that are used across the interfaces will need to be more carefully managed
- the impact of these could be missed during changes
- this could still lead to a cascade of breaking changes under some circumstances
Proposal for separation
I'm proposing the following aspects as a starting point for discussion.
Check Out (circulation.item-check-out)
For check out workflow related endpoints
Check In (circulation.item-check-in)
For check in workflow related endpoints
For renewal workflow related endpoints
For the endpoints for rule management and applying them to determine the relevant policies.
For general loans endpoints.
For general request endpoints.
- Can Okapi support for multiple interfaces that share parts of a path e.g. /circulation?
- Can RAML Module Builder support for multiple interfaces that share parts of a path e.g. /circulation?
- How do we want to name these interfaces, would . or - be a better separator?