import com.canva.extensions.configuration.ConfigurationApiController;
import com.canva.extensions.content.ContentApiController;
import com.canva.extensions.publish.PublishApiController;
import com.canva.extensions.util.Signer;
import com.fasterxml.jackson.databind.ObjectMapper;
public static void main(String[] args) {
// Initialize your service implementation classes, with whatever dependencies they need. Left
// empty here for illustratory purposes.
final var contentService = new ContentApiServiceImpl();
final var publishService = new PublishApiServiceImpl();
final var configService = new ConfigurationServiceApiImpl();
// The Signer (from extensions-core) implements the signature verifcation logic. It requires the
// shared secret to be instantiated.
final var signer = new Signer("canvaSecret");
// A java.time.Clock instance, used to support signature verification.
final var clock = Clock.systemUTC();
// Used for serializing & deserializing request/response classes.
final var mapper = new ObjectMapper();
// Finally, register each controller.
ContentApiController.register(contentService, signer, mapper, clock);
PublishApiController.register(publishService, signer, mapper, clock);
ConfigurationApiController.register(configService, signer, mapper, clock);