Passage de paramètres dans l'en-tête de message avec une API REST
Je suis de développer une API REST et j'ai besoin de tranport cryptogrammes pour authentifier le message pour chaque demande dans un processus applicatifs (MAC cryptage de clés secrètes). Je pensais les mettre dans l'en-tête de message pour éviter d'ajouter non des données de l'information dans le corps du message qui contient le posté/objet récupéré (XML ou JSON).
Est-il une bonne pratique ?
Puis-je ajouter autant de paramètres que je veux dans la tête ? J'ai lu que je dois les préfixer par "x-". Le comportement de ce paramètre est exactement la même que la Voie de Requête ou de l'params ?
Je suis l'aide de Jersey.
Je vous remercie pour votre aide.
Exemplaires supplémentaires question : est-il préférable d'utiliser les paramètres d'en-tête (Date, l'Autorisation) ou à créer (x-app-date, les x-app-auth) ?
OriginalL'auteur Zofren | 2010-10-08
Vous devez vous connecter pour publier un commentaire.
Oui je crois qu'il est acceptable d'avoir des paramètres d'en-tête pour le transfert de certaines données. JAX-RS standard définit même la @HeaderParam annotation. Simple exemple de @HeaderParam.
C'est une convention de préfixe non-standard des en-têtes http "x-".
J'ai eu une situation similaire à la vôtre: j'ai besoin de transférer jeton d'utilisateur et ID de l'application à chaque appel RESTE. Pour éviter la duplication de code j'ai mis en place
PreProcessInterceptor
(je suis en utilisant Resteasy), à travers lequel reposent toutes les requêtes sont dirigées. Si le jeton d'utilisateur n'est pas valide et si l'utilisateur n'a pas les privilèges pour l'application de l'ID, puis je retourne 401 non autorisé. Mon code ressemblaient à ceci (version simplifiée):OriginalL'auteur Peter Knego