## Using REST to access remote resources

REST is a commonly-used protocol to provide access to remote resources.

JBehave supports accessing resources via REST using the jbehave-rest module.

REST is typically used to access wikis. Each REST provider has its own API.

### Using provider-specific components

JBehave allows provider-specific implementation of the following interface:

- ResourceIndexer: indexes resources
- ResourceLoader: loads resources from provider
- ResourceUploader: uploads resources to provider

Currently supported as REST providers are Redmine and XWiki. Also supported for resource indexing and loading (but not for uploading) is Confluence.

JBehave allows provider-agnostic components for importing/export from/to providers:

- ResourceImporter: imports resources from provider
- ResourceExporter: exports resources to provider

Currently supported are filesystem-based import/export implementations:

- ImportToFilesystem: imports resources to filesystem
- ExportFromFilesystem: exports resources from filesystem

Typically, importer/exporter implementations will be injected with provider-specific implementations of resource indexer, loader and uploader.

### Using Maven goals

The import/export filesystem functionality is also exposed via Maven goals:

In command-line, without the need to configure the plugin in a pom.xml: