Interfaces disponíveis
É possível usar uma das várias interfaces programáticas ao interagir com o Spanner. Estas são as interfaces disponíveis, na ordem em que recomendamos usá-las:
- Bibliotecas de cliente: as bibliotecas de cliente do Spanner estão disponíveis em várias linguagens e são criadas no gRPC. Essas bibliotecas de cliente fornecem uma camada de abstração sobre o gRPC e processam os detalhes do gerenciamento de sessões, execução de transações, novas tentativas e muito mais.
- Drivers de ORM e framework: o Suporte do Google oferece suporte a drivers de código aberto do Spanner para várias bibliotecas de mapeamento relacional de objetos (ORMs) e frameworks conhecidos, como JDBC. Esses drivers permitem o uso de bancos de dados do Spanner por meio de APIs definidas por esses frameworks.
- API RPC: se uma biblioteca de cliente ou um driver ORM não estiver disponível para sua linguagem de programação de preferência, use a API RPC, que é criada no gRPC. O gRPC oferece vários benefícios de desempenho em comparação com o uso da API REST, incluindo a representação de objetos no formato de buffer de protocolo (que são mais rápidos de produzir e consumir em comparação com JSON) e conexões persistentes (que resultam em menos sobrecarga por solicitação). Leia mais sobre esses e outros benefícios em Conceitos do gRPC.
- API REST: se não for possível usar as bibliotecas de cliente do Spanner ou a API RPC, use a API REST. Alguns recursos disponíveis na API RPC não são compatíveis com a API REST, conforme documentado abaixo.
API REST x RPC
Esta tabela compara os recursos do Spanner disponíveis nas interfaces de API RPC e API REST.
| Recurso | Aceito na API RPC? | Aceito na API REST? |
|---|---|---|
| Cancelar uma solicitação | Sim | Não |
| Definir um prazo ou tempo limite de uma solicitação | Sim | Não |
| Enviar uma solicitação de streaming | Sim. consulte ExecuteStreamingSQL e StreamingRead. |
Parcialmente. Streaming HTTP é compatível, mas o controle de fluxo no nível do aplicativo, não. |
Suporte a recursos de bibliotecas de cliente
A tabela a seguir lista as bibliotecas de cliente, observando os principais recursos do Spanner compatíveis com cada uma.