java-restify
2.x
2.x
  • Visão geral
  • Início
    • Instalação
    • Início rápido
  • Anotações
    • Anotações padrão
    • Extensões
      • JAX-RS
      • Spring Framework
  • Tipos de conteúdo
    • Serialização e deserialização
    • Formatos
      • wildcard
      • application/json
        • Jackson
        • Gson
        • JSON-B
        • JSON-P
      • application/xml
        • JAX-B
      • application/x-www-form-urlencoded
        • Map
        • Parameters
        • @Form
      • multipart/form-data
        • MultipartFile
        • Map
        • MultipartParameters
        • @MultipartForm
      • text/plain
      • text/html
      • application/octet-stream
  • Tipos de retorno de método
    • Visão geral
    • Objetos suportados
    • Extensões
      • Guava
      • Jsoup
      • Frameworks reativos
      • Vavr
      • Spring Framework
  • Requisições assíncronas
    • Visão geral
    • Extensões
      • Apache Async HTTP Client
      • OkHtp
      • Netty
  • Programação reativa
    • Frameworks suportados
      • RxJava (1.x)
      • RxJava (2.x)
      • Project Reactor
  • Manipulação de erros
    • Manipulação de erros
  • Retry
    • Retry
  • Clientes HTTP
    • Visão geral
      • Requisições assíncronas
    • Extensões
      • Jersey HTTP Client
      • Apache HTTP Client
      • Apache Async HTTP Client
      • OkHtp
      • Netty
  • Netflix OSS
    • Hystrix
    • Ribbon
  • Spring Framework
    • Anotações
    • Retornos de método
    • RestTemplate
    • Spring Boot
  • Autenticação
    • Basic
    • OAuth 2
  • Lista de artefatos
    • Artefatos
Powered by GitBook
On this page
  • Instalação
  • Maven
  • Gradle
  • Utilização

Was this helpful?

  1. Anotações
  2. Extensões

JAX-RS

JAX-RS é uma específicação Java para criação de serviços REST, e oferece um rico conjunto de anotações. O java-restify fornece suporte para utilizar as mesmas anotações no client-side.

Instalação

Para utilizar as anotações do JAX-RS, adicione a dependência java-restify-jaxrs-contract, que fornece a implementação JaxRsContractReader.

Maven

<dependency>
  <groupId>com.github.ljtfreitas</groupId>
  <artifactId>java-restify-jaxrs-contract</artifactId>
  <version>{version}</version>
</dependency>

Gradle

dependencies {
  compile("com.github.ljtfreitas:java-restify-jaxrs-contract:{version}")
}

Utilização

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.CookieParam;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

@ApplicationPath("http://myapi.com") //@Path também é suportado no topo da interface
interface MyApi {

    @Path("/resource") //@Path para métodos (@ApplicationPath é suportado apenas no topo da interface)
    @GET
    String getResource();

    @Path("/resource/{id}")
    @GET
    String getResourceById(@PathParam("id") String id);

    @Path("/resource")
    @GET
    String getResourceWithHeader(@HeaderParam("X-Custom-Header") String id);

    @Path("/resource")
    @GET
    String getResourceWithCookie(@CookieParam("whatever") String content);

    @Path("/resource")
    @GET
    String getResourceByName(@QueryParam("name") String name);

    @Path("/resource/{id}")
    @DELETE
    void deleteResourceById(@PathParam("id") String id);

    @Path("/resource/{id}")
    @PUT
    @Consumes("application/json") //adiciona o cabeçalho Content-Type:application/json
    void updateResourceById(@PathParam("id") String id, Resource body); //o argumento sem anotação será considerado como request body

    @Path("/resource")
    @POST
    @Consumes("application/json") //adiciona o cabeçalho Content-Type:application/json
    void createResource(Resource body); //o argumento sem anotação será considerado como request body

    @Path("/resource/{id}")
    @GET
    @Produces("application/json") //adiciona o cabeçalho Accept:application/json
    String getResourceByIdAsJson(@PathParam("id") String id);
}

MyApi myApi = new RestifyProxyBuilder()
  .contract(new JaxRsContractReader())
  .target(MyApi.class)
    .build();
PreviousExtensõesNextSpring Framework

Last updated 6 years ago

Was this helpful?

As anotações e não são suportadas.

MatrixParam
BeanParam