Skip to main content

Output dari query database tidak konsisten

Pada saat query ke database untuk select data, akan keluar output yang berbeda seperti berikut :

- Jika result dari db hanya 1 row, respon dari micro integrator adalah json object.
- Jika result db lebih dari 1, respon format adalah json arrayIf result return more than one rows, respon's format was an array.

Output tidak konsisten. Solusinya adalah kita buat payload factory untuk merubah format respon agar seragam, berikut sampel source code nya :

            <payloadFactory media-type="xml">
                <format>
                    <database_return xmlns="http://ws.wso2.org/dataservice"><?xml-multiple data?>$1</database_return>
                </format>
                <args>
                    <arg evaluator="xml" expression="//*[local-name()='data']"/>
                </args>
            </payloadFactory>

database_return adalah key output yang akan ditampilkan, sedangkan untuk get datanya menggunakan expression  //*[local-name()='data'] yang akan mengambil child dari respon data. Taruh script diatas setelah memanggil dataservice. Dengan script diatas output akan konsisten berbentuk json array.