2016-12-12 4 views
0

を使用して値を生成します。プロジェクト名は、自動生成フィールドを渡すフィールドです。 enter image description hereREST APIには、私は自動ページ上のテキストボックスに値を生成し合格するAPIを作成する必要がありますポスト

は、私は、Web APIに新しいですが、私はgetメソッドを使用してデータベースと戻り値を照会するREST APIを作成しました。したがって、ここではエンドポイントが呼び出されるたびに、自動生成されたプロジェクト名が返されます。これにアプローチする方法。

答えて

1

はRESTにあなたがとは、サーバがその名前を選択でき、リソースを作成に必要なときPOST動詞を使用することをお勧めします。 RESTのHTTPの実装では、サーバはlocationヘッダーに(URI)でリソース名を返します。

あなたがこのアプローチを使用する場合、これはフォローする方法です。

名前生成に必要なパラメータは、これが最適な方法かどうかを理解する上で重要です(これらのパラメータを保持するプロジェクトリソースを作成するのは当てはまりますか?)。しかし、バックレスポンスヘッダ

location: http://authority/rootpath/projects/prj_name123 

で持っていることを期待し

POST http://authority/rootpath/projects

{  
    name:"prj name", 
    relevance:"high", 
    dependencies: [...]  
} 

多分、:あなたは、次のデザインを使用することができたとえば、あなたがが必要な場合は、新規プロジェクトを作成するにはあなたはすべてのプロジェクトを作成したくない、あなただけの新しい名前のためにサーバーを頼むたいです。この場合、私はGETティンは、より一貫したアプローチだと思います。

GET http://authority/rootpath/projectNames?a='some'&b='useful'&c='parameters' 

この要求はそう

{  
    name:"prj name" 
} 
+0

おかげのようなリソース表現を保持する応答が続きます。しかし、入力パラメータを取得せずにプロジェクト名を生成することは可能です。 – trx

+0

このコメントから私は、上記のPOST戦略*が役に立たないようにプロジェクトリソースを生成する必要はないことを理解しています。 GETのアプローチを採用するのが最善の方法です。あなたがそれらを必要としない場合、あなたはクエリパラメタを使用するように強制されません。もしあなたが本当にPOSTを使いたいのであれば、サーバに '/ rootpath/projects'に提出する' projectName'リソースを設計し、 'location'ヘッダ*または*の中にこのリソース名を期待する必要があります。 – MaVVamaldo

関連する問題