私は物流上の疑問があります。アプリとの同期が外れるAPIを管理するための最良の方法を見つけようとしています。これを説明する最善の方法は、例です:iOSクライアント/サーバーアプリでアップデートを管理する最善の方法
MyAppバージョン1.0がfirst_name、last_name、およびemailを必要とする「submit_feedbacK」APIに投稿されたとします。
次に、MyAppバージョン2.0をApp Storeに送信します。このバージョンは、first_name、last_name、gender、およびemailをAPIに投稿するように設計されています。これらはすべてAPIの必須フィールドです。
私が持っている問題: - 新しいアプリケーションが実稼働中である前に、私はAPIを更新した場合、それはバージョン1.0 を中断します - バージョン2.0が1.0に不自由リモートでのライブとなるまで、私は待っていれば、私はそれを正しく時間を計る必要があります。
私は、「正しい答え」は2つの異なるAPIを維持することだと推測します。しかし、両方のAPIが同じライブ・データベースにポストすると、状況が少し面倒になります。
これをモデル化する方法の提案はありますか?
私は一般的な考え方はAPIとデータベース構造を設計しようと考えています。それはしばらくの間、変化を壊す必要はなく、厄介さの正味の合計を最小限に抑えるでしょう。 'gender'の値が1.0の生涯にわたって絶対に必要でない場合は、バージョンの移行中にまだ更新していないユーザーでなくても、それを実行することができます。 – millimoose
これは本当です。値が提供されない場合、レガシーアプリケーションはそれを提供しないため、新しいフィールドはデフォルトで "male"に設定されます。私は、コンセプトに再接近する必要があるかのように、私は複雑な変化をより心配していると思います。しかし、あなたが言ったように、大きな変化が稀に残されている場合、残りはおそらくダウンタイムアナウンスを通じて対処することができます。また、アプリの公開時期を選択できるようになったので、アップデートの管理に役立ちます。とにかく、フィードバックのおかげで! – Anthony