Class ResourceBase
- Direct Known Subclasses:
ResourceGetBase
AppConnection e um Login,
e retornem um Object a ser serializado como JSON após uma requisição HTTP.
Subclasses devem implementar um ou mais métodos para GET ou POST
(ou qualquer outro método HTTP), contendo a respectiva anotação @GET
ou @POST. Essa implementação pode ser feita como se preferir, mas é
recomendado que use as facilidades que já estão implementadas com o uso do
método execute(Executable). Sugere-se seguir o seguinte modelo, para simplificar:
@GET
public final MyObject get() throws Exception {
return execute((conn, login) -> generateMyObject(conn, login));
}
Essas subclasses também devem conter a anotação @Path correspondente.
Opcionalmente podem injetar @PathParam onde forem usar.
Carimbo de conexão
Se a implementação conseguir obter o Login - o que geralmente é obtido
informando na URL o parâmetro managerId - então esse login será
carimbado na conexão que será usada, e também "descarimbado" ao terminar
de usar essa conexão.
O nome do formulário NXJ que está sendo usado é obtido através do atributo de
sessão nome_form. Se isso não for obtido, em seu lugar são carimbados os primeiros 9
caracteres do nome da classe do endpoint REST que atendeu à requisição.
- Author:
- sergio
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classO objeto que será retornado em caso de erro. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final <T,E extends Exception>
Texecute(Executable<T, E> executer) Subclasses podem (ou devem) invocar este método para executar a consulta aos dados para o web service com segurança.protected StringObtém os dados do endereço do usuário remoto para rastreamento.protected final br.com.intersys.systextil.global.LogingetLogin()Credenciais do login do usuário, para uso pelas subclasses.protected final <T,E extends Exception>
Trun(Executable<T, E> executer) Subclasses podem invocar este método para executar a consulta aos dados para o web service com segurança.
-
Constructor Details
-
ResourceBase
public ResourceBase()
-
-
Method Details
-
getLogin
protected final br.com.intersys.systextil.global.Login getLogin()Credenciais do login do usuário, para uso pelas subclasses.- Returns:
- o login do usuário
-
run
Subclasses podem invocar este método para executar a consulta aos dados para o web service com segurança. Este método já assegura que a conexão ao banco de dados seja devidamente aberta e fechada, e disponibiliza os dados do login do usuário aoExecutable.Nunca lança
Exception.Se ocorrer alguma Exception na execução, sua mensagem será transformada num objeto
ResourceBase.Errcom status 500. Se a Exception for traduzível, a mensagem será traduzida para o idioma do usuário. Esse objeto será envolvido em umResponsee lançado em umWebApplicationExceptionpadronizado.Atenção: Este método bloqueia exceções, não as propagando de maneira transparente para o runtime de web services. Por isso em momento oportuno este método será depreciado.
- Type Parameters:
T- o tipo de objeto a retornarE- o tipo de exceção que oexecuterpode lançar (que é ignorado aqui)- Parameters:
executer- o objeto que executará a consulta aos dados e o retorno- Returns:
- o objeto com os dados, que for retornado pelo
Executable, ou umResourceBase.Errse houver algum problema. - Throws:
javax.ws.rs.WebApplicationException- contendo um Response padrão se ocorrer alguma exceção na execução
-
getClientInfo
Obtém os dados do endereço do usuário remoto para rastreamento.Lógica obtida de
LoginFilterque é usado ao fazer login no ERP.- Returns:
- o
clientInfoque pode, por exemplo, ser usado ao fazer insert na tabelaOPER_001
-
execute
Subclasses podem (ou devem) invocar este método para executar a consulta aos dados para o web service com segurança. Este método já assegura que a conexão ao banco de dados seja devidamente aberta e fechada, e disponibiliza os dados do login do usuário aoExecutable.Qualquer
Exceptionlançada será tratada pelo runtime de web services, o qual usará o tratador de exceções específico do plugin, se houver. Se não houver, aplicará o tratamento padrão.Este é o método preferido. Não interfere no tratamento de exceções e define com clareza o tipo de dados retornado.
- Type Parameters:
T- o tipo de objeto a retornarE- o tipo de exceção que oexecuterpode lançar- Parameters:
executer- o objeto que executará a consulta aos dados e o retorno- Returns:
- o objeto com os dados que for retornado pelo
Executable - Throws:
E- a exceção lançada peloexecuterse houver
-