Atualizar linhas (PUT / PATCH)
Tanto PUT quanto PATCH atualizam linhas da planilha. A diferença está no tratamento das colunas que você não inclui no corpo.
| Método | Comportamento |
|---|---|
PATCH | Atualização parcial. Grava apenas as colunas do corpo; as outras permanecem intactas. |
PUT | Substituição completa. Esvazia as colunas ausentes do corpo nas linhas afetadas. |
Os dois métodos retornam as linhas afetadas.
As atualizações exigem acesso de edição à planilha de origem do Google Sheets, assim como POST.
Atualizar uma linha pelo índice
Acrescente à URL o índice da linha, que começa em zero. /1 atualiza a segunda linha de dados.
- cURL
- JavaScript
- Python
# PATCH: only updates Name, leaves other columns alone
curl 'https://api.sheetbest.com/sheets/<api-id>/1' \
-X PATCH \
-H 'Content-Type: application/json' \
-d '{"Name": "Jack Doe"}'
# PUT: sets Name and blanks out every other column on row 1
curl 'https://api.sheetbest.com/sheets/<api-id>/1' \
-X PUT \
-H 'Content-Type: application/json' \
-d '{"Name": "Jack Doe"}'
// PATCH
fetch('https://api.sheetbest.com/sheets/<api-id>/1', {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ Name: 'Jack Doe' }),
}).then((r) => r.json()).then(console.log);
// PUT
fetch('https://api.sheetbest.com/sheets/<api-id>/1', {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ Name: 'Jack Doe' }),
});
import requests
# PATCH
requests.patch(
'https://api.sheetbest.com/sheets/<api-id>/1',
json={'Name': 'Jack Doe'},
)
# PUT
requests.put(
'https://api.sheetbest.com/sheets/<api-id>/1',
json={'Name': 'Jack Doe'},
)
Atualizar por filtro
Atualize todas as linhas que correspondam a um filtro de coluna substituindo o índice da linha por /<Column>/<Value>. Curingas (*) são aceitos.
- cURL
- JavaScript
- Python
# Set Name to "Jack Doe" on every row whose Name contains "John"
curl 'https://api.sheetbest.com/sheets/<api-id>/Name/*John*' \
-X PATCH \
-H 'Content-Type: application/json' \
-d '{"Name": "Jack Doe"}'
fetch('https://api.sheetbest.com/sheets/<api-id>/Name/*John*', {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ Name: 'Jack Doe' }),
});
requests.patch(
'https://api.sheetbest.com/sheets/<api-id>/Name/*John*',
json={'Name': 'Jack Doe'},
)
PUT funciona da mesma forma; lembre-se de que ele esvazia as colunas ausentes do corpo em cada linha correspondente.
A sintaxe do filtro é a mesma usada na leitura. Veja Filtrar dados para opções de correspondência exata, curingas e várias colunas. As atualizações também aceitam o prefixo /tabs/<TabName>; veja Trabalhar com abas.
Resposta
Os dois métodos retornam as linhas afetadas depois de aplicar a atualização:
[
{ "Id": "1", "Name": "Jack Doe", "Age": "23" }
]
Usar a semântica de PATCH em um cliente que só aceita PUT
Alguns clientes (bibliotecas HTTP antigas, certas plataformas no-code, ambientes embarcados ou ferramentas de webhooks) só podem enviar PUT. Para obter o comportamento de PATCH (atualização parcial) nesses clientes, envie uma requisição PUT e inclua o cabeçalho X-HTTP-Method-Override com o valor PATCH:
curl 'https://api.sheetbest.com/sheets/<api-id>/1' \
-X PUT \
-H 'Content-Type: application/json' \
-H 'X-HTTP-Method-Override: PATCH' \
-d '{"Name": "Jack Doe"}'
O Sheet Best processará a requisição como se você tivesse enviado PATCH, mantendo intactas as colunas ausentes do corpo em vez de esvaziá-las.
Veja Cabeçalhos personalizados para a referência completa, incluindo os métodos e valores aceitos.