Servindo um Documento WADL para seus Recursos

Um desenvolvedor pode não querer expor um documento Web Application Description Language (WADL) por meio de uma solicitação OPTIONS para limitar a quantia de informações que um terceiro pode reunir sobre um serviço. Ao fornecer menos informações, a segurança por meio da obscuridade pode ser obtida.

Sobre Esta Tarefa

Por padrão, um documento WADL pode ser solicitado para um determinado recurso ao chamar uma solicitação HTTP OPTIONS para qualquer URL de Java™ API para RESTful Web Services (JAX-RS). É possível emitir uma solicitação OPTIONS com a maioria dos clientes HTTP.

Também é possível construir seu próprio documento WADL ao usar o org.apache.wink.common.model.wadl.WADLGenerator. O WADLGenerator constrói um modelo de objeto anotado Java Architecture for XML Binding (JAXB) para poder retornar facilmente como uma resposta de entidade em um método de recurso @OPTIONS. Se desejar um documento de serviço para todas as classes no seu aplicativo, poderá usar o WADLGenerator para criar uma representação WADL. O documento de serviço pode ajudar a aprimorar o entendimento.

No seguinte exemplo, é possível usar o WADLGenerator para construir um modelo JAXB de seus recursos. Em seguida, é possível retornar o modelo JAXB para os clientes consumirem.

Procedimento

  1. É possível injetar uma subclasse de Aplicativo que contém todas as classes de recursos. Eles podem passar as classes para o WADLGenerator para gerar todas as classes.
  2. Retorne para a classe org.apache.wink.common.model.wadl.Application, que é o objeto anotado do JAXB. O JAX-RS MessageBodyWriter para tipos anotados JAXB é usado para serializar o documento WADL para o cliente.

Exemplo

O exemplo a seguir ilustra um recurso básico com a solicitação OPTIONS:
@javax.ws.rs.Path("myexample")
public class MyResource {
    @Context
    javax.ws.rs.core.Application app;
    
    @javax.ws.rs.OPTIONS
    @Produces("application/vnd.sun.wadl+xml")
    public org.apache.wink.common.model.wadl.Application getOptions() {
        org.apache.wink.common.model.wadl.Application wadlAppDoc = new WADLGenerator().generate("", app.getClasses());
        /* modify the  wadlAppDoc JAXB model if you want to add additional information */
        return wadlAppDoc;
    }
}	

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_wadl_serving
Nome do arquivo: twbs_jaxrs_wadl_serving.html