Row_id dans un export API d'objet mappé

Bonjour,

J’utilise la classe RESTMappedObjectsExternalObject pour exporter un objet Simplicité.
Dans mon export,

  • j’ai un champ row_id qui s’ajoute
  • il me semble que l’ordre des champs ne correspond pas à ce que j’ai mis dans mon code

Le point 1 semble correspondre à ce ticket mais je vois que c’est normalement corrigé Supprimer le champ row_id dans les apis générés

Mon code

public class RciAppDomList extends com.simplicite.webapp.services.RESTMappedObjectsExternalObject  {
	private static final long serialVersionUID = 1L;

	@Override
    public void init(Parameters params) {
        addObject("appdomains", "RciAppDomain");
		addField("appdomains","applicativeDomainName","rciDomName");
		addField("appdomains","applicativeDomainType","rciDomTypdomId.rciTypdomType");
		addField("appdomains","isCorporate","rciDomCorp");
		addField("appdomains","description","rciDomDescription");
		addField("appdomains","parentApplicativeDomainName","rciDomDomId.rciDomName");
		addField("appdomains","applicativeDomainLevel","rciDomLevel");

    }

}

Mon export

{"appdomains":[{"applicativeDomainType":"Delimited","isCorporate":"0","description":"","applicativeDomainName":"BSP-NISSAN","parentApplicativeDomainName":"","row_id":"12","applicativeDomainLevel":"1"}]}

Health

Version=4.0.P25
BuiltOn=2021-05-11 12:16 (revision f1e6126ade1a40961ade1593e9981d6c5f386392)

Merci d’avance pour votre aide,
Emmanuelle

Bonjour,

Commencez par vous mettre à jour pour tester si ce point avait bien été corrigé en V4.
Ensuite sur l’ordre des champs, il n’y a pas de notion d’ordre dans un objet JSON, ce n’est pas un tableau.

Je vais tester sur notre bac à sable qui est plus à jour mais le correctif semble avoir été poussé en Février 2020 alors que notre dernière mise à jour date de Mai 2021.

Ok mais je ne sais pas dire si c’est normal ou pas d’avoir un row_id dans ce wrapper utilisé depuis longtemps. Je n’y toucherai pas sans l’aval de @david qui l’avait conçu pour répondre à des besoins clients.

cc @bmo

Le row ID est requis pour construire les URLs directes sur un record en /<row ID>. Ce wrapper est destiné à un usage spécifique dans un contexte client contraint par des normes “maison”.

Si vous avez besoin d’exposer une API custom vous pouvez taper “plus bas” en développant un objet externe qui étend la classe RESTServiceExternalObject(RESTServiceExternalObject)

ex:

@Override
public Object get(Parameters params) throws HTTPException {
	try {
		return new JSONObject().put("hello", "world");
	} catch (Exception e) {
		return error(e);
	}
}

Ok donc on ne change rien.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.