Est-ce que le code de l’API peut être utile ?
package com.simplicite.extobjects.RCIB;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import com.simplicite.util.AppLog;
import com.simplicite.util.ObjectDB;
import com.simplicite.util.Tool;
import com.simplicite.util.exceptions.HTTPException;
import com.simplicite.util.tools.Parameters;
/**
* External object RciApiList
*/
public class RciApiList extends com.simplicite.webapp.services.RESTServiceExternalObject {
private static final long serialVersionUID = 1L;
/**
* GET method
* @param params Request parameters
*/
@Override
public Object get(Parameters params) throws HTTPException {
JSONArray res = new JSONArray();
JSONObject req = params.getJSONObject();
String appFilter = req!=null?req.optString("applicativeDomain", ""):"";
String sql = "SELECT rci_api_name, STRING_AGG(rci_tag_name, ','), rci_api_scope, rci_api_techno, rci_api_deployment, cty_name, rci_api_version_num, STRING_AGG(rci_data_name, ','),"
+ "app_domain.rci_dom_name, rci_app_name, fct_domain.rci_dom_name, fol_domain.rci_dom_name, ptrn.rci_prtn_name "
+ "FROM rci_api api "
+ "LEFT JOIN rci_api_version version on (api.row_id = version.rci_api_version_api_id) "
+ "LEFT JOIN rci_api_tag api_tag on (api.row_id = api_tag.rci_api_tag_api_id)"
+ "LEFT JOIN rci_tag tag on (tag.row_id = api_tag.rci_api_tag_tag_id)"
+ "LEFT JOIN rci_api_data api_data on (api_data.rci_api_data_api_id = api.row_id) "
+ "LEFT JOIN rci_data data on (data.row_id = api_data.rci_api_data_data_id ) "
+ "LEFT JOIN rci_api_dom_app api_dom_app on (api_dom_app.rci_api_dom_app_api_id = api.row_id) "
+ "LEFT JOIN rci_domain app_domain on (api_dom_app.rci_api_dom_app_dom_id = app_domain.row_id ) "
+ "LEFT JOIN rci_application app on (api_dom_app.rci_api_dom_app_app_id = app.row_id) "
+ "LEFT JOIN rci_api_dom_fct api_dom_fct on (api_dom_fct.rci_api_dom_fct_api_id = api.row_id) "
+ "LEFT JOIN rci_domain fct_domain on (api_dom_fct.rci_api_dom_fct_dom_id = fct_domain.row_id ) "
+ "LEFT JOIN rci_api_dom_fol api_dom_fol on (api_dom_fol.rci_api_dom_fol_api_id = api.row_id) "
+ "LEFT JOIN rci_domain fol_domain on (api_dom_fol.rci_api_dom_fol_dom_id = fol_domain.row_id )"
+ "LEFT JOIN rci_partner ptrn on (ptrn.row_id = api.rci_api_partner_id)"
+ "LEFT JOIN iso_country on (iso_country.row_id = api.rci_api_country_id)"
+ "GROUP BY rci_api_name, rci_api_scope, rci_api_techno, rci_api_deployment, cty_name, rci_api_version_num,"
+ "app_domain.rci_dom_name, rci_app_name, fct_domain.rci_dom_name, fol_domain.rci_dom_name, rci_prtn_name";
if (!appFilter.isEmpty())
sql += "WHERE rci_app_name = '" + appFilter + "' OR app_domain.rci_dom_name = '" + appFilter + "'";
for (String[] api : getGrant().query(sql))
{
res.put(new JSONObject()
.put("apiName", api[0])
.put("tag", api[1].isEmpty()?JSONObject.NULL:"[" + api[1] + "]")
.put("scope", api[2].isEmpty()?JSONObject.NULL:api[2])
.put("techno", api[3].isEmpty()?JSONObject.NULL:api[3])
//.put("deployment", new JSONArray(api[4].split(";")).toString())
.put("deployment", "[" + api[4].replace(";",",") + "]")
.put("country", api[5].isEmpty()?JSONObject.NULL:api[5])
.put("apiVersion", api[6].isEmpty()?JSONObject.NULL:api[6])
.put("dataType", api[7].isEmpty()?JSONObject.NULL:"[" + api[7] + "]")
.put("applicativeDomainName", api[8].isEmpty()?JSONObject.NULL:api[8])
.put("applicationName", api[9].isEmpty()?JSONObject.NULL:api[9])
.put("functionalDomainName", api[10].isEmpty()?JSONObject.NULL:api[10])
.put("fullOnlineProcess", api[11].isEmpty()?JSONObject.NULL:api[11])
.put("domain", api[12].isEmpty()?JSONObject.NULL:api[12])
);
}
return res;
}
}