J’aimerais créer une API REST, j’ai donc créé un objet externe qui extends RESTServiceExternalObject.
Je ne sais pas comment faire pour renvoyer les chemins url_base/unite, url_base/unite/{id} et url_base/unite/{id}/enfant vers une unique classe ? Faut-il renvoyer chaque chemin vers un objet différent en utilisant URI_MAPPINGS?
Peut-on récupérer l’id facilement? (autrement qu’utiliser split sur l’url).
Est il possible d’utiliser l’orm afin d’effectuer des recherches directement ?
List<String> parts = params.getURIParts(getName());
Renvoie la liste des parties d’URI au delà du nom de l’objet Ex: si l’URI d’appel de l’objet externe est /api/ext/MonObjet/a/b/c la liste renvoyée sera a, b, c
Pour ce qui est de l’ “ORM”, il est bien entendu possible d’utiliser les APIs Java des objet métier comme n’importe où dans Simplicite.
Implémenter une API REST de base est à réserver à des cas plus spécifiques (i.e. pas juste de l’exposition d’objets métiers)
PS: pour rappel il est possible de mapper les URIs standards sur des URIs alternatives des objets externes grâce au paramètre URI_MAPPING, ex: dans le cas des 2 APIs custom de la démo :
La notion d’ objet métier est la notion la plus fondamentale du méta modèle Simplicité.
Il est donc essentiel de parfaitement la maitriser à la fois en termes de paramétrage et en termes d’APIs Java (NB: il y en a plusieurs “couches” avec des syntaxes plus ou moins modernes, Simplicité ayant 20 ans d’historique).
Ce forum de support ne peut pas se substituer à une formation formelle aux fondamentaux de la plateforme (vous pouvez faire cette auto formation ici)
La classe Java de base dont héritent les objets métier est ObjectDB celle-ci permet d’implémenter les hooks mais aussi de manipuler les objets métier.
Une classe de plus haut niveau et plus simple à utiliser est BusinessObjectTool (qu’on obtient sur une instance d’objet via la méthode ObjectDB.getTool().
NB: Dans le cadre de la prochaine version mineure il y aura un wrapper encore plus moderne en mode “builder”.
Mais à nouveau implémenter spécifiquement un simple parcours d’objets métier dans le cadre d’une API custom est à priori inutile car il existe des APIs standards (et/ou des mécanismes standards de mapping en cas de besoins de structures/nommages plus particuliers), cf. les exemples de ma 1ère réponse.