Class: RouteResult

@nginstack/engine/lib/router/RouteResult~ RouteResult


new RouteResult(opt_base)

Resultado de um controlador para uma requisição HTTP no atendimento de uma rota. Por padrão, o resultado terá o código de estado 200 (OK) e será vazio.
Todos os métodos deste objeto retornam um novo resultado com a modificação indicada pelo nome do método. Eles sempre retornam a própria instância do objeto, permitindo uma cadeia de chamadas.

Parameters:
Name Type Description
opt_base RouteResult

Resultado base do qual esta instância está sendo derivada. Esta nova instância herdará todas as propriedades definidas em opt_base.

Example
const RouteResult = require('@nginstack/engine/lib/router/RouteResult');
const result = RouteResult()
  .withStatus(Status.NOT_FOUND)
  .withContent(error);

Members


<static, constant> MAX_BASE_CHAIN :number

Limite máximo de resultados ligados por meio da propriedade #base_. Utilizado para detectar laços infinitos na cadeia.

Type:
  • number

charset :string

Codificação de caracteres empregada no conteúdo da resposta. Caso não seja informada, será considerada ISO-8859-1 para conteúdos do tipo text/* e UTF-8 para application/json.

Type:
  • string

content :*

Conteúdo a ser enviado como resposta da requisição HTTP.

Type:
  • *

contentType :MediaType

Tipo do conteúdo da resposta da requisição HTTP.

Type:
  • MediaType

headers :Object.<string>

Cabeçalhos da resposta da requisição HTTP. Por padrão, todos os nomes de cabeçalhos serão em maiúsculas.

Type:
  • Object.<string>

status :Status|number

Código do estado da resposta.

Type:
  • Status | number

Methods


<static> addTransformer(transformer)

Registra uma transformação de conteúdo que deverá ser realizada antes deste resultado ser enviado como uma resposta da requisição. Transformações possibilitam que objetos mais complexos não seja simplesmente convertidos em JSON ou que o código da resposta seja alterado de acordo com o tipo do conteúdo.

É recomendado que as transformações de resultados sejam registradas em arquivos de inicialização no diretório /Configuração/Inicialização do Roteador HTTP.
As funções de transformação serão executadas na ordem contrária em que foram adicionadas, garantindo que as transformações básicas de tratamento de erro e conversão para JSON sejam as últimas a serem executadas, possibilitando que os desenvolvedores da plataforma façam alterações no resultado da requisição antes que essas transformações finais sejam executadas.

Parameters:
Name Type Description
transformer function

Função que receberá o resultado de um controlador e a requisição HTTP, podendo transformar esse resultado. Caso a função de transformação não deseje alterar o resultado, ele deverá retornar a instância recebida sem alterações. Também poderá ser informado um array de funções.

Example
// Registrada uma transformação que indica que qualquer erro do tipo PermissionError deve
 // ser retornado com o status FORBIDDEN
 RouteResult.addTransformer(function (result, request) {
   if (result.content instanceof PermissionError) {
     return result.withStatus(Header.FORBIDDEN);
   } else {
     return result;
   }
 });

<static> removeAllTransformers()

Remove todas as funções de transformações registradas.


<static> transform(result, request)

Realiza a transformação dos dados a serem enviados na resposta HTTP, onde utiliza os métodos registrados em DefaultResultTransforms.

Parameters:
Name Type Description
result RouteResult

Resultado a ser transformado.

request Request

Requisição HTTP.

Returns:

Conteúdo do resultado transformado.

Type
RouteResult

as(contentType)

Cria um novo resultado com o tipo de conteúdo informado. Caso não seja informado um tipo, ele será inferido a partir do tipo de #content. Conteúdos do tipo string serão considerados como texto (text/plain) e objetos serão convertidos em JSON (application/json). No entanto, outras transformações mais especializadas podem ser registradas por meio do método @{link RouteResult#addTransform}.

Parameters:
Name Type Argument Description
contentType MediaType <nullable>

Tipo do conteúdo.

Returns:

Nova instância de RouteResult com o tipo de conteúdo informado.

Type
RouteResult

getInheritedProperty_(name)

Obtém uma propriedade herdada de #base_.

Parameters:
Name Type Description
name string

Nome da propriedade.

Returns:

Valor da propriedade definida por essa instância ou herda de de #base_.

Type
*

send(response [, opt_options])

Envia o resultado para o cliente.

Parameters:
Name Type Argument Description
response Response

Tratador de resposta que deve ser utilizado para enviar o resultado.

opt_options Object <optional>

Parâmetros opcionais.

Properties
Name Type Argument Description
onlyHeader boolean <optional>

Emite a resposta sem o conteúdo, enviando apenas os cabeçalhos.

debug boolean <optional>

Indica que devem ser registrado no log detalhes sobre a requisição e a resposta.


withCharset(charset)

Cria um novo resultado com a codificação de caracteres informada. Este método provocará a conversão do conteúdo da resposta para a codificação desejada caso ela seja suportada pelo Engine. Atualmente são suportadas as codificações 'iso-8859-1', 'utf-8' e 'windows-1252'.

Parameters:
Name Type Description
charset string

Codificação de caracteres.

Returns:

Nova instância de RouteResult com a codificação de caracteres informada.

Type
RouteResult

withContent(content)

Cria um novo resultado com o conteúdo informado.

Parameters:
Name Type Description
content *

Conteúdo da resposta.

Returns:

Nova instância de RouteResult com o conteúdo informado.

Type
RouteResult

withHeader(name, value)

Cria um novo resultado com cabeçalho de resposta informado.

Parameters:
Name Type Description
name string

Nome do cabeçalho.

value string

Valor do cabeçalho.

Returns:

Nova instância de RouteResult com o cabeçalho informado.

Type
RouteResult

withHeaders(headers)

Cria um novo resultado com os cabeçalhos de resposta informados.

Parameters:
Name Type Description
headers Object.<string>

Mapa associando o nome dos cabeçalhos aos seus valores.

Returns:

Nova instância de RouteResult com os cabeçalhos informados.

Type
RouteResult

withStatus(status)

Cria um novo resultado com o status informado.

Parameters:
Name Type Description
status Status | number

Status da resposta.

Returns:

Nova instância de RouteResult com o conteúdo informado.

Type
RouteResult