java-restify
1.0.0
1.0.0
  • 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. Tipos de conteúdo
  2. Formatos
  3. application/json

JSON-P

PreviousJSON-BNextapplication/xml

Last updated 6 years ago

Was this helpful?

é uma especificação Java que fornece uma API para processamento de JSON, bastante simples e interessante. O JSON-P não faz binding entre o JSON e classes, mas fornece objetos que representam a estrutura do JSON.

Instalação

Para utilizar o JSON-P, inclua a dependência java-restify-json-jsonp-converter. O converter JsonPMessageConverter será automaticamente registrado.

Maven

<dependency>
  <groupId>com.github.ljtfreitas</groupId>
  <artifactId>java-restify-json-jsonp-converter</artifactId>
  <version>{version}</version>
</dependency>

Gradle

dependencies {
  compile("com.github.ljtfreitas:java-restify-json-jsonp-converter:{version}")
}

Esse converter permite utilizar apenas objetos da API do JSON-P (objetos do tipo ).

Utilização

import javax.json.JsonObject;

public interface MyApi {

  /* requisições e respostas com o content-type application/json 
  serão automaticamente serializadas/deserializadas com o json-p */

  @Path("/customers/{id}") @Get
  JsonObject findCustomer(@PathParameter String id);

  @Path("/customers") @Post
  @JsonContent
  void createCustomer(@BodyParameter JsonObject customer);
}
import com.github.ljtfreitas.restify.http.client.message.converter.json.JsonPMessageConverter;

// customizações dependem do provider JSON-P
// mais detalhes em: https://static.javadoc.io/javax.json/javax.json-api/1.1.4/javax/json/Json.html#createReaderFactory-java.util.Map- e https://static.javadoc.io/javax.json/javax.json-api/1.1.4/javax/json/Json.html#createWriterFactory-java.util.Map-
Map<String, ?> myConfiguration = new HashMap<>();

MyApi myApi = new RestifyProxyBuilder()
  .converters()
    .add(new JsonPMessageConverter(myConfiguration))
    .and()
  .target(MyApi.class)
    .build();

A implementação da classe JsonpMessageConverter utiliza os objetos e com configurações padrão (que dependem do provider JSON-P que estiver sendo utilizado). Se você precisar de mais customizações, você pode gerar um mapa de configurações e instanciar manualmente o JsonPMessageConverter:

JSON-P
JsonStructure
JsonReaderFactory
JsonWriterFactory