東京電力電力供給状況APIを見てみたらFlash用にcrossdomain.xmlが提供されてるじゃないですか!ということでSilverlightからも呼べるというわけですよ。暇つぶしに呼び出すライブラリを作ってみました。
このAPIはJSON形式で返ってくるのでDataContractでJSONの形式に合わせたクラスを定義してデシリアライズしてるだけです。ライブラリのAPIは、以下のようなインターフェースにしてます。
/// <summary> /// http://tepco-usage-api.appspot.com/で提供されているAPI用インターフェース。 /// エラー時はコールバックの引数にnullがわたってきます。 /// </summary> public interface ITepcoCapacityClient { /// <summary> /// 最新の電力使用状況を返します /// </summary> /// <param name="callback">コールバック</param> void GetLatest(Action<TepcoStatus> callback); /// <summary> /// 指定された日時の電力使用状況を返します。 /// </summary> /// <param name="year">年</param> /// <param name="month">月</param> /// <param name="day">日</param> /// <param name="hour">時</param> /// <param name="callback">コールバック</param> void GetStatusByDateTime(int year, int month, int day, int hour, Action<TepcoStatus> callback); /// <summary> /// 指定された日の毎時の電力使用状況を、リストとして返します。 /// </summary> /// <param name="year">年</param> /// <param name="month">月</param> /// <param name="day">日</param> /// <param name="callback">コールバック</param> void GetStatysByDate(int year, int month, int day, Action<IList<TepcoStatus>> callback); /// <summary> /// 指定された月の毎日毎時の電力使用状況を、リストとして返します /// </summary> /// <param name="year">年</param> /// <param name="month">月</param> /// <param name="callback">コールバック</param> void GetStatusByMonth(int year, int month, Action<IList<TepcoStatus>> callback); }
CodePlexからダウンロードできます。
東京電力電力供給状況API Silverlight用APIラッパー