誰もが実際に何が何であるかを実際に理解していない場合でも、誰もがSOAを実行しています。だから彼らは間違っています。それを類推として使用して、RESTが何であるか(または少なくとも私はそう思う)を知っており、その一部を実行したいと考えています。しかし、私はそれを正しくしたい。
だから私の質問は、RESTを行う適切な方法は何ですか?
誰もが実際に何が何であるかを実際に理解していない場合でも、誰もがSOAを実行しています。だから彼らは間違っています。それを類推として使用して、RESTが何であるか(または少なくとも私はそう思う)を知っており、その一部を実行したいと考えています。しかし、私はそれを正しくしたい。
だから私の質問は、RESTを行う適切な方法は何ですか?
回答:
さて、RESTful Webアプリケーションを構築する方法を学ぶ方法はたくさんありますが、いいえ、独自の正しい方法はありません。RESTfulは標準ではありませんが、一連の標準(HTTP、URI、MIMEタイプなど)を使用します。
これから始めましょう: これからましょうどのようにRESTを妻に説明したか
次に、これを続行します。 RESTful Web Services Cookbook
そして、学習するための最良の方法は実験を行うことであり、間違いから多くを学ぶことができるので、Webアプリケーションの開発に全力を注ぎます;)
最初のWebアプリが完全にRESTfulでなくても心配する必要はありません。それを行う方法が見つかります。
それで、オビ=ワン・ケノービを引用して、「力があなたと共にあるかもしれません!」;)
編集
わかりました、もっと具体的にさせてください。 RESTfulなWebアプリを作成したいですか?さて、私が言ったように、それを行うには多くの方法がありますが、これは主なガイドラインです。
REST(Representational State Transfer)は、分散システム(WWWなど)向けのソフトウェアアーキテクチャのスタイルです。これは標準ではありませんが、HTTP、AJAX、HTML、URI、MIMEタイプなどの一連の標準を使用しています。リソース自体ではなく、リソースの表現について説明しています。「妻にRESTを説明した方法」から引用:
妻:Webページはリソースですか?
ライアン:の種類。Webページはリソースの表現です。リソースは単なる概念です。
OK、リソースを識別するためにURIを使用できることを確認しましたが、アクション(追加、変更、削除など)のために何か他のものが必要です。CRUD(作成、読み取り、更新、削除)への大歓迎です。
現在、PUTおよびDELETEに関して、いくつかの技術的な問題が発生する可能性があります(HTMLフォームでそれらを取得します)。多くの場合、開発者は各「PUT」および「DELETE」リクエストに対してPOSTを使用してこの問題を回避します。公式には、PUTおよびDELETEを使用する必要があります。ところで、あなたがしたいことをしてください。私の経験から、毎回POSTとGETを使用せざるを得ません。
--- 次の部分を使用する必要がありますが、RESTの結合ではありません。リンクデータに関するものです ---
技術的詳細から抽象URI!次のようにURIに別れを告げます。
http://www.example.com/index.php?query=search&id=9823&date=08272012
URIを再設計してください!上記のリンクを使用して、次のように変更します。
http://www.example.com/search/2012/08/27/9823
それははるかに良いですね?次の方法で実行できます。
別のこと:異なるURIを使用して異なるリソースを表す:
注意してください:about.htmlとabout.rdfはファイルではありません!XSLT変換の結果である可能性があります!
このポイントに到達したら、おめでとうございます!おそらく、セマンティックWebの技術的な詳細を入力しているため、より抽象的な概念を取得する準備ができています;)クライアントがリソースを必要とする場合、通常は次の要求を行います。
GET http://www.example.com/about
Accept: application/rdf+xml
ただし、サーバーは異なるURI(http://www.example.com/about.rdf)を持っているため、about.rdfで応答しません。それでは、303パターンを見てみましょう!サーバーはこれを返します:
303 See Other
Location: http://www.example.com/about.rdf
そして、クライアントは次のように返されたリンクをたどります。
GET http://www.example.com/about.rdf
Accept: application/rdf+xml
最後に、サーバーは要求されたリソースを返します。
200 OK
about.rdf
心配しないでください:クライアントアプリケーションはこれを何もしません!303パターンはサーバーアプリケーションで実行する必要があり、ブラウザが残りを実行します;)
多くの場合、理論は実践とはかけ離れています。ええ、これでRESTfulアプリケーションの設計と開発の方法はわかりましたが、上記のガイドラインは単なるヒントです。Webアプリケーションを構築する最良の方法を見つけることができますが、おそらく理論とは異なります。それを気にしないでください:D!
REST APIはハイパーテキスト駆動型でなければなりません、Roy Thomas Fielding
RESTバイブルブックか何か...
聖書の本は必要ありません。まったく同じ質問があり、これら3つの記事を読んで、RESTについて必要な、または知りたいすべてのことを学びました。
しかし、私はそれを正しくしたい。
上記の記事で読むように、キーは、アプリケーションのアクセス可能な部分を、既存のHTTP「動詞」を使用して作成、取得、更新、または削除できる「リソース」として考えることです:GET、PUT、POST 、削除。
また、PUTとPOSTの違いと、それらをいつ使用するかを知ってください。GET、PUT、およびDELETEはべき等トランザクションである必要があり、POSTはそうではありません。
また、クライアントと通信するときにHTTPステータスコードを適切に使用します。