Northonn Tibério de Oliveira
14/10/2021 09:58:34
No dia 13/10/21 realizamos uma reunião com a equipe da Techne para sanar algumas dúvidas sobre os recursos de integração via Rest do cronapp. Foi sugerido a utilização de blocos de programação para as operações de Get, Post, Put e Delete. Porém conforme imagem a seguir podemos identificar que os blocos de programação só trabalham com protocolo HTTP Get, quando é invocado através protocolo HTTP Post, por exemplo, a API retorna o erro "Unsupported Media Type".
Outro ponto importante, por bloco de programação, os parâmetros de inclusão por exemplo ficam expostos na URL, o que não é seguro e inviável quando se trata de uma entidade que possuiu diversos campo. Portanto precisamos carregas os dados no payload do protocolo Post no formato JSON ou XML conforme padrão de mercado para integração via Rest.
Como podemos configurar os blocos de programação do Cronapp para aceitar os protocolos Post, Put onde é possível carregar no body os dados para interação com entidades?
Tales Gabriel Silva Costa
20/10/2021 13:56:13
Hoje em dia, você habilita o post de forma geral para todo o bloco (o que habilita para todas as funções daquele bloco). Todos os blocos aceitam POST, PUT, DELETE etc, pois por padrão esses métodos são habilitados para usuários logados. O erro descrito (media type not allowed) não é erro de POST bloqueado. O que está bloqueando é o content-type.
Você pode fazer POST com content-type application/json ou application/atom+xml. Nesse caso, o primeiro parâmetro do bloco será preenchido com um JSON ou XML, nesse caso, sugiro criar um parâmetro de entrada apenas.
Você também pode fazer POST para o contente-type application/x-www-form-urlencoded e obter os parâmetros do post com a função “Obter parâmetro da requisição” ou em um mapa que será preenchido no primeiro argumento do bloco.
Você pode fazer um POST com contente-type multipart/form-data (envio de arquivos), mas precisa confirmar o comportamento. Pelo que entendi, cada binário enviado será associado a um parâmetro com nome correspondente.
Você pode fazer um POST com contente-type text/plain e o primeiro parâmetro do bloco será preenchido com o valor textual passado.