Estoy reuniendo una especificación para un servicio REST, parte del cual incorporará la capacidad de estrangular a los usuarios en todo el servicio y en grupos de recursos individuales o en grupos. Igualmente, los tiempos de espera para estos serían configurables por recurso / grupo / servicio.
Solo estoy mirando a través de la especificación HTTP 1.1 y tratando de decidir cómo voy a comunicarle a un cliente que una solicitud no se cumplirá porque han alcanzado su límite.
Inicialmente pensé que el código del cliente 403 - Forbidden
era el indicado, pero esto, según la especificación:
La autorización no ayudará y la solicitud NO DEBE repetirse
me molestó.
En realidad, parece que 503 - Service Unavailable
es mejor usarlo, ya que permite la comunicación de un tiempo de reintento mediante el uso del Retry-After
encabezado.
Es posible que en el futuro intente admitir 'comprar' más solicitudes a través del comercio electrónico (¡en cuyo caso sería bueno si se 402 - Payment Required
hubiera finalizado el código del cliente !), Pero creo que esto también podría exprimirse en una respuesta 503.
¿Cuál crees que debería usar? ¿O hay otro que no he considerado?
fuente
Hasta cierto punto, eres libre de hacer lo que quieras con los códigos, pero estaría de acuerdo en que puedes usar
503
, o si lo deseas402
, sin que nadie pueda quejarse de que estás rompiendo cosas.Editar: un purista podría decir que debe comenzar con 503, luego cambiar una vez que sea posible realizar pagos.
Una excelente adición a esto en los comentarios:
fuente