POST /secure/send de la API REST con un transporte binario: el mismo login,
los mismos campos, la misma tarificación y el mismo cargo, la misma aprobación de sender ID y de
plantilla, la misma comprobación de enrutamiento, la misma regla de reintento con client_ref y el
mismo límite de tasa por cuenta. Una vez aceptado, un mensaje enviado por gRPC es
indistinguible de uno enviado por REST.
Añade una cosa que REST no tiene: un feed de acuses. Pida acuses sin indicar un webhook y le
esperan en una cola duradera que usted lee por la misma conexión, sin necesidad de mantener un
endpoint propio.
gRPC está desactivado salvo que su proveedor lo active. Una pasarela que no se ha configurado para
ello responde a cada llamada
UNAVAILABLE con el código de error GRPC_DISABLED. Si ve eso, la API
existe pero no está habilitada en la plataforma a la que llama: pida a su proveedor la dirección gRPC.Cuándo elegirla
Una petición son unas pocas decenas de bytes de protobuf en lugar de un cuerpo JSON, y
SendStream envía muchos
mensajes en un solo stream sin esperar cada respuesta. Ninguna de las dos cosas cambia lo que se le
permite enviar ni a qué velocidad: REST y gRPC comparten el límite de mensajes por segundo de su
cuenta, así que pasar tráfico de uno a otro no le da más.
SMPP sigue siendo la tercera vía de entrada, y es independiente de ambas: consulte
Binding.
Tres servicios
Conectarse
Su proveedor le da un host y un puerto. En una pasarela sin nada delante, el puerto suele ser 8090; detrás del proxy TLS de un proveedor, a menudo es 443.
gRPC necesita HTTP/2 en todo el recorrido. Si las llamadas fallan en el nivel de transporte antes de
que la pasarela responda, algo entre usted y ella está hablando HTTP/1.1.
El contrato
El contrato es un único archivo,fireflo.proto, paquete protobuf fireflo.v1. Se reproduce
completo en El archivo proto.
Está congelado desde la 0.15.9 igual que lo está la API REST: los números de campo nunca se
reutilizan ni se renumeran, nada se elimina, y las novedades llegan como nuevos campos opcionales,
nuevos mensajes y nuevos métodos. Un cliente generado a partir del archivo de la 0.15.9 sigue
funcionando con cada pasarela posterior; simplemente no ve lo que se añadió después.
Obtener el proto
Cualquiera de estas vías le da el mismo archivo:-
Desde la propia pasarela. La reflexión del servidor está activada por defecto, así que una
herramienta que la hable no necesita ningún archivo:
Puede que su proveedor haya desactivado la reflexión; en ese caso use una de las otras dos.
- Desde este sitio: El archivo proto, para copiarlo o descargarlo.
-
Desde su proveedor, como
fireflo.proto.
protoc con el plugin de gRPC,
buf generate, python -m grpc_tools.protoc, o el plugin de protobuf para Gradle o Maven. El archivo
define go_package (fireflo/v1;fireflov1) y csharp_namespace (FireFlo.V1); en Java las clases
generadas están en el paquete fireflo.v1. Solo importa google/protobuf/timestamp.proto, que
incluye toda distribución de protobuf.
Límites que se aplican a cada llamada
Su proveedor puede cambiar cada uno de ellos; las cifras anteriores son los valores por defecto.
Adónde ir después
Autenticación y sesiones
Inicie sesión una vez, lleve el token y vuelva a iniciar sesión ante SESSION_EXPIRED.
Enviar mensajes
Send y SendStream, cada campo junto a su nombre REST.
Errores y códigos de estado
Estado REST, código gRPC, código de error y qué hacer.
Acuses de entrega por gRPC
Subscribe, Pull y Ack, al menos una vez.
Ejemplos
grpcurl, Python, Java y Go.
El archivo proto
El contrato completo.