JSコード?
?
- [??
- ????{??
- ??????"名"?:?"ただ"、??
- ??????"lastName"?:?"javac",??
- ??????"userName"?:?"@justjavac"??
- ????}、??
- ????{??
- ??????"名"?:?"トム",??
- ??????"姓"?:?"猫"、??
- ??????"userName"?:?"@tomcat"??
- ????}、??
- ??????……??
- ]??
c.?http://justjavac.com/user.xml
? をリクエストすると、XML 形式のデータが返されます。XML ドキュメントは DTD または XSD で定義できます。
d. すべてのユーザーのリストを管理者に送信するか、印刷したい場合はどうすればよいですか?
直接アクセスできますか?http://justjavac.com/user.xls
すると、フレームワークは Excel スプレッドシートを返します。 喜んでファイルをダウンロードしたものの、コンピューターに Excel がインストールされていないことがわかった場合は、どうすればよいでしょうか。 問題はありません。私たちはまだ http://justjavac.com/user.jpg
にアクセスできます。結局のところ、私たちはまだ画像閲覧ツールを持っています。
Google の短縮 URL サービスを使用したことのある学生は、たとえば、私の Web サイト http://justjavac.com の短縮 URL は?http://goo.gl/JMQJ8 であることを知っています。Google もQR コード表現の場合は、最後に .qr を追加するだけです (例:?http://goo.gl/JMQJ8.qr)。
taourl には、たとえば URL?http://taourl.com/7c1ug のアクセス状況を確認したい場合に非常に便利な機能もあります。 ? の場合は、URL の末尾に + 記号を追加するだけです。
つまり、どのような拡張機能が使用されても、形式が異なるだけで同じリソースが返されます 。 よく言われるのがデータ+テンプレート=出力です。
延長がない場合はどうなりますか? HTMLドキュメントを返しますか?
http リクエストを受け入れることを忘れないでください。 リクエストヘッダーを設定していますか?Accept: application/x-excel
?スプレッドシートは引き続き取得できます。
特定のユーザー ?http://justjavac.com/user/justjavac
にアクセスする場合でも、?Accept: text/x-vcard
を使用できます。意味がわからない場合は、自分で Google で調べてください。
この機能では、アダプター パターンを使用できます。 異なる拡張子に応じて異なるアダプターを選択し、最終的に同じインターフェイスを提供します。もう言うことはありません。
3. 多言語サポート
@TODO?多言語サポート URL 構造設計
4. HTTPを活用する
リクエストに関連するエラーやその他の重要なステータス情報についてはどうですか?
簡単です。HTTP ステータス コードを使用します。 HTTP ステータス コードを使用すると、インターフェイスのエラー/成功ルールを考え出す必要がなく、すでに行われています。
例: 消費者がデータを送信 (POST) する場合?/api/users
,
- 正常に作成されたメッセージを返す必要があります。その場合は、201 ステータス コード (201=作成済み) を送信するだけで済みます。
- サーバーが失敗すると、サーバーは 500 (500=内部サーバーエラー) を送信します。
- リクエストが中断された場合は 400 を送信します (400=不正なリクエスト)。
- おそらく、POST リクエストを受け入れないインターフェイスにデータを送信しようとするため、501 エラー (実行されない) が送信される可能性があります。
- または、MySQL サーバーがダウンしている場合、インターフェースは一時的に中断され、503 エラー (サービスが利用不可) が送信されます。
幸いなことに、ステータス コードについて詳しく知りたい場合は、Wikipedia で調べることができます。
HTTP はクライアント側のキャッシュをサポートしています。HTTP 応答で Cache-Control、Expires、Last-Modified の 3 つのヘッダー フィールドを使用することで、ブラウザーにリソースを一定期間キャッシュさせることができます。
REST は、これらのヘッダーを使用して、クライアントに一定期間内にリソースを再度リクエストする必要がないことを伝えることもできます。 これにはパフォーマンス上の大きな利点があります。 Expires、Last-Modified、および ETag は、リソースのプロパティを通じて提供できます。これについては、Model レイヤーの設計で詳しく説明します。
5. テストとデバッグ
PHP の柔軟性により、少なくとも Java と比較すると、自動テストや TDD が困難になります。 フレームワークでは、デバッグを自由に有効にすることができます。たとえば、私のデザインでは、次の URL パラメーターを追加します。
<code style="font-size: 1em; padding: 0px; color: inherit; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: transparent; border: 0px;">http://justjavac.com/user/justjavac?DEBUG=2</code>
DEBUG パラメータを追加してデバッグ モードを有効にするようにフレームワークに指示します。後続のパラメータ値はデバッグ レベルです。 同様に、LOG パラメータを追加してログを有効にすることもできます。
この設計のもう 1 つの利点は、構成ファイルを変更する必要がなく、特定のページに対して
をオンまたはオフにすることもできることです。 CI を使用するときは、プログラム内で問題を見つけるたびに、設定ファイルでログ レベルを all に設定し、再度ログ ファイルを見ると、すでに数百行になっています。訪問したすべてのページがログに記録されます。
テストは URL とはあまり関係がないようです。テストについては別の章で説明します。 テスト用に同意した URL は、test を追加することです。たとえば、コントローラー justjavac.controller.php 用に書かれたテスト ケース (Test Case) には、
? を通じてアクセスできます。
http://justjavac.com/test/user/justjavac
しかし、私はやはりコマンドラインでテストすることを好みます。結局のところ、手動でブラウザをクリックし、手動で URL を入力し、Enter キーを押すと、
自動テスト
に違反することになります。 6. アヤックス
@TODO 単一ページの Ajax
に適用される URL 構造設計?