Lever URLs

This page describes a universal addressing scheme for Lever services and their methods

πŸ‘

Key takeaways

  • Lever URLs provide a standard addressing scheme for methods across services and environments.
  • They allow inter-service communication, regardless of the Lever hosting provider.

Lever has a builtin addressing scheme for the methods within each service. Lever URLs are used throughout the Lever APIs for specifying the invokation target for Lever RPCs.

Having a standardized way of addressing Lever methods across environments and services allows for the methods to be available universally, in such a way that they can be routed appropriately across providers, over the internet.

As you can see below, Lever URLs can be either absolute or relative.

Absolute URLs

Absolute URLs are meant for invokation of methods across two different Lever environments (or from outside Lever altogether).

lever://<environment>/<service>[/<resource>]/<method>

For example:

lever://myapp.example.com/someAmazingService/updateBooking

When using the HTTP API, the URLs are the same except for the scheme, which becomes http or https. For example:

https://myapp.example.com/someAmazingService/updateBooking

Relative URLs

Relative URLs omit the scheme and the environment. They are meant to specify an invokation within the same environment (or in some cases, to an environment that is inferred from the context).

The use of relative URLs is recommended for communication between services belonging to the same environment. This allows for the services to be easily portable to different environments (eg moving the services from a development environment to production), regardless of the actual name of the environment.

/<service>[/<resource>]/<method>

For example:

/someAmazingService/updateBooking

Relative Lever URLs do not have an equivalent for the HTTP API.