2009-05-14 3 views
0

のXML WebサービスをRPCメソッドの意味がオーバーロードされているWebサービス用のREST APIを設計するにはどうすればよいですか?

  • プロセスにディスパッチする方法を識別するに操作要素XML-RPCスタイルの要求を既存。例えば:

    <プロトコル> <操作 /操作> <ユーザ> ... < /ユーザ> < /プロトコル>

  • パラメータ数が変わります。

  • XML-RPCハンドラは810トークンを解釈して2つのことを意味します。要素< >を子要素として<プロトコル>の子要素として受け取ると、アカウントを作成します。要素<userExisting>を代わりに受け取ると、ユーザーにログインしようとします。私は1つのRESTエンドポイントなどにこれを維持したい

新しいJSON RESTのAPIの設計

  • /API/foobarに
  • 私はPUT /API/foobarに/ $ {ユーザー}へのユーザーの作成を翻訳することができ
  • DELETE /API/foobarに/ $ {ユーザー}へのユーザーの除去
  • 私の現在の設計は、身体とPOST /API/foobarに/ $ {ユーザー}を行うことです{ "OP": "ログイン"}のログインにを、同様にログアウトのために、身体{ "OP" : "logout"}が送信されます。

あなたはこれについてどう思いますか?コウノトリとブーケは建設的なコメントで歓迎されます。

答えて

1

RESTful API用のオーバーロードされたPOSTは、回避することができれば、ちょっとしたものです。ログインのために、私はステートレス性を維持しようとします。これは、クライアントが各要求に対してHTTP認証を渡す必要があることを意味します(これは毎回正しい認証ヘッダーを渡すことを意味します)。最初の要求では、Basicなどの通常の認証方法のいずれかを使用します。

1

エンドポイントはすべてのCRUD操作でURI api/usersにする必要があります。 DELETEとPUTはHTML 4で構築されたフォームではサポートされていませんが、通信にJavascriptを使用している場合は、POSTでペイロードに_method=PUT|DELETEを渡すことで、作成操作と削除操作を公開することができます。

エンドポイントはapi/loginである必要がありますが、こちらではHTTP認証を使用する方がよいでしょう。

スタックオーバーフローに関する設計レビューを依頼するのは良いですが、間違った方向転換を避けるために、RESTfulアーキテクチャを読み解く方が良いでしょう。

+0

+1よく置いてください。 – annakata

+0

HTTP認証を使用して、HTTPプロトコルが提供するすべてのアーセナルを使用したいと思いますが、私は、物事を迅速に処理する(たとえば、HTTP動詞の最小数のみを使用する)人たちと協力しています。あなたのアイデアをありがとう。 –

0

どのようにログインのため、このようなものと、サーバが実際にあなたがしたくない場合は、「要求」のリソースを作成する必要はありませんが、後であなたがあなたの心を変更することとしたい

POST /api/foobar/${user}/loginrequests 

POST /api/foobar/${user}/logoutrequests 

ログアウトについてログインとログアウトの記録を保持する。

+0

私が知っていることから、URIにアクションを入れるのは悪い習慣です。 –

+1

あなたは絶対に正しいです。しかし、私はURIにアクションを入れませんでした。もし私が/ RequestLoginを置いていたら、それはアクションになります。 –

+1

/RequestLoginまたは/ loginrequestsは影響ありません。/0f5cb891-6d64-49e7-9e5d-4b5f8b37f9a8でも問題はありません。名前/動詞の全体ではなく、重要な相互作用モデルです。それは匂いがすることができますが、それは確かに必要ではありません。 – SerialSeb

関連する問題