1

このサービスを考えると:

POST /hotel HTTP/1.1

<hotel>
  <a>aaa</a>
  <b>bbb</b>
  <c>ccc</c>
</hotel>

HTTP/1.1 201 CREATED
Location: /hotel/123

サーバーでリクエストを処理するときに、hotelリクエスト内のXMLをDTDに対して検証します。

質問は、RESTのベストプラクティスとして、クライアントはリクエストでDTDを参照する必要がありますか(DTDに基づいてXMLドキュメントを作成するときに通常行うように)?それともこれは必要ありませんか?DTDはAPIドキュメントで説明されるため、クライアントサービスの作成者はDTD検証の詳細を認識できます。

4

2 に答える 2

2

私の知る限り、REST は POST 本文の内容について何も言いません。

明らかに、とにかくサーバー上で XML を検証する必要があるため、時間と帯域幅を節約するために、送信する前にクライアントが XML を DTD に対して検証することをお勧めします。ただし、実際にそれを強制する方法はありません。

サービス ライターとしての責任は、DTD に関するものであるかどうかにかかわらず、要求を受け入れることだと思いますが、それは私の意見です。

于 2009-10-28T23:29:49.750 に答える
1

400 Bad Requestリクエストの本文がDTDチェックに失敗した場合は、確かに吐き返すことができますが、DTD参照が存在する必要はありません。省略できるようにし、そこにある場合はそれを使用する必要がありますが、間違ったDTDが指定されている場合も、要求は失敗します。もちろん、エラーメッセージは、予想されるDTDが何であるかを示す必要があります。

DTDが省略されている場合は、厳密な適合性チェックをスキップすることを検討することをお勧めします。これは、ソフトウェアをセットアップするときに人々が望んでいる種類のことですが、パフォーマンス上の理由から、すべてがわかった後で終了することをお勧めします。働く。

于 2009-10-28T23:43:44.753 に答える