Clojure は初めてで、Clojure を使用して他の言語のプログラミングを簡単にする方法を考えています。
私ができるようにしたいことの 1 つは、コード生成に Clojure を使用することです。
たとえば、データ ファイル (EDN 形式) からの入力が与えられた場合、(1) この構造をどのように処理するか、または (2) 既存のテンプレート メカニズムにデータをプッシュするか?
以下のデータは、単純な REST API を定義して、そこからクライアントを生成できるようにするためのものです。さまざまなテンプレートを使用して、複数の言語でクライアントを生成します。
(:restcall "GetAccountBalance"
{:method "GET" :path "account/balance"}
{:id int})
(:restcall "GetLastTransactions"
{:method "GET" :path "account/transactions"}
{:page int})
結果のコードは次のようになります
public void GetAccountBalance(int id)
{
var input = new { id = id };
callIntoRestLibrary("GET", "account/balance", input);
}
public void GetLastTransactions(int page)
{
var input = new { page = page };
callIntoRestLibrary("GET", "account/transactions", input);
}
注: 私の最終目標は、これらを C# 経由の System.Net.Http.HttpClient 呼び出しとして持つことですが、これらを JavaScript/Ajax 呼び出しに変換することもできます。