2016-05-27 7 views
0

現在、未処理のJAX-RSを使用してRESTful APIを構築しようとしています。私は、REST APIを構築するときに、HATEOAS(アプリケーション状態のエンジンとしてのHypermedia)という原則があることを知りました。私のクラスでは、リンクヘッダーを使用してクライアントに、アプリケーションをさらに進める方法を伝えました。私はすべての基本的な機能を実装することができ、アプリケーションをTomcatサーバーにデプロイした後にサーバーにアクセスできます。 私の質問は、ユーザーIDを入力するためのワイルドカードを含むヘッダーリンクを追加するにはどうすればいいですか?HATEOAS JAX-RSリンクヘッダー

は、これまでのところ、私は上記で定義されたパスにアクセスしようとした後、私はテンプレート変数IDが定義されていないというエラーメッセージが表示されます

@Path("/resources") 
@Produces(MediaType.APPLICATION_JSON) 
public Response listAllResources() 
{ 
    List<TestResource> resources = ... 
    // get stuff from database 
    return Response.ok(resources) 
        .link(UriInfo.getAbsolutePathBuilder().path("{id}").build(), "edit") 
        .build; 
} 

を試してみました。私は、これはstackoverflowの:)

上の私の最初の質問ですので、私の質問は、十分に明確だった願っています

link: <http://example.com/api/resources/{id}>; rel: "edit" 

: 私は私がどのようにのように見えるリンク・ヘッダを作成するために示す任意の有用資源を見つけることができません前もって感謝します!

答えて

0

私の例のようなリンクhttp://example.com/api/resources/{id}は、UriBuilderが中括弧で囲まれたURL部分を解決しようとしているため、JAX-RSでは不可能です。したがって、Uriテンプレートを付ける場合は、http://example.com/api/resources/:idのように使用してください。残念なことに、クライアントはString.replace()のような処理をして、実際に有効なURIを作成しなければなりません。

関連する問題