Yaml比較ツールを作った

サマリー

Yaml比較ツールを作りました

仕組み

Yamlをまずオブジェクト化し、そのオブジェクトをキーでソートします(子の要素についてもソートします) その後オブジェクトを再度Yamlにし、比較します

構成

Vue.js + 一部JQuery(差分表示のdiff2htmlのため) Yamlのソートや差分の表示など、すべての処理をブラウザ上で行います。バックエンドでは何も処理を行っていません。 ホスティングはおなじみNetlify

これをつくったきっかけ

API Gatewayを使っているのですが、コンソールからエクスポートできるAPI GatewayのSwagger定義ファイルが、 エクスポートするタイミングによってキーや値の位置がずれているのです。 そのため、API Gateway更新後にSwaggerファイルで差分を確認しようとしても、 単純にdiffを取るだけだと関係ない箇所で大量に差分が出てきてしまい、面倒でした。

このツールでは、キーをソートしてから差分を見るため、内容が同じならば差分は出てこないようになっています。