リソースの WADL 文書の提供

開発者は、サード・パーティーがサービスに関して収集できる情報量を制限するために、OPTIONS 要求による Web アプリケーション記述言語 (WADL) 文書の公開を望まない場合もあります。 多くの情報を提供しないことにより、「曖昧さによるセキュリティー」を実現できます。

このタスクについて

デフォルトでは、任意の Java™ API for RESTful Web Services (JAX-RS) URL に対して HTTP OPTIONS 要求を呼び出すことによって、特定のリソースで WADL 文書を要求できます。 ほとんどの HTTP クライアントで OPTIONS 要求を発行できます。

また、org.apache.wink.common.model.wadl.WADLGenerator を使用すると、独自の WADL 文書を作成できます。 WADLGenerator は Java Architecture for XML Binding (JAXB) アノテーション付きオブジェクト・モデルを作成し、@OPTIONS リソース・メソッドのエンティティー応答としてこのモデルを簡単に戻すことができるようにします。 使用しているアプリケーション内のすべてのクラスに関するサービス文書を必要とする場合には、WADLGenerator を使用して WADL 表現を作成できます。 サービス文書があると、理解を深めるのに役立ちます。

以下の例では、WADLGenerator を使用してリソースの JAXB モデルを作成できます。 その後、クライアントがコンシュームする JAXB モデルを戻すことが可能です。

手順

  1. 使用するすべてのリソース・クラスが含まれる Application サブクラスを注入できます。 このクラスの中で、WADLGenerator に受け渡して、使用するすべてのクラスを生成できます。
  2. JAXB アノテーション付きオブジェクトである org.apache.wink.common.model.wadl.Application クラスを戻します。JAXB アノテーション付きタイプの JAX-RS MessageBodyWriter は、WADL 文書をクライアントにシリアライズするために使用されます。

以下の例は、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;
    }
}	

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_wadl_serving
ファイル名:twbs_jaxrs_wadl_serving.html