J'utilise Jersey pour créer REST. J'en ai une POST et en réponse à cette méthode, l'utilisateur doit être redirigé vers une URL personnalisée comme http://example.com
qui ne doit pas nécessairement être lié à l'API.
Je regardais ici d'autres questions similaires sur ce sujet, mais je n'ai rien trouvé que je puisse utiliser.
Je suggère de modifier la signature de la méthode annotée JAX-RS pour renvoyer un javax.ws.rs.core.Response
objet. Selon que vous souhaitez que la redirection soit permanente ou temporaire (c'est-à-dire si le client doit mettre à jour ses références internes pour refléter la nouvelle adresse ou non), la méthode doit générer et renvoyer un Response
correspondant à un HTTP-301 (redirection permanente) ou HTTP-302 (redirection temporaire) code d'état.
Voici une description dans la documentation de Jersey concernant la façon de retourner des réponses HTTP personnalisées: https://jersey.Java.net/documentation/latest/representations.html#d0e5151 . Je n'ai pas testé l'extrait de code suivant, mais j'imagine que le code ressemblerait à quelque chose comme ceci, pour HTTP-301:
@POST
public Response yourAPIMethod() {
URI targetURIForRedirection = ...;
return Response.seeOther(targetURIForRedirection).build();
}
... ou ceci, pour HTTP-302:
@POST
public Response yourAPIMethod() {
URI targetURIForRedirection = ...;
return Response.temporaryRedirect(targetURIForRedirection).build();
}