Biblioteca de API-DD · Página 2 de 2
API-DD Design
Guías prácticas sobre conversaciones, garantías y límites entre módulos. Si es tu primera visita, empieza por el manifiesto API-Driven Development.
Una API no es HTTP: la misma conversación dentro de un proceso
Seguir una cancelación desde un handler hasta dos paquetes permite separar transporte, API de aplicación y colaboraciones internas.
El booleano que esconde cuatro resultados distintos
Reserve bool parece simple hasta que el consumidor necesita distinguir una reserva nueva, una repetición, falta de stock y un rechazo.
El constructor que permite existir a un valor inválido
Comparar setters más Validate con una creación atómica de Interval muestra cómo proteger invariantes y definir el significado del valor cero en Go.
La interfaz de una sola implementación que aumenta el acoplamiento
Una UserServiceInterface creada por costumbre obliga a consumidores distintos a depender del mismo contrato y muestra cuándo la interfaz debe nacer en el consumidor.
El getter que permite modificar el módulo desde fuera
Un ejemplo en Go de un getter aparentemente inocente: devolver el slice interno permite cambiar el módulo sin usar su API y hace que resultados anteriores muten solos.
El tipo que convierte un cambio de SQL en un cambio de interfaz
Un ejemplo en Go de una dependencia que parece inocente: devolver sql.Rows obliga al consumidor a conocer la consulta y convierte cambios internos en cambios de interfaz.