¿Cuál es la diferencia entre un documento, una tienda y una colección en el diseño de API?

Comencemos con el más fácil: almacenar. Esto puede considerarse como algo que puede almacenar cosas, como una base de datos. Puede ser una base de datos relacional tradicional como MySQL. También puede ser NoSQL como Apache Solr, o redis, o memcache.

Un documento en el mundo API generalmente se refiere a un documento JSON (JSON). Genéricamente, un documento puede considerarse como un registro de base de datos. La idea es que un documento generalmente se refiere a algo con columnas y valores.

Finalmente, una colección es un montón de cosas, como un montón de documentos. En el mundo de la base de datos, esto podría ser una tabla. Una diferencia con las colecciones y las tablas es que las tablas almacenan un montón de filas estructuradas de manera similar (es decir, todas tienen las mismas columnas). Con una colección de documentos JSON, por ejemplo, no está obligado por esta regla. Puede crear una colección que contenga autos y dulces si lo desea.

Lo principal sobre las colecciones en las API es por razones de rendimiento. El costo de llamar a una URL remota es costoso en cuanto al tiempo. Si creó una API para eliminar algo y alguien quiere eliminar 5000 elementos, entonces habrá 5000 llamadas a su API. El tiempo que lleva llamar a su API se multiplica por 5000. ¡Lleva mucho tiempo!

Pero si diseñó su API de manera avanzada sabiendo que habrá casos en los que puede haber múltiples llamadas, entonces, en su lugar, puede crear una API que tome una colección, como deleteCollection (colección), y el cliente solo tendrá que hacer una llamada a tu API. Claro, tendrá más complejidad debido a la semántica de manejo de errores. Pero el ahorro en el tiempo bien vale la pena.