Create a Service
Creating a new custom service involves a few important steps:
Create the Service
Create the service source file in a new folder within the src/services
folder. For example to create a new service called ExampleService
, create a new file called ExampleService.ts
in src/services/ExampleService
with the following content:
import { ServiceBase } from "@vertigis/web/services";
export default class ExampleService extends ServiceBase {}
If you want your service to be able to serialize and deserialize configuration specific to the service from app.json
, you can extend from ConfigurableServiceBase
instead:
import { ServiceModelProperties } from "@vertigis/web/models";
import {
ConfigurableServiceBase,
serializable,
} from "@vertigis/web/services";
interface ExampleModelProperties extends ServiceModelProperties {
exampleProperty: string;
}
@serializable
export default class ExampleService extends ConfigurableServiceBase<ExampleModelProperties> {
exampleProperty: string;
}
Register the Service
Finally we need to register the service with the VertiGIS Studio Web service registry so that it is aware of your new service.
To simplify the module imports, we'll make a new file in the ExampleService
folder called index.ts
. Note that this file is for convenience, and is not required:
export { default } from "./ExampleService";
Now register your service with the service registry by modifying the src/index.ts
file:
import { LibraryRegistry } from "@vertigis/web/config";
import ExampleService from "./services/ExampleService";
export default function (registry: LibraryRegistry) {
// ... other item registrations
registry.registerService({
id: "example",
getService: (config) => new ExampleService(config),
// Use this setting if you want your service to load on
// application startup. Defaults to `false`.
loadOnStartup: true,
});
}
Next Steps
Deploy your Service
Learn how to deploy your custom service
Create a Service that Manages Dynamic Data
Follow along with a more in depth service example