@RestResource(urlMapping='/OFSCustomSetting/*')
global class OFSCustomSettingRest {
    /**
     * カスタム設定取得
     */
    @HttpGet
    global static void doGet() {
        RestResponse res = RestContext.response;
        res.addHeader('Content-Type', 'application/json');
        
        String jsonResponse;
        List<OFSSetting__c> ofsList = OFSSetting__c.getall().values();
        if (ofsList == null || ofsList.isEmpty()) {
            res.statusCode = 200;
            jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage +'": "No found OFSSetting__c"}';
            res.responseBody = blob.valueOf(jsonResponse);
            return;
        } else {
            try {
                res.statusCode = 200;
                for (OFSSetting__c ofs : ofsList) {
                    if (String.isBlank(ofs.sqlWhere__c) == false) {
                        ofs.reportId__c += ' ' + ofs.sqlWhere__c;
                        ofs.sqlWhere__c = null;
                    }
                }
                jsonResponse = Json.serialize(ofsList);
                // TODO ここだけです。OFSErrorStatus などや設定しない、直接データとして戻す
                res.responseBody = blob.valueOf(jsonResponse);
                return;
            } catch ( Exception ex ) {
                res.statusCode = 200;
                Map<String, String> forJson = new Map<String, String>();
                forJson.put(System.Label.OFSErrorStatus, System.Label.OFSErrorFailure);
                forJson.put(System.Label.OFSErrorMessage, '' + ex);
                jsonResponse = Json.serialize(forJson);
                res.responseBody = blob.valueOf(jsonResponse);
                return;
            }
        }
    }
    
}