Accueil Blog (en) Comment utiliser l’API Web ASP.NET et MVC avec Acumatica

Comment utiliser l’API Web ASP.NET et MVC avec Acumatica

Samvel Petrosov | 18 janvier 2021

Comment utiliser l’API Web ASP.NET et MVC avec Acumatica

Récemment, j’ai souvent entendu d’autres développeurs dire qu’il est très difficile ou même impossible d’utiliser ASP.NET API Web et MVC directement avec Acumatica.  Cependant, ce n’est pas aussi difficile que nous sommes amenés à le croire.  En fait, je vais partager avec vous dans mon post comment vous pouvez utiliser ces technologies et les intégrer dans votre code avec la plate-forme de développement Acumatica.

ASP.NET Web API

Acumatica utilise Autofac pour l’injection de dépendance qui permet d’enregistrer les contrôleurs de diverses bibliothèques. Cela peut être accompli relativement simplement de la manière suivante:

GIST: https://gist.github.com/sampetrosov/566e676cafc9eaa3a05f050b137bc8b6

'config. MapHttpAttributeRoutes();' permet d’utiliser 'RouteAttributes' sur notre contrôleur et ' constructeur. RegisterApiControllers(Assembly.GetExecutingAssembly());' enregistre toutes les classes héritées d’ApiController.

Tout d’abord, passons en revue comment nous pouvons définir un simple point de terminaison REST d’API Web qui acceptera certaines données et créera des enregistrements correspondants dans Acumatica ERP. Nous avons besoin d’un mécanisme d’autorisation pour obtenir le nom d’utilisateur et le mot de passe afin de se connecter à Acumatica. J’utiliserai une méthode d’autorisation simple telle qu’illustrée dans le code ci-dessous:

GIST : https://gist.github.com/sampetrosov/0384f2a9500e1f59c5c6cd5fd1b115ec

Il suppose que la société, le nom d’utilisateur et le mot de passe seront passés sous la forme d’une chaîne « company:username:password » codée avec base64. Et comme vous pouvez le voir sur le code, cette société est facultative et requise uniquement si vous avez plusieurs locataires dans Acumatica. J’utiliserai un modèle simple pour accéder aux comptes d’entreprise dans Acumatica et y ajouter des enregistrements comme suit:

GIST : https://gist.github.com/sampetrosov/f7df2fe0e8cc9923a96713a1f0ef53dd

Comme vous pouvez le voir, certaines parties du programme sont simplifiées ou ignorées. Par exemple, la validation des données entrantes pour le compte d’entreprise. Maintenant que nous avons un modèle, nous pouvons définir l’ApiController, ce qui peut être fait de manière très simple de la manière suivante:

GIST: https://gist.github.com/sampetrosov/d29fd9c18078db3ffedcf944bb07b636

Comme vous l’avez peut-être déjà remarqué, ce n’est qu’un contrôleur d’API Web régulier et c’est essentiellement tout ce dont nous avons besoin pour accepter les demandes.

Contrôleurs MVC et vues Razer

Voyons maintenant comment nous pouvons réaliser quelque chose comme les contrôleurs MVC et les vues de rasoir. En termes simples, la différence fondamentale entre un contrôleur API et un contrôleur MVC est qu’un contrôleur API exige que tous les résultats qui sont renvoyés en tant que réponse doivent être sérialisés.

Donc, dans ce cas, nous pouvons utiliser un contrôleur API et simplement faire la compilation appropriée et la sérialisation du html / cshtml avant de le renvoyer. J’utiliserai la bibliothèque RazorEngine (Antaris/RazorEngine: Moteur de modélisation Open source basé sur le moteur d’analyse Razor (github.com) de Microsoft ) pour compiler les fichiers .cshtml et utiliser la syntaxe du rasoir.

Je vais ajouter mes vues sous le dossier « Frames / IIG / " et les charger à partir du code sous forme de texte. Dans le cas d’un point de terminaison MVC, nous supposons que l’utilisateur doit ouvrir la page dans le navigateur et fournir un jeton qui peut être généré par une entrée dans Acumatica et envoyé par e-mail.

Nous afficherons les données correspondantes après avoir transmis les informations d’autorisation. Ci-dessous, vous pouvez voir que nous avons ajouté quelques actions à notre contrôleur API pour faire notre autorisation dans notre code:

GIST : https://gist.github.com/sampetrosov/ea3739474ee44477f489fbcb29a80547

Le résultat est que l’action d’obtenir affichera la page avec le formulaire d’autorisation comme indiqué dans la capture d’écran ci-dessous :

Comment utiliser l’API Web ASP.NET et MVC avec Acumatica

Et l’action POST va essayer de faire l’autorisation et rendre le résultat quelque chose comme ceci:

Comment utiliser l’API Web ASP.NET et MVC avec Acumatica

Dans mon cas particulier, j’utilise simplement « company:username:password » codé en base64 comme jeton.  Toutefois, pour les scénarios réels, vous devez probablement également ajouter des branches, des horodatages et d’autres identificateurs d’enregistrement pour filtrer et afficher uniquement les enregistrements auxquels ce jeton est affecté.

Donc, vous voyez, il n’est vraiment pas difficile du tout d’utiliser ASP.NET’API Web et MVC directement avec Acumatica après tout.

Sur GitHub, j’ai fourni le code source complet et le lien du package d’installation que vous pouvez utiliser dans votre propre code:

https://github.com/sampetrosov/Acumatica-CustomController.git

J’espère que vous avez trouvé ces informations utiles dans votre propre travail de développement et qu’elles vous aident à rendre vos efforts un peu plus faciles en ce qui concerne l’utilisation de ASP.NET’API Web et de MVC.

Bon codage!

Auteur du blog

Samvel est architecte logiciel chez Information Integration Group Inc. (IIG). Sa carrière a commencé en tant que développeur C # et a rapidement fusionné dans un rôle de développement d’analyste pour résoudre les limitations ERP standard. Il a plus de 5 ans d’expérience dans le développement de logiciels dans l’espace ERP et a géré tous les aspects du cycle de développement. Dans ses temps libres, il aime jouer aux échecs et lire des livres.

Recevez des mises à jour de blog dans votre boîte de réception.