Una API es el contrato que utiliza un cliente para solicitar a un sistema que realice una tarea. En una entrevista, dicho contrato debe hacer que las acciones principales del usuario —como crear una nota, consultarla, editarla, eliminarla y compartirla con otra persona— resulten sencillas y predecibles. También debe evitar ambigüedades problemáticas, como tener dos endpoints distintos que, en cierto modo, actualizan una nota pero se comportan de manera diferente ante la misma entrada de datos. Ilustremos este contrato con la aplicación de notas más sencilla posible: un cliente móvil o web que se comunica con un servicio backend encargado de almacenar las notas en una base de datos.
En ese diseño base, el cliente envía una solicitud HTTP al servicio de API; este la valida y aplica las reglas del contrato, mientras que la base de datos almacena los registros de las notas para que las lecturas posteriores devuelvan el mismo estado. El aspecto clave es la capacidad de decisión (o agency): el cliente elige qué invocar, el servicio de API decide qué está permitido y qué se escribe, y la base de datos persiste el resultado para que la siguiente solicitud pueda verlo. Esta es la estructura que destacaremos más adelante, cuando un único servidor ya no sea suficiente.
La API funcional más sencilla asigna nombres claros a los recursos y vincula cada endpoint a una acción del usuario y a una estructura de objeto almacenado específica. Una nota es un objeto que contiene un id, ownerUserId, title, body y marcas de tiempo; la función de compartir añade una regla que permite a otro usuario leer o editar la nota según los permisos asignados. De este modo, un conjunto reducido de endpoints puede cubrir el flujo principal sin necesidad de inventar verbos adicionales ni sobrecargar los significados existentes. La correspondencia entre cada endpoint y una operación de lectura o escritura es lo que mantiene la legibilidad del contrato incluso bajo presión. Mapeemos dichos endpoints con las operaciones de lectura y escritura del servicio base y de la base de datos.