0

私は現在APIを書いているアプリケーションを持っています。API を最初から最後まで作成したのはこれが初めてで、多くの優れた記事とその方法を読みました。しかし、その資料の多くは特に API 開発に焦点を当てていますが (そうあるべきです)、アプリケーション プロジェクト内で発生する変更によって API が壊れないようにする方法に触れているものは見つかりませんでした。

私のアプリケーションは、サービス層を呼び出して CRUD のような操作を行う ASP.NET MVC Web アプリで構成されています。したがって、アプリ内のすべてのユーザーのリストを取得するために、MVC アプリはサービス レイヤーを呼び出して要求し、ユーザーのコレクションが表示されます。私の API (WCF Web API) もこのサービス層を内部的に使用しており、ユーザーのリストを要求すると、再びユーザーのコレクション (JSON、XML など) が返されます。

ただし、何らかの理由で別の開発者がフィールドの名前を姓に変更して、基礎となるユーザー ドメイン オブジェクトを変更した場合、サービス レイヤーが新しいフィールド名を持つユーザー オブジェクトを API に返すため、API が壊れる可能性があります。他の何かを期待しているとき。実際、私の API には、要求時にアプリケーション オブジェクトにマップされるオブジェクトの独自の表現がありますが、このマッピングは姓のプロパティをマップせず、null として返されます。

したがって、API を提供するため、アプリのすべての変更を厳密に管理する必要がありますか? その場合、アプリと API を同時に変更する必要がありますか? 変更が見逃された場合はどうなりますか? 前述は私には正しくないように思われるため、より多くの知識を求めるための私の投稿です。

繰り返しますが、私はこれにまったく慣れていないので、これに関する助けをいただければ幸いです。

4

2 に答える 2

2

アプリケーションが進化するのは避けられません。アプリケーションが進化するにつれて新しいバージョンの API を作成し、古いバージョンをサポートできる場合は、古い API がいつ廃止されるかを通知してください。

于 2011-11-22T09:46:41.993 に答える
1

あなたが API 設計を所有していて、だれにもあなたの設計を汚染させたくない場合。API の使用に専用の DTO を導入します。これは、基盤となるドメイン モデルからマッピングされます。ただし、(xml または json を介した) プレゼンテーションは、基礎となるモデルが頻繁に変更されても変更されません。

于 2011-11-22T22:24:36.327 に答える