3

私は Coldfusion のまったくの初心者 (ここまでで 1 日) で、仕事のためにそれを学ばなければなりません。私は .NET のバックグラウンドを持っているので、これらすべてを理解しようとしています。

基本的に、XML ファイルを読み取り、それを JSON として返したいだけです。単純。

XML ファイル構造:

<countries>
    <country code="AU" name="Australia" />
    <country code="NZ" name="New Zealand" />
    <country code="US" name="United States" />
    <country code="UK" name="United Kingdom" />
</countries>

cfscript を使用して CFC を使用する REST サービスを作成しました。コード:

component restpath="locations" rest="true"
{
    remote Array function getCountries() httpmethod="GET"
    {
        response = [];
        xCountries = xmlParse(expandPath("/data/countries.xml"));
        numItems = ArrayLen(xCountries.countries.XmlChildren);

        for (i = 1; i LTE numItems; i++) 
        {
            sCountries = StructNew();
            sCountries.code = xCountries.countries.country[i].XmlAttributes.code;
            sCountries.name = xCountries.countries.country[i].XmlAttributes.name;
            arrayAppend(response, sCountries);
        }

        return response;
    }
}

この手法を使用すると、テストで正しい応答が得られますが、効率が悪いのではないかという奇妙な感覚があります。新しい構造体を作成し、それをループ内の配列に追加する (完全な xml ファイルは約 100 項目です) のは扱いにくいと思っていました。

実際、構造体を使用することがこれを行うための最良の方法であるかどうかはわかりません。.NET では、クラスを作成し、そのプロパティに何かを追加します。クラスに似たものを探していたところ、何かに出会い、Countries.cfc ファイルを作成しました。

component accessors="true" output="false"
{
    property name="code" type="string";
    property name="name" type="string";
}

私がこれで抱えている唯一の問題は、これを使用する方法がわからないことです。このようなコンポーネントを OOP に使用しますか? それとも、上記の「struct」メソッドの方が優れていますか?

TL;DR ; 上記はこれを達成するための最良の方法ですか?ColdFusion でこれを行うためのベスト プラクティスはありますか?

他のポインタやアドバイスは大歓迎です。ありがとう

4

1 に答える 1