Project Description
東京電力電力供給状況APIのAPIをSilverlightアプリケーションから呼び出すためのAPIの簡易ラッパーです。
http://tepco-usage-api.appspot.com/

APIの使い方
Okazuki.TepcoUsageApi.TestのMainPage.xamlに全APIを叩くテスト用の画面があります。
基本的にパラメータとコールバックを渡す形で使用します。

使用例
// 最新の状況を取得してきて、取得してきたものをJSON形式にシリアライズしてメッセージボックスに出す。
var client = new TepcoCapacityClient();
client.GetLatest(result =>
    {
        this.Dispatcher.BeginInvoke(() =>
            {
                var s = new DataContractJsonSerializer(typeof(TepcoStatus));
                var ms = new MemoryStream();
                s.WriteObject(ms, result);
                var text = Encoding.UTF8.GetString(ms.ToArray(), 0, ms.ToArray().Length);
                MessageBox.Show(text);
            });
    });

APIの戻り値の型
単一のステータスを返すものは以下の型が返ってきます。複数のステータスが返ってくる場合は以下の型のリストが返ってきます。
/// <summary>
/// 東京電力電力供給状況
/// </summary>
[DataContract]
public class TepcoStatus
{
    /// <summary>
    /// 年
    /// </summary>
    [DataMember(Name = "year")]
    public int Year { get; set; }

    /// <summary>
    /// 月
    /// </summary>
    [DataMember(Name = "month")]
    public int Month { get; set; }

    /// <summary>
    /// 日
    /// </summary>
    [DataMember(Name = "day")]
    public string Day { get; set; }

    /// <summary>
    /// 時刻(24h)
    /// </summary>
    [DataMember(Name = "hour")]
    public int Hour { get; set; }

    /// <summary>
    /// この時間に計画停電が実施されていたらtrue
    /// </summary>
    [DataMember(Name = "saving")]
    public bool Saving { get; set; }

    /// <summary>
    /// 供給可能最大電力が決定された日時(UTC)の文字列表現
    /// </summary>
    [DataMember(Name = "capacity_updated")]
    public string CapacityUpdated { get; set; }


    /// <summary>
    /// この消費電力のデータが更新された日時(UTC)の文字列表現
    /// </summary>
    [DataMember(Name = "usage_updated")]
    public string UsageUpdated { get; set; }

    /// <summary>
    /// この時刻の文字列(UTC)
    /// </summary>
    [DataMember(Name = "entryfor")]
    public string EntryforText { get; set; }

    /// <summary>
    /// この時間帯の消費電力(万kW)
    /// </summary>
    [DataMember(Name = "usage")]
    public int Usage { get; set; }

    /// <summary>
    /// この時間帯の供給可能最大電力(万kW)
    /// </summary>
    [DataMember(Name = "capacity")]
    public int Capacity { get; set; }

}

Last edited Mar 24, 2011 at 1:06 PM by okazuki, version 3