Objetos suportados
Tipos suportados
Por padrão, os seguintes tipos de retorno de método são suportados:
String
public interface MyApi {
@Path("/customers/{id}") @Get
String getCustomerAsString(@PathParameter String id);
}Tipos primitivos ou
wrappers
public interface MyApi {
@Path("/integer") @Get
int integer();
@Path("/boolean") @Get
Boolean boolean();
@Path("/double") @Get
double double();
}byte[]
InputStream
Optional
Collection
Stream
Enumeration
Iterator
ListIterator
Iterable
Queue
Callable
Callable é um objeto que representa uma computação qualquer que retorna algum valor. A requisição HTTP será feita de modo lazy, eventualmente em outra thread (o seu código será responsável pela execução do Callable).
Runnable
Runnable é um objeto que representa uma computação qualquer, e não retorna nenhum valor. A requisição HTTP será feita de modo lazy, eventualmente em outra thread (o seu código será responsável pela execução do Runnable).
EndpointCall<>
Esse objeto representa uma operação HTTP realizada pelo java-restify. O seu código será responsável por invocar o método execute.
Headers
Esse objeto é uma coleção imutável de cabeçalhos. Quando utilizado como retorno de método, irá conter os headers da resposta.
StatusCode
Esse objeto representa o status HTTP da resposta.
EndpointResponse<>
Esse objeto fornece acesso a todos os dados da resposta (incluindo cabeçalhos e status code). Também fornece acesso ao corpo, já deserializado para um objeto.
Tipos assíncronos
Alguns tipos de retorno farão com que a requisição seja executada da maneira assíncrona automaticamente. De maneira simplificada, a requisição simplesmente será realizada em uma thread separada. O mecanismo é explicado com mais detalhes na documentação sobre requisições assíncronas HTTP.
O java-restify oferece suporte para vários tipos de retorno assíncronos, e os handlers para esses objetos são registrados automaticamente. Para tornar essa configuração explícita:
Os seguintes tipos assíncronos são suportados:
Future
CompletableFuture
FutureTask
AsyncEndpointCall
Esse objeto é análogo ao EndpointCall, e fornece métodos para execução assíncrona.
@CallbackParameter
Ao invés de lidar com o retorno do método, outra possibilidade é utilizar um parâmetro anotado com @CallbackParameter, que represente um callback para a execução assíncrona.
Ao utilizar parâmetros anotados com @CallbackParameter, o retorno do método deve ser void.
Configuração
Os handlers responsáveis pela execução de métodos assíncronos utilizam o mesmo thread pool configurado para requisições assíncronas. A documentação sobre requisições assíncronas fornece mais detalhes de configuração e customizações.
Last updated
Was this helpful?