新しい Web API 用の C# ラッパー ライブラリを作成しています。
このサービスは、いくつかの API のセットを提供します。各メソッドは、いくつかの必須パラメーターといくつかのオプションのパラメーターを受け取ります (各メソッドは、異なる必須/オプションのパラメーターを受け取る場合があります)。
パラメータは、param=value¶m2=value2&....の長い文字列として POST メソッドで送信されます。
インターフェイス ベースの設計に慣れてきたので、この場合に適していますか?
メソッドのオーバーロードを作成せずに、API のすべてのメソッドとパラメーターを単一のインターフェイスにマッピングするための適切なソリューションを見つけることができず、ユーザーが使用するのが難しくなります。
それがどのように見えるかの例:
public interface IServiceAPI
{
void MethodA(string mandatory, string mandatory2);
void MethodA(string mandatory, string mandatory2, int optional);
void MethodB(string mandatory);
... etc
}
- .NET 4 で導入されたオプションのパラメーターを認識しています。このライブラリは .NET の下位バージョンを対象としているため、これは適切な解決策ではありません。また、「オプションのパラメーター」は実際にはデフォルト値を設定する方法にすぎないため、パラメータの値を送信しないためではありません。
インターフェイスベースのデザインはここに適していますか? または別の言い方をすれば、インターフェイス ベースのデザインが最も適しているのはどこでしょうか?