1 つの Web API を効果的に公開するために、いくつかの異なるサードパーティ API のラッパーを作成しています。
したがって、私の API は次のようになります。
GET http://myapi.com/cars/1
応答:
{
"name": "DB9",
"make": "Aston Martin",
"speed": 123
}
しかし、これは実際には内部的に呼び出します
GET http://astonmartinapi.com/db/9
応答:
{
"speed": 123
}
次に、呼び出しは、内部的に呼び出す which で/cars/2
応答します。{ "name": "mondeo", "make": "Ford", "speed": 34 }
GET http://fordapi.com/vehicles/mondeo
私のサイトのさまざまなエンティティからこれらのサードパーティのサイトへのマップを実装するにはどうすればよいですか?
私が考えていたのは、マッパーを作成することでした:
public JsonResult Get(int id = 0)
{
var car = db.Cars.Find(id);
// check not null, etc
switch (car.Make.Id) // refactor into method
{
case 1:
// query astonmartinapi
break;
case 2:
// query fordapi
break;
}
// return stuff
}
しかし、これは良くないハードコーディングを意味します。
より良いアイデアはありますか?