web-dev-qa-db-ja.com

2つの異なるAPI呼び出しを1つにマージする

Djangoプロジェクトに2つの異なるアプリがあります。1つは「コメント」、もう1つは「ファイル」です。コメントを付けると、添付されているファイルを保存できます。

添付ファイル付きのコメントを作成する現在の方法は、2つのAPI呼び出しを行うことです。まず、実際のコメントを作成し、ファイルの外部キーとして機能するコメントIDで応答します。次に、各ファイルに対して、コメントIDを使用して新しいリクエストが作成されます。

ファイルは一般的なアプリであり、他のアプリでも使用できることに注意してください。これを1つのAPI呼び出しにする最もクリーンな方法は何ですか?

コメントを作成するときに、すべてのファイルを添付した電子メールをユーザーに送信する必要がある状況にあるため、これを単一のAPI呼び出しとして使用したいと思います。キューイングがそのための理想的な方法であることは知っています。しかし、今はスタックにキューイングを追加する自由がありません。これが私が考え得る唯一の方法でした。

7
dhilipsiva

キューを追加せずにこれを解決する簡単な方法の1つは、メソッド呼び出しの順序を逆にすることです。ファイルを添付するよりもコメントを作成するのではなく、まずファイルを作成してファイルIDを返し、次に添付ファイルフィールドのコメント作成リクエストでファイルIDを送信する必要があります。このようにすると、再アップロードせずに単一のファイルを複数のコメントに添付したり、サーバーで重複したアップロードを自動的に検出して同じファイルIDを返したりすることもできます。

これを行う別の可能な方法は、ステータスフィールドを追加することです。最初にコメントを作成するときは、下書きステータスになっている必要があります。これはメールを送信しません。ファイルの添付が完了したら、コメントステータスを発行済みに移行する別のリクエストを送信します。これにより、その時点までの添付ファイルを含む電子メールが送信されます。

1
Lie Ryan