Djangoプロジェクトに2つの異なるアプリがあります。1つは「コメント」、もう1つは「ファイル」です。コメントを付けると、添付されているファイルを保存できます。
添付ファイル付きのコメントを作成する現在の方法は、2つのAPI呼び出しを行うことです。まず、実際のコメントを作成し、ファイルの外部キーとして機能するコメントIDで応答します。次に、各ファイルに対して、コメントIDを使用して新しいリクエストが作成されます。
ファイルは一般的なアプリであり、他のアプリでも使用できることに注意してください。これを1つのAPI呼び出しにする最もクリーンな方法は何ですか?
コメントを作成するときに、すべてのファイルを添付した電子メールをユーザーに送信する必要がある状況にあるため、これを単一のAPI呼び出しとして使用したいと思います。キューイングがそのための理想的な方法であることは知っています。しかし、今はスタックにキューイングを追加する自由がありません。これが私が考え得る唯一の方法でした。
キューを追加せずにこれを解決する簡単な方法の1つは、メソッド呼び出しの順序を逆にすることです。ファイルを添付するよりもコメントを作成するのではなく、まずファイルを作成してファイルIDを返し、次に添付ファイルフィールドのコメント作成リクエストでファイルIDを送信する必要があります。このようにすると、再アップロードせずに単一のファイルを複数のコメントに添付したり、サーバーで重複したアップロードを自動的に検出して同じファイルIDを返したりすることもできます。
これを行う別の可能な方法は、ステータスフィールドを追加することです。最初にコメントを作成するときは、下書きステータスになっている必要があります。これはメールを送信しません。ファイルの添付が完了したら、コメントステータスを発行済みに移行する別のリクエストを送信します。これにより、その時点までの添付ファイルを含む電子メールが送信されます。