この質問は、Rest Web サービスの概念をよりよく理解するための「この Web サービスは Restfull ですか」という以前の質問の延長としてのものです。Rest について読むべきものはほとんどすべて読みましたが、特定の Web サービスが Rest であるかどうか、またはそうでない理由を理解できません。私の見方では、すべては休息であり、休息ではありません...
私は非常に興味深い記事を読んで、ようやく Rest とは何かを理解できるようになりました。Restは物理URLではなく論理URLを使用することを読みました。
ユーザーの登録/サブスクライブなどを行う必要がある iOS アプリケーションを開発していたときに、次のような URL に対して特定の Post HTTP 要求をサーバーに送信するように言われたことを覚えていますwww.myServer/devices/device/register
。このリクエストの本文には、サーバーが必要とするすべての情報が json 形式で含まれていました。その時までに私にとってのサーバーはブラックボックスだったので、このリンクが何を意味するのか、どのように生成されたのかさえ気にしませんでした. しかし、私はそれが Web Rest サービスであることを知っていました。
今月、モバイル ハイブリッド アプリの開発を開始しました。そこでは、ネイティブ コード + フロント エンド用の jquery mobile と、バック エンド用の php + mysql で開発を開始しました。ここでは、ユーザーがイベントにサブスクライブする必要があるかどうかにかかわらず、多かれ少なかれ同じシナリオがあります。彼が特定のイベントにサブスクライブするボタンを押すと、特定のphpスクリプトに対して、本文にajax呼び出しとjsonファイルを含むhttpポストリクエストを作成し、そのスクリプトはそれに応じてデータベースに書き込み/更新/削除します。
呼び出しは次のようになります。
$.ajax({
type: "POST",
url: "http://192.168.4.113/Server_CityInfo/subscribe.php",
data: data,
contentType: "application/json; charset=utf-8",
//dataType: "json",
success: function(response) {
$.mobile.changePage( "dialog.html", { role: "dialog" } );
},
error: function(xhr, status, message) { alert("Status: " + status + "\nMessage: " + message); }
});
ご覧のとおり、物理的な url を使用して、php スクリプトを指定してそのアクションを実行します。ユーザーがいる html ページでさえ、物理的なページです! myUrl.com/eventX のようなページです。
これは、私が構築しているこの Web サービスが Rest ではないということですか?
昨年、彼らはどうやって論理 URL を教えてくれたのに、私は物理的な php スクリプトしか参照できないのでしょうか? 彼らのサーバーが Java にあったことは知っていますが、それが原因で URL が物理的に見えないのでしょうか?
結局のところ、ユーザーがサブスクライブできる 100 の異なるイベントがあるとします。もちろん、私は 100 個の静的な HTML ページを作成しません。しかし、動的に生成される1つのhtmlページを作成します。それでも、そのページへのリンクは のような物理的なものになりmySite.com/event.html
ます。URLを論理的に見せる唯一の方法は、フォルダ内にindex.htmlファイルがあり、そのフォルダを指してURLがmyWebsite.com/myFolder
.
ここでの質問は、論理 URL を構築する方法であり、これがサービスを Restfull にするものですか?
編集
私がよく読んだもう 1 つのことは、Rest が操作ではなくリソースを説明する URL を使用していることです。繰り返しますが、私は理解できません。私の Web サービスのすべてについて、Post Request を使用します。たとえば、ユーザーをイベントにサブスクライブしたい場合は、URL で投稿要求を行い、この要求の本文に、ユーザーの と をmy.server.com/subscribe.php
含む json ファイルがあります。id
event name
ユーザーを登録したいときは、URLで投稿リクエストを行い、ユーザーmy.server.com/register.php
の本文にjsonをid
作成します。
このシナリオは残りですか? そうでない場合、何が欠けていますか?