HTMLテーブルからC#プロパティを自動生成するユーティリティの作成

APIドキュメントの効率的なコード変換手法

外部APIとの連携を行う際、仕様書がJSON形式ではなく表形式で提供されるケースは珍しくありません。このような場合、手動でC#のデータモデルを作成するのは時間の無駄です。ここでは、HTMLの表データを元に、属性付きのC#プロパティを一括生成する方法を紹介します。

目的とする出力形式

以下のような、JsonProperty属性とXMLコメントを含むプロパティ定義を自動生成することを目指します。

/// <summary>
/// 直播間名称(最大40文字)
/// </summary>
[JsonProperty("name")]
public string Name { get; set; }

変換用スクリプトの実装

以下のHTMLファイルを作成し、対象の表を貼り付けて実行することで、コンソールに出力されたコードをそのままC#クラスに利用できます。

使用方法

  1. API提供元のドキュメントから表をコピー
  2. 下記のテンプレートに貼り付け、ブラウザで開く
  3. 開発者ツールのコンソールから生成されたコードをコピー
  4. C#プロジェクト内のモデルクラスにペースト

ベースとなるHTML構造

<html>
<head>
    <meta charset="utf-8">
    <title>Table to C# Converter</title>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    <!-- 上記スクリプトをここに挿入 -->
</head>
<body>

<!-- ここに対象のtableを貼り付け -->
<table>
    <tr><th>パラメータ</th><th>説明</th><th>備考</th></tr>
    <tr><td>userid</td><td>CCアカウントID</td><td></td></tr>
    <!-- 以降省略 -->
</table>

</body>
</html>

活用による生産性向上

繰り返し発生するマッピング作業は自動化すべき領域です。この手法により、数十個のフィールドを持つAPIでも数秒でモデルクラスを生成可能になります。開発者はビジネスロジックの実装に集中でき、ミスも大幅に減少します。

タグ: C# JSON HTML jQuery メタプログラミング

6月25日 23:59 投稿