2016-07-01 6 views
3

"リソースは、RESTの基本概念の1つです.RESTは、関数呼び出しを発行するのではなく、リソースの操作を強調します。リソースには一意の識別子があり、HTTP用語ではすべてのリソースを少なくとも1つのURLに関連付けます。 https://cwiki.apache.org/confluence/display/WINK/JAX-RS+Resources,+HTTP+Methods,+and+PathsJAX-RS/RESTのリソースはまったく何ですか?

私たちはリソースとして何を実装していますか?それは機能、オブジェクト、複数のオブジェクトのグループですか? JAXRS Specification

答えて

2

RESTでの情報のキー抽象化はリソースです。名前を付けることができる情報は、ドキュメントやイメージ、一時的なサービス(例えば、「ロサンゼルスの今日の天気」など)、他のリソースの集合、非仮想オブジェクト(人物など)などのリソースとすることができます。 。言い換えれば、著者のハイパーテキスト参照の対象となる考え方は、リソースの定義内に収まる必要があります。リソースとは、特定の時点におけるマッピングに対応するエンティティではなく、エンティティのセットへの概念的なマッピングです。

このリソースの抽象定義は、Webアーキテクチャの重要な機能を有効にします。第一に、タイプまたは実装によって人工的に区別することなく、多くの情報源を包括することによって一般性を提供します。第2に、レファレンスの表現へのレイトバインドを可能にし、要求の特性に基づいてコンテンツネゴシエーションを行うことができる。最後に、その概念の単なる表現ではなく概念を参照することができるため、表現が変わるたびに既存のすべてのリンクを変更する必要はありません(著者が正しい識別子を使用したと仮定します)。

Fielding

我々は資源として何を実装していますか?それは機能、オブジェクト、複数のオブジェクトのグループですか?

バイトストリームにシリアライズできる1つ以上の表現を持つものは、ほとんどすべてです。

URI(ユニフォームリソース識別子)のためのほとんどの設計ガイドラインは、リソースが論理実体であるという主張であることを正当化する、という動詞よりも、名詞を使用するために呼び出します。

+0

いいフィーリングを言及 –

+0

完璧に理解できます。ありがとうございました! – user6454491

1

節を参照してください3:

Webリソースは、リソースクラスとして実装されており、 要求は、リソース・メソッドによって処理されているJAX-RSを使用しました。

リソースクラスは、JAX-RSアノテーションを使用して に対応するWebリソースを実装するJavaクラスです。リソースクラスは、@Pathでアノテーションされたメソッドを少なくとも1つ持つPOJO またはリクエストメソッド の指定子です。

だから、基本的には通常@Pathアノテーションで、クラスであり、

@Path("/") 
public class HelloWorldResource { 
... 
} 

リソースメソッドは リクエストメソッド指定子で注釈を付けたリソースクラスのメソッドです。

@GET 
public String getHello() { 
    return "Hello"; 
} 

リクエストメソッド指定子は@HttpMethodアノテーションで に注釈が付けられているランタイム注釈です:

とリソースの方法は、通常@GETアノテーションを付けるメソッド、または@POST、または他のです。 JAX-RSは、@ GET、@ POST、@PUT、 @DELETE、@ HEAD、および@OPTIONSのような一般的なHTTPメソッドのリクエスト指定のセットを定義しています。ユーザーは、共通のHTTP メソッドの代替指定子を含む独自のカスタムリクエスト メソッド指定子を定義することができます。

詳細については、jersey documentationを参照してください。

関連する問題