Arquitectura de los servicios en línea

RPC

Remote Procedure Call
Modelado de funciones
~1970
Ejemplos

Servicio que responde a peticiones que reciben los parámetros serializados:

Servicio que responde a peticiones que recibe un parámetro array

Servicio http que responde peticiones que recibe el procedimiento a ejecutar vía querystring (op) y los parámetros vía body en xml

Servicio http que responde peticiones que recibe el procedimiento a ejecutar vía querystring (op) y los parámetros vía querystring en caso de GET y los parámetros vía body en JSON en caso de POST

Servicio http que responde peticiones cuyos endpoints hacen referencia al procedimiento a ejecutar. Los parámetros se envian vía querystring en caso de GET y vía body en caso POST.

Pros & Cons
  • Simple y fácil de entender
  • carga ligera
  • alto rendimiento
  • alto acoplamiento
  • sin capacidad de descubrimiento
  • funciones, funciones y funciones
Ejemplos de Apis RPC públicas

REST

REpresentational State Transfer
Modelado de recursos
~2000
Ejemplo
Pros & Cons
  • Desacoplamento cliente-servidor
  • api puede evolucionar con el tiempo
  • reutiliza http
  • No hay especificación
  • alta carga y charlatanería
Ejemplo de apis REST públicas

GraphQL

Modelado de query
  • ~2012 privado facebook
  • ~2015 publico facebook
  • ~2018 fundacion comunidad
Ejemplo
Ejemplo en grapql de los endpoints vistos en los ejemplos anteriores.
Ejemplo en grapql de una petición que relaciona diversas entidades.
Pros & Cons
  • Baja sobrecarga de la red
  • Esquema tipado
  • Se ajusta muy bien a los grafos como datos
  • complejo
  • cacheabilidad nula en HTTP
  • no hay versionado
  • muy joven
Ejemplo de apis GraphQL públicas