Protocol Buffers v3

En este capítulo, analizaremos cómo usar los búferes de protocolo con el diseño de API. A fin de simplificar la experiencia del desarrollador y mejorar la eficiencia del entorno de ejecución, las API de gRPC deben usar la versión 3 de Protocol Buffers (proto3) para la definición de la API.

Protocol Buffers es un Lenguaje de definición de interfaz simple (IDL) independiente del lenguaje y de plataforma neutra para definir esquemas de estructura de datos y programar interfaces. Es compatible con los formatos de cable binarios y de texto, y funciona con varios protocolos de conexión estándar diferentes en plataformas distintas.

Proto3 es la versión más reciente de Protocol Buffers que incluye los cambios de proto2 siguientes:

  • La presencia de campo, también conocida como hasField, no está disponible para los campos básicos. Un campo básico sin configurar tiene un valor predeterminado definido por el lenguaje.
    • La presencia de un campo de mensaje aún está disponible y se puede probar con el método hasField generado por el compilador o compararlo con el valor nulo o el valor sentinel definido por la implementación.
  • El valor predeterminado definido por el usuario para los campos ya no está disponible.
  • Las definiciones de enumeración deben comenzar con el valor de enumeración cero.
  • Los campos obligatorios ya no están disponibles.
  • Las extensiones ya no están disponibles. Usa google.protobuf.Any en su lugar.
    • Se otorga la excepción especial para google/protobuf/descriptor.proto por razones de compatibilidad inversa y de entorno de ejecución.
  • Se quita la sintaxis del grupo.

El motivo por el que se quitan estas características es para hacer que los diseños de la API sean más simples, más estables y eficaces. Por ejemplo, a menudo, es necesario filtrar algunos campos antes de registrar un mensaje, como la operación para quitar información sensible. Esto no sería posible si los campos fueran obligatorios.

Consulta Protocol Buffers para obtener más información.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...