Estilos de API
Cada estilo optimiza algo y lo paga con otra cosa.
REST deriva de seis restricciones —cliente-servidor, sin estado, cacheable, interfaz uniforme, sistema en capas y código bajo demanda, la única opcional—. La interfaz uniforme incluye la hipermedia como motor del estado de la aplicación.
En HTTP, los métodos seguros son GET, HEAD, OPTIONS y TRACE. Los idempotentes son esos cuatro más PUT y DELETE. POST no es ninguna de las dos cosas y PATCH no se garantiza idempotente. Idempotente se refiere al efecto sobre el estado del servidor, no a que la respuesta sea idéntica.
GraphQL expone un esquema tipado y el cliente pide los campos que quiere. Resuelve el over-fetching y el under-fetching; a cambio, el caché se reconstruye del lado del cliente, aparece el N+1 en los resolvers —mitigado con batching— y el servidor necesita control de demanda: paginar, limitar profundidad y analizar complejidad.
gRPC usa Protocol Buffers como IDL por defecto y HTTP/2 como transporte, con cuatro tipos de llamada: unaria, streaming de servidor, de cliente y bidireccional. Un navegador no lo habla de forma nativa.
Los webhooks son callbacks HTTP: exigen un receptor alcanzable, se entregan at-least-once —hay que deduplicar por identificador— y se autentican con una firma sobre el payload; se responde 2xx rápido y se procesa aparte. La mensajería asincrónica compra desacople temporal y absorción de picos; AsyncAPI describe ese contrato.