@koopjs/output-geoservices
Version:
Wraps FeatureServer as a Koop output plugin
86 lines (69 loc) • 3.09 kB
Markdown
# Koop Geoservices Output Plugin
 
Wraps FeatureServer into a [Koop](http://koopjs.github.io) Output plugin.
## Usage
```js
const Koop = require('/koop-core')
const config = require('config')
const koop = new Koop(config)
const outputGeoservices = require('/output-geoservices')
const provider = require('koop-agol') // any koop provider here
// All output plugins must be registered before any providers are registered
koop.register(outputGeoservices)
koop.register(provider)
koop.server.listen(80)
```
## Options
### `defaults (Object)`
The `defaults` options allows the setting of some FeatureServer metadata properties. The `defaults` option should be an object with some of the following properties:
```js
{
defaults: {
currentVersion, // number (11.2)
fullVersion, // string ('11.2.0')
maxRecordCount, // number (500)
server: {
serviceDescription, // string ('Default text for serviceDescription')
description, // string ('Default text for description')
copyrightText, // string ('Default text for copyright')
hasStaticData, // boolean (true)
spatialReference, // object (Esri spatial reference)
initialExtent, // object (Esri spatial envelope)
fullExtent, // object (Esri spatial envelope)
},
layer: {
description, // string ('Default text for layer description')
copyrightText, // string ('Default text for layer copyright')
extent, // object (Esri spatial envelope)
},
}
}
```
Note that the `defaults` option only overrides FeatureServer's defaults. Providers that set metadata may override values set by the above `defaults` properties.
### `useHttpForTokenUrl (boolean)`
The `rest/info` route generates a property `tokenServicesUrl` with value for the URL to use when requesting a token. By default the protocol for this URL is `https`, but if you require it to be `http` set the value of this option to `true`.
```js
{
useHttpForTokenUrl: true
}
```
### `logger (Logger)`
You can leverage your own custom logger instance, but it must adhere to the Winston logger specification.
```js
{
logger // some custom Logger instance
}
```
### `includeOwningSystemUrl (boolean)`
If `true`, adds `owningSystemUrl` to the `rest/info` response. Defaults to false.
## Routes
```js
<provider-namespace>/rest/info
<provider-namespace>/rest/generateToken
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer/:layer/:method
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer/layers
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer/:layer
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer*
<provider-namespace>/rest/services/<provider-path-params>/MapServer*
```