Ir al contenido principal
Laravel, shipping fast.

Apéndice C

Lista de comprobación para un endpoint nuevo

Julian Beaujardin

Cada endpoint de este libro se construyó respondiendo a las mismas preguntas. Aquí están en el orden en que te las encuentras.

Forma

  • ¿Es una acción de recurso (index, store, show, update, destroy) sobre un sustantivo en plural? Si no, ¿hay una buena razón?
  • ¿El método del controlador solo recibe una petición y devuelve una respuesta?
  • ¿Es verdadero el código de estado? 201 para lo creado, 202 para lo aceptado y encolado, 204 para lo hecho sin nada que devolver.

Entrada

  • ¿Se valida cada campo en un FormRequest, incluidos los parámetros de consulta?
  • ¿Tiene un límite superior cada cadena, cada array y cada número?
  • ¿Se le pasa al modelo validated(), nunca all()?

Salida

  • ¿Pasa la respuesta por un Resource, con data como sobre?
  • ¿Todo campo del Resource está pensado para salir?
  • ¿Puede el Resource ejecutar una consulta? No debería poder.

Autorización

  • ¿Qué habilidad necesita el token, y está declarada en el controlador?
  • Si el endpoint recibe un ID, ¿qué registros puede tocar este llamante, y dónde está esa regla?
  • ¿Hay un test en el que pregunta quien no debe?

Fallo

  • ¿Qué ve el consumidor cuando el proveedor está caído?
  • Si un consumidor reintenta esta petición, ¿qué pasa la segunda vez?
  • ¿Sobrevive a ejecutarse dos veces todo lo que encola?

Operación

  • ¿Pagina el listado, con un tamaño de página acotado?
  • ¿Está cubierta por un índice cualquier consulta nueva?
  • ¿Se registra el trabajo con el ID de traza, y sin secretos?
  • ¿Aparece en la documentación generada, con una frase que diga para qué sirve?
  • ¿Hay una entrada en el registro de cambios?

Un endpoint que responde a todo esto está terminado. Uno que no puede responder es un prototipo, por bien que quede en una demo.

No se pudo cargar el audio. Inténtalo de nuevo en un momento.