Ein WADL-Dokument für Ressourcen bereitstellen

Möglicherweise möchte ein Entwickler das WADL-Dokument (Web Application Description Language) nicht über eine OPTIONS-Anforderung verfügbar machen, weil er den Umfang der Informationen, die Dritte über einen Service sammeln können, begrenzen möchte. Dadurch, dass weniger Informationen zugänglich gemacht werden, kann die Sicherheit erhöht werden.

Informationen zu diesem Vorgang

Standardmäßig können Sie ein WADL-Dokument für eine bestimmte Ressource anfordern, indem Sie eine HTTP-OPTIONS-Anforderung für einen JAX-RS-URL (Java™ API for RESTful Web Services) aufrufen. Sie können eine OPTIONS-Anforderung mit den meisten HTTP-Clients absetzen.

Dann können Sie Ihr eigenes WADL-Dokument mit dem org.apache.wink.common.model.wadl.WADLGenerator erstellen. WADLGenerator erstellt ein annotiertes JAXB-Objektmodell (Java Architecture for XML Binding), das einfach als Entitätsantwort in einer @OPTIONS-Ressourcenmethode zurückgegeben werden kann. Wenn Sie ein Servicedokument für alle Klassen in Ihrer Anwendung verwenden möchten, können Sie den WADLGenerator verwenden, um eine WADL-Darstellung zu erstellen. Das Servicedokument kann helfen, das Verständnis zu verbessern.

Im folgenden Beispiel können Sie den WADLGenerator verwenden, um ein JAXB-Modell Ihrer Ressourcen zu erstellen. Dann können Sie das JAXB-Modell zurückgeben, damit es von Clients konsumiert werden kann.

Vorgehensweise

  1. Sie können die Unterklasse "Application", die alle Ihre Ressourcenklassen enthält, injizieren. Dann können Sie die Klassen an den WADLGenerator übergeben, um alle Klassen zu generieren.
  2. Geben Sie die Klasse org.apache.wink.common.model.wadl.Application, die ein annotiertes JAXB-Objekt ist, zurück. Der MessageBodyWriter von JAX-RS für annotierte JAXB-Typen wird verwendet, um das WADL-Dokument für den Client zu serialisieren.

Beispiel

Das folgende Beispiel veranschaulicht eine grundlegende Ressource mit einer OPTIONS-Anforderung:
@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());
        /* JAXB-Modell "wadlAppDoc" ändern, wenn weitere Informationen hinzugefügt werden sollen */
        return wadlAppDoc;
    }
}	

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_wadl_serving
Dateiname:twbs_jaxrs_wadl_serving.html