今日では誰もが [〜#〜] soa [〜#〜] をしていますが、実際に何が何であるかを実際に理解していない人もいます。だから彼らはそれを間違っています。これを類推として使用すると、 [〜#〜] rest [〜#〜] が何であるかがわかっており(または、少なくともそうだと思います)、その一部を実行したいと考えています。 しかし、私はそれを正しく行いたいと思っています。
だから私の質問はRESTを行うための適切な方法は何ですか?
まあ、RESTful Webアプリケーションを構築する方法を学ぶ方法はたくさんありますが、ユニークな正しい方法はありません。 RESTfulは標準ではありませんが、一連の標準(HTTP、URI、MIMEタイプなど)を使用します。
これから始めます: RESTを妻に説明した方法
次に、これを続行します。 RESTful Webサービスクックブック
そして、学習する最善の方法は実験を行うことであり、間違いから多くを学ぶことができるため、Webアプリケーションの開発に全力を尽くします;)
最初のWebアプリが完全にRESTfulでなくても心配しないでください。それを行う方法が見つかります!
それで、オビ=ワン・ケノービを引用して、「力があなたと共にいてくれますように!」 ;)
[〜#〜]編集[〜#〜]
では、具体的に説明しましょう。 RESTful Webアプリケーションを作成したいと思いませんか?さて、先ほど述べたように、さまざまな方法がありますが、これが主要なガイドラインです。
REST(Representational State Transfer)は、分散システム(WWWなど)向けのソフトウェアアーキテクチャのスタイルです。これは標準ではありませんが、HTTP、AJAX、HTML、URI、MIMEタイプなどの一連の標準を使用しています。ここでは、リソース自体ではなく、リソースの表現について説明しています。 「RESTを妻に説明した方法」からの引用:
Wife:Webページはリソースですか?
Ryan:親切。 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が異なるため、サーバーはabout.rdfで応答しません( http://www.example.com/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アプリケーションの設計と開発の方法は理解できましたが、上記のガイドラインはヒントにすぎません。あなたはあなたがウェブアプリケーションを構築する最善の方法を見つけるでしょう、そしてそれはおそらくそれが理論が望むものと同じではないでしょう。気にしないでください:D!
REST APIはハイパーテキスト駆動である必要があります、ロイトーマスフィールディング
a REST聖書の本か何か...
聖書の本は必要ありません。私はまったく同じ質問をし、RESTについて必要な、または知りたいと思ったすべてを、これら3つの記事を読むことで学びました:
しかし、私はそれを正しく行いたいと思っています。
上記の記事で読むように、重要なのは、アプリケーションのアクセス可能な部分を、既存のHTTP「動詞」を使用して作成、取得、更新、または削除できる「リソース」と考えることです。GET、PUT、POST 、DELETE。
また、PUTとPOSTの違いを知っている 、およびそれらをいつ使用するか。 GET、PUT、およびDELETEはべき等トランザクションである必要があります。POSTはすべきではありません。
また、クライアントへの通信時に HTTPステータスコード を適切に使用します。