Comment puis-je choisir un code d'état HTTP API REST pour “Pas Encore Prêt, réessayez plus Tard”?

Je suis le développement d'une API RESTful dans lequel http://server/thingyapi/thingyblob/1234 renvoie le fichier (aka "blob") associée truc #1234 à télécharger. Mais il se peut que la demande est faite à un moment où le fichier n'existe pas sur le serveur mais plus certainement sera être disponible à une date ultérieure. Il y a un processus de traitement par lots dans le serveur qui génère toutes les gouttes pour tous les bidules. Truc 1234 existe déjà et ses données, autres que le blob, est déjà disponible. Le serveur n'a pas obtenu de générer des truc 1234 du blob encore.

Je ne veux pas rentrer 404; c'est pour les machines qui n'existent pas. C'est un truc qui existe, mais son blob n'a pas été généré encore. Un peu comme une vidéo YouTube qui est "en cours de traitement." Je ne pense pas que la redirection de codes serait bon que ce soit; il n'y a pas "d'autres" URL de l'essayer.

Quel est le bon code d'état HTTP de retour dans un tel cas?

  • en quelque sorte liée
  • Tout d'abord, si thingy 1234 n'a pas encore de GET-pouvoir de représentation, en quel sens est-il exister en tant que ressource (du point de vue du client)? Le fait que, à l'intérieur de du serveur il y a une file d'attente de travail pour créer 1234, ne semble pas impliquer que les ressources 1234 existe. Deuxièmement, d'où vient le client d'obtenir l'URI .../thingyblob/1234? Le serveur ne devrait probablement pas avoir fourni d'URI pour le client jusqu'à ce que la ressource a été réellement OBTENIR-mesure.
  • Un truc a d'autres propriétés qui ne méritent pas d'autres que le blob. Ce n'est que la goutte qui prend du temps à générer. Client obtient ceux, par exemple, serveur/thingyapi/bidule/1234
  • double possible de Est-ce mal de retour 202 "Accepté" en réponse à HTTP GET?
  • Le HTTP norme fournit des directives sur lequel les codes de statut pour lesquelles les situations. Cette question n'est donc pas vraiment principalement opinion.
  • Que diriez - 204 "Aucun Contenu"? Indique que le serveur a traité avec succès la demande et n'est pas le retour de tout contenu [à cette époque].

InformationsquelleAutor JCCyC | 2012-03-20