Ferramentas do usuário

Ferramentas do site


api_post_tube

APIPost

O tube APIPost envia informações a uma API específica via POST (novas entidades).

Formato:

<bodyReceiver>.APIPost(<bodySender>, <APIinfo>, <endpoint>)
APIPost(<body>, <APIinfo>, <endpoint>)
<bodyReceiver>.APIPost(<bodySender>, <APIinfo>, <endpoint>, <mappingTranslator>)
APIPost(<body>, <APIinfo>, <endpoint>, <mappingTranslator>)
<bodyReceiver>.APIPost(<bodySender>, <header>, <APIinfo>, <endpoint>, <mappingTranslator>)
APIPost(<body>, <header>, <APIinfo>, <endpoint>, <mappingTranslator>)

Parâmetros:

  • <bodyReceiver>: objeto/vetor a ser recebido no body da API externa. Recebe tanto body quanto header de retorno.
  • <bodySender>: objeto a ser enviado no body da API externa.
  • <body>: objeto a ser enviado/recebido no body da API externa. Após envio, objeto é compartilhado para recebimento (tanto body quanto header de retorno).
  • <header>: objeto a ser enviado no header da API externa.
  • <APIinfo>: nome do arquivo Lawdef onde se armazena as informações (tokens, base URI, …) sobre a API respectiva. Obrigatoriamente uma String. Pode ser “null” caso não haja nenhum Lawdef associado.
  • <endpoint>: o sufixo do recurso URI do serviço propriamente. Obrigatoriamente uma String. Caso não haja Lawdef que defina o path root da API, pode-se colocar o o endereço completo da URI.
  • <mappingTranslator>: um mapeamento que toma cada chave do objeto recebido da API externa e o redireciona a um alias dentro do objeto receptor no Lawtex. Obrigatoriamente uma String formatado como “ChaveExternaRecebida: caminhoDoOperandoNoReceptorLawtex” separados por vírgula. Ex. “NumeroExterno: obj.numeroExterno, IDCaso: idCaso”. Alternativamente, pode-se usar a propriedade “label” do operando para definir esse alias da API externa.

Retorno:

  • Devolve os dados em body ou bodyReceiver para a API especificada em APIinfo e pelo endpoint via POST.

Exemplo:

 template[TEMP_APIPOST] { 
	metainfo { 
		language = "pt_BR"
	} 
 	body {
		declarations {
			+<x> : struct[StructPOST] {
				fields {
					+[nome] : String,
					+[rg] : String 
				}
			}
		}
		operations {
			APIPost(<x>, null, "http://api.com.br/pessoa") # Cria nova pessoa
		}
 	}
}
api_post_tube.txt · Última modificação: 2020/09/18 17:28 por 187.34.173.198