Olá, Amigos. Tranquilos?
No artigo de hoje, vamos mergulhar na integração de sistemas e aprender a implementar o verbo HTTP PUT utilizando a poderosa classe ADVPL FWRest. Este verbo é fundamental para a atualização de recursos em um serviço RESTful, garantindo que as modificações sejam enviadas de forma eficiente e padronizada.
📘 O Que é o Verbo PUT e Por Que Usar?
Enquanto o verbo POST é tipicamente usado para criar um novo recurso e o GET para consultar, o PUT é reservado para substituir ou atualizar um recurso já existente em um servidor.
Quando usamos o PUT via FWRest, estamos dizendo ao endpoint de destino: "Eu estou enviando o corpo desta requisição para substituir (ou atualizar completamente) o recurso X no endereço Y."
⚙️ Segue abaixo o fonte mostrando:
/*/{Protheus.doc} zTAPI001
(Envio de dados usando PUT e POST)
@type user function
@author Hamir
@since 21/11/2025
@version version
/*/
User Function zTAPI001()
//Local cServer := "10.172.22.122" // URL (IP) DO SERVIDOR
//Local cPort := "5085" // PORTA DO SERVIÇO REST
Local cURI := "https://pedmais-dev.weduu.com/api" // URI DO SERVIÇO REST
//Local cURI := "http://" + cServer + ":" + (cPort + "/rest") // URI DO SERVIÇO REST
Local cResource := "/mpr/upload_customers" // RECURSO A SER CONSUMIDO
Local oRest := FwRest():New(cURI)
Local cToken := GeraWDToken() // CLIENTE PARA CONSUMO REST
Local aHeader := {}
Local cBody := GetJson()
// PREENCHE CABEÇALHO DA REQUISIÇÃO
// AAdd(aHeader, "Content-Type: application/json; charset=UTF-8")
AAdd(aHeader, "Accept: application/json")
AAdd(aHeader, "Authorization: Bearer " + cToken)
AAdd(aHeader, "Content-Type: application/json; charset=UTF-8")
//AAdd(aHeader, "User-Agent: Chrome/65.0 (compatible; Protheus " + GetBuild() + ")")
// INFORMA O RECURSO E INSERE O JSON NO CORPO (BODY) DA REQUISIÇÃO
oRest:SetPath(cResource)
//oRest:SetPostParams(cBody)
// REALIZA O MÉTODO POST E VALIDA O RETORNO
//If (oRest:Post(aHeader)) => OK
If (oRest:Put(aHeader,cBody))
ConOut("POST: " + oRest:GetResult())
Else
ConOut("POST: " + oRest:GetLastError())
EndIf
Return (NIL)
// CRIA O JSON QUE SERÁ ENVIADO NO CORPO (BODY) DA REQUISIÇÃO
Static Function GetJson()
Local cBody := ""
cBody += ' { '
cBody += ' "cnpj": "05212086000187", '
cBody += ' "cd_customer": "000001", '
cBody += ' "note": "A E B RAPOSO E CIA LTDA", '
cBody += ' "name": "A E B RAPOSO E CIA LTDA", '
cBody += ' "uf": "SP", '
cBody += ' "shipping_type": "C", '
cBody += ' "payment_terms_1": "004", '
cBody += ' "payment_type_id": "237-1221-0412023", '
cBody += ' "email": "[email protected]" '
cBody += ' } '
Return cBody
📘 Pontos de Atenção:
O método PUT recebe parâmetro direto na função oRest:Put(aHeader,cBody)
Pois o método POST é diferente a implementação.
📘 Links:
Receba nossos novos artigos
Baixe nosso novo e-book Como o SQL Pode Mudar Sua Vida Em 04 Passos
Sobre o Autor
0 Comentários