March/April 2016 Nitro/iBL changes An API miscellany
The Open Nitro Project is joined by the Open iBL Project, and full Open-API (swagger) specifications now exist for both.
Both the input (parameters etc) and output (response models) of the Nitro API are automatically generated from the BBC’s API specification and XSD schema respectively.
The iBL input-side is manually generated but the response models are directly produced from the BBC JSON schema with just a few transformations to cope with differences between the Swagger schema specification and JSON schema.
Both specifications have been accepted by APIs-guru (a Wikipedia for web APIs) so are available automatically in several linked projects.
The current version of the iBL API is v1.0 release 366.
Between release 360 and 363 the BBC iBL team fixed a couple of issues I reported to them via email. A couple of typo’s
in the JSON Schema meant the model definitions were not being referenced properly. There was also a missing model (store_version
).
Many thanks to the iBL guys for fixing this. The API has gained some editorial information with respect to episode
categories and titles.
The Nitro API continues to be verbosely self-documenting. A schema change now allows mixins to declare which filters affect their behaviour.
How useful this information is, is possibly a different question. The first example documents the interaction between the available_versions
mixin
and the payment_type
filter.
In March support was added for unstable mixins. The schema allows for unstable sorts and filters too. Hopefully unstable relates to reproducibility,
pagination etc, rather than support levels, as Nitro already defines release_status
of alpha, beta, supported and deprecated.
Answering my own question from a previous post, turning on debug information in the availabilities
feed was as simple as adding a debug=true
parameter
to the Nitro call. This undocumented parameter has been patched into the Swagger documentation.