問題タブ [api-versioning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
791 参照

asp.net-core - MvcOptions.ReturnHttpNotAcceptable を ApiVersioning と連携させる方法

要求されたバージョンがサポートされていない場合は、HTTP 406 を返したいと思います。ので、私は持っています:

ただし、バージョンが正しい場合でも、これは常に HTTP 406 を返します (例: application/json;v=1.0 または application\vnd.acme+json;v=1)。

falseに設定ReturnHttpNotAcceptableすると、バージョンがサポートされていない場合は HTTP 400 (Bad Request) が返され、バージョンがサポートされている場合は HTTP 200 が返されます。

また、 myApiVersionReaderを にHeaderApiVersionReader設定ReturnHttpNotAcceptableして true に設定すると、バージョンがサポートされていない場合、406 ではなく HTTP 400 が返されます。

バージョニングを完全に無効にすると、HTTP 406ReturnHttpNotAcceptableが true に設定されて正しく取得されます。たとえば、リクエストがappliction/xmlXML をサポートしていて、API が XML をサポートしていない場合です。

Github の ASP.NET API Versioning でこの質問をしましたが、これは私が理解していないものであり、このフォーラムから回答を得ることができるかどうか疑問に思っています。

0 投票する
1 に答える
511 参照

ruby-on-rails - データベース スキーマが変更されたときに古いバージョンのモバイル アプリを処理する正しい方法

ruby on rails api サーバーに接続する ionic android モバイル アプリがあり、このアプリはデータベース サーバーとして postgresql を使用します。

新しい機能を作成するたびに、API と新しいアプリの両方をアプリ ストアにデプロイし、独自のバージョン番号シーケンスを持つ API とアプリのそれぞれのバージョンをバンプします。
APIはサーバーにデプロイされますが、ユーザーのデバイス上のアプリは頻繁に更新されないため、以下の2つのケースが発生します

ケース 1 : 新しい列の追加
たとえば、アプリの UI にそれぞれのテキスト フィールドが追加された追加情報を取得するために、db の特定のテーブルにいくつかの新しい列が追加された場合に、リリースで問題が発生します。
ここで、アプリの新しいバージョンのユーザーは期待どおりに動作します (これらの 2 つの情報を列に送信します) が、古いバージョンはこれらの 2 つのフィールド値を送信しません。

ケース 2: たとえば、列が削除され
ました アプリを大幅に再構築し、データベースを正規化する必要があります。これは、以前は非効率的であったため、テーブルの破損やいくつかの列の削除につながることさえあります。
ここで、古いバージョンのアプリは単にクラッシュするか、機能しなくなります。

私が構築するすべてのビジネス アプリには、管理すべき同じシナリオがあり、すべてに共通の問題であるはずです。

アプリがAPIサーバーに接続されたときに「更新フラグ」をチェックするカスタムロジックを作成中です。アプリのバージョンがAPIバージョンで動作するように強制的に更新されるように設定されている場合、アプリはリダイレクトされます再生する/アプリストア。

誰もがこの問題をどのように処理しているかを知りたいのですが、私は正しい方法でやっています.

この特定の問題をすでに処理している、または処理に役立つ Rails プラグインまたはライブラリはありますか。利用可能なバージョニング gem がたくさんあることは知っていますが、それらはこの問題を処理していません [アプリの強制更新]

ガイドしてください