Ao criar um ponto final para um processo empresarial, deve especificar o tipo de dados que serão enviados neste pedido (Request payload type). A opção mais comum é JSON; permite especificar convenientemente todos os parâmetros necessários e passar um modelo de dados ou um conjunto de objectos. Além disso, são possíveis outras opções, por exemplo, XML ou Multipart Form (se precisar de enviar ficheiros).

Ao mesmo tempo, uma situação é aceitável quando a estrutura exacta não é conhecida antecipadamente (ou simplesmente não importa). Neste caso, uma opção razoável é utilizar as consultas "raw".

request payload type

Processo comercial para pedidos em raw

Imagine uma situação em que isto possa ser necessário. Digamos que o serviço que estamos a desenvolver é apenas um elo de ligação. A sua tarefa é receber um pedido do utilizador, verificar a autorização, guardar registos, executar protecção contra spam, e redireccionar o pedido ainda mais se tudo estiver em ordem.

Uma característica importante das consultas Raw é que não são utilizados parâmetros de entrada na concepção de processos empresariais. Em vez disso, é utilizado um bloco especial para obter o corpo do pedido - Get Request Body. Suponhamos que esteja interessado em informação alargada sobre o pedido. Nesse caso, o Current Request Info bloco é uma opção adequada - devolve não só o corpo de pedido, mas também parâmetros adicionais e cabeçalhos de pedido.

Current Request Info

No caso de estarmos interessados num cabeçalho específico do pedido, este pode ser obtido utilizando o Get Request Header bloco. O exemplo acima lê o bloco X-Real-IP que contém o endereço IP do pedido. O IP resultante é passado para uma função que deve verificar se o IP dado é válido e não para a lista negra de endereços proibidos. Como resultado, o processo será abortado com uma mensagem de erro apropriada ou, se tudo estiver em ordem, será permitida a continuação da execução.

IP Check

O pedido, recebido como Raw, é representado como um conjunto de bytes. Para a conveniência da percepção, pode ser convertido numa cadeia (To String bloco); nesta forma, a informação é armazenada nos registos.

Neste caso, o pedido em si, sem qualquer transformação, pode ser redireccionado para outro local, utilizando o HTTP Request bloco. Neste exemplo, o método de pedido, o seu URL, e o organismo de pedido (obtido a partir do bloco Current Request Info bloco) são especificados. O resultado do bloco HTTP Request bloco é utilizado como resultado de todo o processo comercial.

HTTP Request

A imagem do ecrã mostra o processo comercial final. Note-se que os blocos de funções (FUNC Save request Log e FUNC IP Blacklist Check) são exemplos e existem apenas no âmbito deste projecto.

BP Complete

Assim, o ponto final pode ser utilizado para trabalhar com qualquer pedido, independentemente do seu conteúdo real. Não é necessário conhecer o pedido exacto que deve ser enviado a um serviço de terceiros, e mesmo que haja algumas alterações no mesmo (adicionar um modelo, renomear parâmetros), pode continuar a utilizar o ponto final sem fazer alterações ao projecto.

Was this article helpful?

AppMaster.io 101 Curso de Crash

10 Módulos
2 Semanas

Não sabe por onde começar? Avance com o nosso curso intensivo para principiantes e explore o AppMaster de A a Z.

Iniciar curso
Development it’s so easy with AppMaster!

Precisa de mais ajuda?

Resolva qualquer problema com a ajuda de nossos especialistas. Economize tempo e concentre-se na criação de seus aplicativos.

headphones

Entre em contato com o suporte

Conte-nos sobre o seu problema, e nós encontraremos uma solução para você.

message

Bate-papo da comunidade

Discuta perguntas com outros usuários em nosso chat.

Junte-se à comunidade