Skip FOLIO Project Navigation

This is not a easy topic in the new FOLIO multi-module system. Techniques for gathering and navigating the relevant information are under development.

Jump to the current best facility, the UI Developer Settings.

API documentation

There is the set of API documentation which is automatically generated from each separate back-end module’s RAML files and JSON Schemas. Developers could wade through that, making an educated guess. (There are tickets in the Issue tracker to improve that aspect of the API documentation, but not happening yet.)

Registry of ModuleDescriptors

Use the FOLIO Registry to search for modules that provide or require certain interfaces.

This is particularly useful for developers who are about to make breaking changes, to determine which modules they are going to affect.

The API documentation for Okapi explains the query parameters.

Registry queries such as the following will assist investigation …

Interfaces provided by module

Confirm that a certain back-end module implements a certain interface which handles a set of endpoints. Obtain its ModuleDescriptor from the registry and extract the “provides” section. For example:

curl -s -S -w'\n' \
  'https://folio-registry.dev.folio.org/_/proxy/modules?filter=mod-inventory-storage&latest=1&full=true' \
  | jq '.[].provides'

Requires an old interface

curl -s -S -w'\n' \
  'https://folio-registry.dev.folio.org/_/proxy/modules?latest=1&require=instance-bulk%3D0.1'

Provides a newer interface

curl -s -S -w'\n' \
  'https://folio-registry.dev.folio.org/_/proxy/modules?latest=1&provide=inventory-record-bulk'

UI Developer Settings

The best facility at this stage of the project is provided by the ui-developer module.

Do login to the relevant running FOLIO system, and visit the “Settings : Developer : Okapi paths” page. This will list the “resource path to interface mapper” for all of the modules configured for that FOLIO instance.
For example: https://folio-snapshot.dev.folio.org/settings/developer/okapi-paths

Also the “resource path to permission-set mapper” shows which permissions are needed in order to access a certain endpoint:
https://folio-snapshot.dev.folio.org/settings/developer/can-i-use

Developers will also find other gems at the Developer Settings area.