Maker - Parâmetros do cabeçalho da requisição REST

No Maker é possível criar um fluxo e definir para ter acesso externamente como uma API REST. Com tudo, as vezes não basta definir um fluxo para consumo, também é necessário receber parâmetros para fazer validações ou algo que influência na regra de negócios.

Passar esses parâmetros na formação da URL pode tornar a informação vulnerável devido a possível fragilidade na captura desses valores. Uma das formas mais utilizadas na passagem de parâmetros é através do cabeçalho do documento que está sendo enviado na requisição.

Foi informado aos usuários da ferramenta que a Softwell está desenvolvendo uma nova função, pois hoje o Maker ainda não possuí uma função para obter esses parâmetros do cabeçalho tornando menos seguro a maneira que é passado os valores.

Enquanto essa funcionalidade ainda não está disponível, resolvi criar duas funções cujo objetivo é poder obter esses parâmetros.


REST - Obter parâmetro do cabeçalho

Com essa função é possível passar o nome de uma chave e retornar um valor em String do parâmetro desejado.

protected final Variant osRESTObterParametroCabecalho(Variant key) throws Exception {
    return VariantPool.get(request.getHeader(key.toString()));
}


REST - Obter todos os parâmetros do cabeçalho

Já essa outra função retorna um objeto Map contendo todos os parâmetros do cabeçalho.

protected final Variant osRESTObterTodosParametroCabecalho() throws Exception {
    java.util.Map map = new java.util.HashMap();
    java.util.Enumeration headerNames = request.getHeaderNames();

    while (headerNames.hasMoreElements()) {
        java.lang.String key = (java.lang.String) headerNames.nextElement();
        java.lang.String value = request.getHeader(key);
        map.put(key, value);
    }

    return VariantPool.get(map);
}


Para testar o uso das funções, foi criado dois fluxos na camada servidor e habilitado a opção "Web" para ser disponibilizados como serviços Web. Também foi utilizado o Postman para consumir esses serviços.

Em ambos os testes foi criado o parâmetro "parametroTeste" dentro do cabeçalho e depois retornado num JSON.


Obtendo somente um parâmetro do cabeçalho




Obtendo todos os parâmetros do cabeçalho




Abaixo é possível fazer o download de um arquivo FRZ para ser importado ao seu projeto. Nesse arquivo contém as duas funções e os dois fluxos mencionados.

Arquivo:
maker_rest_cabecalho_1.0.frz

Ambiente de desenvolvimento:
Maker Studio 1.0.0.501
Webrun 1.0.0.502.1 UTF8
API de funções 10.0.502
JRE 8u221
Tomcat 8.5.42

Comentários