hardcoding of the endpoints and __dir__ edition
Actuellement, on s'oblige à lister tous les endpoints qui peuvent exister dans extensions.urls, ce qui génère des jolies méthodes pour le Re2oAPIClient.
Du coup, on peut par exemple accéder à la méthode Re2oAPIClient.list_dns_zones(), et ça marche.
J'ai l'impression que tout ça est bien compliqué pour pas grand chose. De un, c'est compliqué et quand on voit un appel à une méthode qui n'est pas explicitement déclarée, on doit remonter la chaine pour comprendre ce qu'il se passe. De deux, on est obligé d'hardcoder les endpoints, du coup, dès qu'on veut rajouter un nouveau services clients, il faut modifier le dépôt principal, ce qui a l'air chiant.
Je pense que le code du client re2o devrait être le plus simple possible, donc sans utilisation du dir, et le plus générique possible, donc sans aucun harcodage lié à une appli spécifique.
Pourquoi ne pas juste avoir une méthode du genre Re2oAPIClient.get("services.regen"), ou Re2oAPIClient.get("services.regen",3), qui correspondrait à la query sur "/api/services/regen/" ou "/api/services/regen/3" ?
Si on veut absolument faire des raccourcis sur les endpoints, je serais plus pour qu'il soit harcodé dans chaque sous applis, et qu'on passe l'équivalent du urls en argument du init de Re2oClient par exemple.
On pourrait avoir dans une appli un truc du genre:
urls = { 'servicesregen-list': '/api/services/regen/', 'servicesregen-detail': '/api/services/regen/{pk}/', } api_client = Re2oAPIClient(api_hostname, api_username, api_password, urls) api_client.get("servicesregen-list")