¿Las API de descanso son más lentas que usar directamente un SDK para interactuar con un back-end?

Probablemente quiera decir: “¿Las API de descanso son más lentas que usar directamente una biblioteca de API para interactuar con un back-end?”

La respuesta es sí.

Un SDK, es decir, el Kit de desarrollo de software, es simplemente un conjunto de herramientas que incluye la biblioteca API y es necesario para integrar la API en otro software.

Por simplicidad, supongamos que un back-end es un DB. Todavía tengo que ver una API REST que se conecta directamente a la base de datos que no es una API para la propia base de datos. Normalmente se accede a la base de datos utilizando otra API, como, por ejemplo, JDBC, que está integrada en el cliente o la API REST mediante un SDK.

El flujo típico del programa es:

Consumidor / Cliente API REST API ➝ DB API (por ejemplo, JDBC) ➝ DB.

La API Rest es una pieza de capa adicional que convierte las solicitudes de un cliente en las llamadas DB requeridas.

Sin embargo, el siguiente escenario será mucho más rápido, cuando se mide usando el tiempo de la computadora, si pasamos por alto la API REST y vamos directamente con la API DB …

Consumidor / Cliente API DB API (por ejemplo, JDBC) ➝ DB.

Para pequeños conjuntos de datos, un ser humano apenas puede notar la diferencia horaria.

Las API de descanso son lentas en principio, ya que hacen una llamada de red a un servicio para obtener datos, esto requiere que todos los datos enviados en ambos sentidos se conviertan desde y hacia alguna forma de texto y se arrojen a chorros sobre un nuevo equipo en ambos sentidos.

Pero no sé qué quiere decir con un SDK, por lo que la pregunta real no tiene respuesta.

SDK es un término genérico Kit de desarrollo de software, para responder a esta pregunta debemos saber qué kit de desarrollo de software y qué está haciendo con él.

La respuesta dada por Quentin Homareau parece suponer que está haciendo algo en particular con un SDK de Android, si es así, su respuesta probablemente sea correcta.

La respuesta dada por Kshitij Vichare es más general y supone que cualquier cosa que esté haciendo con el SDK puede omitir la llamada de red, que es lo que supuse que quería decir, si es así, su respuesta es correcta.

Fundamentalmente se necesita más información para responder esta pregunta definitivamente.

Absolutamente no

Los SDK debajo del capó solo hacen llamadas a la API REST.

Lo que significa que un SDK le da al desarrollador un acceso programático común a la API REST evitando errores humanos, y eso es todo.

Cuando utiliza el SDK de Google Identity Platform, solo llama a la API que se encuentra en

https://www.googleapis.com/identitytoolkit/v3/

No es más rápido ni más lento.

Sí. Debido a que una API REST está en la red, será inherentemente más lenta. Pero las ventajas superan esto.

Una API REST se puede distribuir en más servidores, carga equilibrada y acceder desde cualquier lugar. Es por eso que es un patrón tan popular en estos tiempos distribuidos.

Una vez que el servidor analiza la solicitud HTTP, es probable que use formas similares de acceder a los datos como una API normal, y esa parte tiene la misma velocidad.

Las API REST siempre serán más lentas que el uso de un SDK ‘nativo’ para interactuar. Asumiendo que el SDK utiliza protocolos TCP nativos y cargas útiles binarias sin la sobrecarga de XML y otras marcas descriptivas en la carga útil.