3

複数ページのドキュメントを返す RESTful URL を公開しようとしています。私の意見では、PDFを使用すると非常に簡単です。

GET /documents/12345.pdf

しかし、各ページが個別の jpg である画像形式で同じドキュメントを公開したいと考えています。URL を作成するにはどうすればよいでしょうか。

これまでのところ、私は間で引き裂かれています

GET /documents/12345/page1.jpg

また

GET /documents/12345.jpg?page=1

また

GET /document/12345?page=1&type=jpg

これを行うための絶対的な正しい方法がないことはわかっていますが、最も直感的な方法を探しているだけです。私はこれを見るのに多くの時間を費やしたので、どれが一番好きか、あるいはより良い別のアプローチがあるかどうかさえわかりません.

ありがとう!

4

2 に答える 2

4

リソース

あなたのリソースはドキュメントです。PDF と JPEG は、このリソースの2 つの表現です。したがって、両方とも以下で利用できます

/documents/12345

内容交渉

クライアントはどのように PDF または JPEG を選択しますか? それがHTTP ヘッダーAcceptの目的です。

GET /documents/12345
Accept: image/jpeg

JPEG表現の場合、

GET /documents/12345
Accept: application/pdf

PDF表現用。

ページ

今でもページの問題があります。ここでは、コメントに記載されているアプローチに従うことをお勧めします。

GET /documents/12345/1
Accept: image/jpeg

JPEG表現の1ページ目。

問題

まだ小さな問題があります: このリクエストはどうなりますか?

GET /documens/12345/1
Accept: application/pdf

別のエンティティとして PDF 表現の「ページ 1」はありますか? RESTful サービスがそれを生成できる場合は、おそらく存在します。

しかし、まだ終わっていません。このリクエストはどうなりますか?

GET /documents/12345
Accept: image/jpeg

JPEG 表現の単一ページ バージョンはありますか? 繰り返しますが、RESTful サービスがそれを生成できる場合は、おそらく存在します。おそらく、1 ページにすべてのページが含まれる JPEG が生成される可能性があります。できない場合は、 を返し404 Not Foundます。

于 2012-10-19T14:10:27.033 に答える
1

どうですか

GET /documents/pdf/12345

GET /documents/jpg/12345/1

RESTを使用する場合、パラメーターやクエリ文字列を使用せずにリソースを公開することを好みます。そうすれば、RESTful 構文に適合し、ASP.NET MVC の組み込みのルーティングで解析しやすくなります。

@Tichodrom が Http ヘッダーについて述べたように、REST を使用するときにカスタム HTTP ヘッダーを使用することは一般的に好ましくありません。良い説明については、こちらをご覧ください。

REST: HTTP ヘッダーまたは要求パラメーター

于 2012-10-19T14:08:23.977 に答える