読者です 読者をやめる 読者になる 読者になる

かずきのBlog@hatena

XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

東京電力供給APIをSilverlightから呼び出すライブラリを作ってみた

Silverlight C#

東京電力電力供給状況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ラッパー