Génération d'adresse URL de projet

Vous pouvez rediriger le traitement des demandes vers un projet particulier en générant des adresses URL avec l'API ProjectIdentificationService ou l'API REST. Le traitement d'une demande s'effectue soit complètement dans la portée d'un projet, soit complètement hors de la portée d'un projet. Vous ne pouvez pas changer de projet lors du traitement des demandes.

Lorsqu'une demande est initiée dans un projet, l'adresse URL de la demande contient l'identificateur de ce projet. Les informations de projet sont incluses dans l'adresse URL uniquement et ne sont pas liées à la session. L'identificateur de projet peut être un ID objet (OID), utilisé par le portail, ou un identificateur unique universel (UUID), utilisé par Web Content Manager. Pour diriger le traitement d'une demande vers un projet spécifique, vous devez générer une adresse URL pour ce projet, puis l'afficher.

API Java

Pour générer des adresses URL qui ciblent un projet à l'aide de l'API Java dans le portail, vous pouvez utiliser l'API ProjectIdentificationService avec l'API StateManagerService :
  • L'API ProjectIdentificationService fournit des méthodes permettant de créer un objet ServerContext en fonction de l'identificateur du projet cible et de l'objet ServerContext en cours.
  • L'objet ServerContext spécifique au projet peut ensuite être utilisé pour extraire un objet URLFactory à partir du service du gestionnaire d'état. Toutes les adresses URL générées avec cette fabrique contiennent l'ID du projet.
Cet exemple construit une adresse URL de portail dans l'état de navigation courant pour un nouveau projet :
		// construct a server context for the project
		final ServerContext projectCtx = projectService.createServerContext(
				projectID, stateService.getServerContext());

		// access the URL factory to create a URL
		final URLFactory urlFct = stateService.getURLFactory(projectCtx);

		// construct a URL to the current state
		final EngineURL url = urlFct.newURL(Constants.SMART_COPY);
		url.writeDispose(out);

		// done with URL generation
		urlFct.dispose();
Cet exemple construit une adresse URL de portail dans l'URI d'un projet spécifique :
		// construct a server context for the project
		final PocServerContext projectCtx = projectService.createServerContext(
				projectID, pocService.getServerContext());

		// access the URL factory to create a URL
		final DisposablePocURLFactory urlFct = pocService
				.getURLFactory(projectCtx);

		// construct a URL to the current state
		final PocURL url = urlFct.newURL(PocURLFactory.LATE_BINDING);
		url.setMode(Constants.VALUE_DOWNLOAD);
		url.setURI(new URI("test:abc"));

		// serialize
		url.writeDispose(out);

		// done with URL generation
		urlFct.dispose();

API REST

Si votre application utilise l'architecture REST (Representational State Transfer), vous pouvez utiliser les API distantes mises à disposition avec le portail afin de construire des adresses URL propres au projet.