Skip to main content

Create a Service

Creating a new custom service involves a few important steps:

  1. Create the service source file
  2. Register the service in your library registration file

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;}
@serializableexport 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