This Open Booking SDK will create Open Opportunity Data Feeds, a Dataset Site, and an Open Booking API.
The Open Opportunity Data Feeds and Dataset Site features within the Open Booking SDK leverage libraries that are also available separately for advanced or non-bookable implementations.
The library system is designed to be modular, and is designed with the following three implementation routes in mind:
StoreBookingEngine provides the quickest and most prescribed approach. It has a very tightly defined contract, and its API has a minimal surface area - making it the most inherently stable and maintainable route for implementation. It is also the current focus of this guide.
CustomBookingEngine provides more flexibility, and requires the implementer to do more of the heavy-lifting, including implementing error conditions and validation.
OpenBookingHelper provides helper methods that may be useful for a totally bespoke implementation. They are designed to be used independently, and do not have any dependencies on the other two routes.
StoreBookingEngine approach provides the quickest and most opinionated implementation. Implementers are strongly encouraged to use this approach (which is the focus of this guide, and provided examples), and provide feedback on any key gaps or constraints which would otherwise have forced them to move towards using the
OpenBookingHelper approaches. We will move quickly to add features as required in line with your implementation timescales.
We are keen to adapt
StoreBookingEngine for your use case - reducing the cost of your implementation and increasing maintainability. Please note that we may not accept all suggestions, in cases where they are very specific to your implementation, and may instead suggest viable alternative approaches.
The contracts with
CustomBookingEngine and the
OpenBookingHelper classes are not yet stable, except where needed to support the
StoreBookingEngine approach documented in this guide. We encourage exploration and prototyping approaches based solely on these at this stage, and feedback is very welcome as we move to stabilise these over the coming couple of months. Moving functionality between
CustomBookingEngine (to make the latter more/less powerful vs customisable) is a particular area of interest.
Documentation on the
OpenBookingHelper classes is primarily within the codebase itself at present - separate guides have not yet been written - although looking at the
StoreBookingEngine is a good introduction to an example implementation of