最近、私はRestアーキテクチャと苦労しています:pと私はいつもそれに多くの問題を引き起こします。 「user」という名前のリソースがあり、そのユーザーに車のリストがあるとします。 そのユーザーと彼の車のリストをデータベースに一度に挿入しようとしています。私はPOST HTTP動詞でこれを行う必要があることを知っています。しかし、どうすればこれを達成できますか?ユーザーIDと何らかの形でコード化された車のリストを含むURLを1つだけ送信する必要がありますか?ユーザーを挿入するために「ユーザー」リソースを使用する必要があります。次に、それぞれの自動車について、「car」というリソースでPOST URLを呼び出します。RestFul Webサービスとデータベーストランザクション
2番目の方法には問題があります。このプロセスは、データベーストランザクションで実装する必要があります。車を挿入するときに何かがうまくいかない場合、私はユーザーがデータベースに登録されないようにしたい。
私はrestFulアーキテクチャがステートレスでなければならないことを知っています。そのため、データベース機能を使用してこのようなトランザクションを実装するにはどうすればよいですか?私は何らかのトランザクションを実装することができますが、より自動化したいと思っています。
ありがとうございます。
この方法は私がそれを行う方法を知っています:p。もちろん有効な答えです。私はURLで各車を送信する別のアプローチを知りたかったので、何らかのデータベーストランザクションシステムを実装する必要がありました。 しかし、あなたがこのアプローチを示したので、私にあなたに何かを聞かせてください。このアプローチでは、ユーザーは何らかのアラビアシェイクだったと想像してみましょう。彼は多くの車を持っています。これが当てはまる場合、正しく送信されるには大きすぎるURLを作成する可能性があります。これはPOSTメソッドなので、サーバーのPOST MAX SIZEを大きくする方法がありますか?そしてそれがGET要求だったら? –
この方法では、エンコードされたオブジェクトを送信することはできませんか?私は車を送って、自分のIDと名前を送ろうとしていたと言いましょう。どうしますか? carId [] = 1&carId [] = 2&carName []&carName []のような配列で、2つの配列をインデックスで一致させますか?または、何らかの形でオブジェクトを送信する方法はありますか? –
はい、最大の投稿サイズを増やす必要があります.GETで投稿することはお勧めできません。しかし、PHPの最大ポストサイズはデフォルトで8MBで、テキストの*ロット*です。エンコードされたオブジェクトとしてそれを行うためには、うまくも、あなたのために何がうまくいく。 IMO私は、1つのコールでそれを行うほうが、1000人分の車を節約するのではなく、1人分と1000人分のコールをユーザと各自の車のために呼び出す方がよいと言いたい。 –