Skip FOLIO Project Navigation

GitHub and Twitter:

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

API documentation

There is the set of API documentation, and the associated list of endpoints, which is automatically generated from each separate back-end module’s API description files and JSON Schemas.

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 -r '.[].provides'

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

Requires an interface

Discover which modules are using a specific interface:

curl -s -S -w'\n' \
  'https://folio-registry.dev.folio.org/_/proxy/modules?latest=1&require=inventory-record-bulk' \
  | jq -r '.[].id'

Requires an old interface

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

Provides a newer interface

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

UI Developer Settings

Some facilities are 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
The paths which match the search will then link to the relevant module and to its section of the API documentation.

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