2011-07-06 3 views
1

私はこのような何か.... ブックス持つ:ユーザーたいがする場合現在のAPIを快適なAPIに変更するにはどうすればよいですか?

http://www.mydomain.com/books.php 

: 私は唯一のポストの要求を受け入れることを、PHPのプログラムを持っている...が、リンクはこのようなものです 登録:: のparams:

a=c    //a = action 
d=a array of dataJson //d = a defined books data in Json format 
u=user id 
s=session key 

と私は戻ります:

要求を行う、彼らはこのような何かを行う必要がありますIDの
0/!0  //0 = success case, !0 will give the error code 

配列//新しい項目 アレイID

読む作成:すべての書籍を返却、

a=r    //a = action 
id=the books id  (optional) //read the books from book id 
title= a books title (optional) //read the books from title 
author= an author (optional) //read the books from author 
u=user id 
s=session key 

//なしオプションのparamsの場合: のparamsを。

と私は戻ります:

​​

更新: のparams:

a=u    //a = action 
id=the books id  //update the books from book id 
d=a dataJson //d = a defined books data in Json format 
u=user id 
s=session key 

と私は戻ります:

0/!0  //0 = success case, !0 will give the error code 
のparams:

は削除

a=d    //a = action 
id=the books id  //delete the books from book id 
u=user id 
s=session key 

と私が返されます:私の現在の設計は、 "REST" 道に移動するため

0/!0  //0 = success case, !0 will give the error code 

は、このOKですか?ありがとうございました。

+0

あなたがあなたのコントロール下でのインターフェイスを持っているのですか? POSTのみをサポートすることは、安らかなAPIの大きな制約です。あなたは重要な「統一インターフェース」の原則を破棄します。あなたがコントロールしているAPIを持っていれば、私は他のHTTPメソッド(PUT、DELETEなど)をサポートするように努力します。 –

答えて

1

エラーコードの代わりに標準のHTTPステータスコードを使用する必要があります。 次のような階層順にURL内のすべての単一の貴重なパラメータを使用する必要があります。

を作成する必要があります:

POST : http://www.mydomain.com/user/<userId>/books/create 
Http request body = your json data 

Answer should be : 201 -> Created or 409 -> Conflict if there is one defined with the same title 

あなたがURLパラメータとしてセッションIDを使用する場合は、URLでそれを使用する必要がありますあまりにも。 Httpレスポンスボディを使用して、bookIdsをjson配列に戻すことができます。

読むには、次のようになります。

GET http://www.mydomain.com/user/<userId>/books/<bookId|@all>/<title|@all>/<author|@all> 

更新:

POST http://www.mydomain.com/user/<userId>/books/<bookId> 
Http request body = your json data. (updatable fields only) 

Answer : use HttpStatusCodes as response statuses and data as bookId 

削除:

POST http://www.mydomain.com/user/<userId>/books/<bookId>/delete 

Answer : use HttpStatusCodes 
+0

umum、私は何か質問しています.....通常、私のbooks.phpは/ htdocs /、私は私の要求をすることができますので、私はこの方法に変更すると、/ htdocs/pathの中に何が入りますか?どのようにPHPプログラムには、次のようなパスを読むことができます... http://www.mydomain.com/user/1234/books/ ??私は/ htdocsに別のフォルダ "user"を作成する必要がありますか?新しいユーザーが割り当てられたときに、ユーザーフォルダ内に新しいID(「1234」など)を追加する必要がありますか。 – Tattat

+1

これはURL内の動詞をエンコードし、POSTをオーバーロードするという問題があります。代わりにそれらのインスタンスでPUTとDELETEを使用することをお勧めします。 – laz

+0

私は問題のPHP実装に答えることはできません。 – kisp

関連する問題