JAX-RS é perfeito para implementar REST. O que você usa para chamar os serviços REST em Java? [fechadas]

StackOverflow https://stackoverflow.com/questions/923566

  •  06-09-2019
  •  | 
  •  

Pergunta

Idealmente, eu estou procurando algo como JAX-RS (usando anotações para descrever os serviços que deseja chamar), mas permitindo a chamar os serviços REST implementado usando outras tecnologias (não JAX-RS). Qualquer sugestão?

Foi útil?

Solução

Você escreveu em um comentário que você estava "esperando por algo mais alto nível" do que HttpClient. Parece Restlet seria perfeito. Ele fornece uma API de alto nível para a implementação de e usando aplicações Web RESTful, com adaptadores de plug-and-play para as implementações de nível inferior.

Por exemplo, para deixar um formulário Web para um recurso usando Restlet 1.1:

Client client = new Client(Protocol.HTTP);

Form form = new Form();
form.add("foo", "bar");
form.add("abc", "123");

Response response = client.post("http://host/path/to/resource", form.getWebRepresentation())

if (response.getStatus().isError()) {
    // deal with the error
    return;
}

if (response.isEntityAvailable()) {
    System.out.println(response.getEntity().getText());
}

Se você precisar definir mais opções sobre o pedido, você pode usar um objeto de solicitação:

Form form = new Form();
form.add("foo", "bar");
form.add("abc", "123");

Request request = new Request(Method.POST, "http://host/path/to/resource");

request.setEntity(form.getWebRepresentation());

request.setReferrerRef("http://host/path/to/referrer");

Response response = client.handle(request);

HTH!

Outras dicas

JAX-RS (JSR311) não define a API do cliente, mas a maioria das implementações JAX-RS tem um, como Jersey , Resteasy ou Apache CXF . O quadro de Restlet também tem suporte ao cliente , bem como um separado HTTP extensão de cliente .

Uma vez que estes são especializados bibliotecas / frameworks para REST, eu sugiro que você olhar para estes.

Eu sugiro que você dê uma olhada na WADL projeto . WADL é descansar o WSDL é SOAP.

Você primeiro precisa definir o RESTO interface usando WADL. Então você pode executar a ferramenta wadl2java nele para gerar stubs de cliente para as chamadas REST.

Depois de ter o WADL para um serviço web que você pode implementar ferramentas que fazem outras coisas com ele também, por exemplo, gerar stubs lado do servidor, gerar documentação, etc.

HttpClient do Apache na sua maioria (ver http: // hc .apache.org / httpcomponents-client-ga / ).

Como Gandalf e Darrel Miller disse, HttpClient.

Você não precisa ser a construção de XML a partir de HTTP params. XML só deve ser sua interface entre dois sistemas separados. Usando HttpClient coloca você em Java com os valores de cadeia à sua disposição, goinn volta em XML a partir daí é desnecessária.

Se você está indo de volta para XML, neste ponto, a fim de enviar para outro sistema, você deve estar pensando em mudar os valores do HTTP params de volta na sua lógica de domínio / app antes de comunicar com outro sistema. Isso é necessário para mantém separação adequada de lógica de aplicação de comunicações inter-sistema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top