@RestResource(urlMapping='/Xin_SearchVisitorPlace_Campaign/*') global with sharing class Xin_SearchVisitorPlace_CampaignRest { /** * reportDate yyyy/MM/dd */ @HttpPost global static void doPost(String query, String reporterState, String reportDate) { system.debug('Xin_SearchVisitorPlace_CampaignRest.start'); Xin_SearchVisitorPlace_Campaign ctl = new Xin_SearchVisitorPlace_Campaign(); ctl.search(query, reporterState, reportDate); // 検索結果をMapのListに変換 List> rsList = new List>(); for (Campaign sobj : ctl.results) { Map rs = new Map(); if (rsList.size() == ctl.results.size() - 1 && ctl.getIsOverLimit() == true) { rs.put('Id', ''); rs.put('Name', ''); rs.put('DisplayName', '检索结果超过了30件'); rsList.add(0, rs); } else { rs.put('Id', sobj.Id); rs.put('Name', sobj.Name); rs.put('DisplayName', sobj.Name); rsList.add(rs); } } // JSONを戻す RestResponse res = RestContext.response; res.addHeader('Content-Type', 'application/json'); res.statusCode = 200; String jsonResponse = '{"status": "Success", "Message": ' + JSON.serialize(rsList) + '}'; res.responseBody = blob.valueOf(jsonResponse); return; } }