DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Open Source Zone»Le conteneur crée une API de base de données instantanée
    Open Source Zone

    Le conteneur crée une API de base de données instantanée

    octobre 27, 2021
    Le conteneur crée une API de base de données instantanée
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Dans ce didacticiel, nous montrerons comment utiliser ApiLogicServer pour créer, personnaliser et exécuter une API basée sur une base de données. API Logic Server est un conteneur Docker open source. Avec les commandes ci-dessous, vous obtenez :

    • Logiciel de travail, Maintenant:
      • UNE serveur d’API de base de données, pour débloquer le développement de l’interface utilisateur.
      • UNE application web multi-pages, pour engager les utilisateurs professionnels – dès le début du projet.
      • Logique déclarative utilisant règles uniques de type feuille de calcul — 40 fois plus concis que le code, extensible avec Python — pour une agilité commerciale remarquable.
    • Personnalisable projets, en utilisant un langage et des outils standard. Opérez dans un environnement conteneurisé proprement isolé qui correspond à votre architecture de déploiement.

    TL;DR – Créer une API de base de données et une application Web de base

    Créez l’exemple de projet dans un minute ou deux, comme suit. Avec Docker démarré, entrez ces commandes Terminal (Windows, utilisez Powershell) :

    cd ~/Desktop                       # directory of API Logic Server projects on local host
    docker network create dev-network  # only required once (ignore errors if network already exists)
    
    # [Install and] Start the API Logic Server docker container
    docker run -it --name api_logic_server --rm --net dev-network -p 5000:5000 -p 8080:8080 -v ${PWD}:/localhost apilogicserver/api_logic_server
    
    # (Now inside the container)
    ApiLogicServer create   # Return for default project-name and pre-installed demo db
    ApiLogicServer run      # Return for default project-name; swagger at: localhost:5000

    Voici une démo de 5 minutes montrant l’installation, la création, l’exécution et la personnalisation.

    Si vous avez installé Docker, vous pouvez facilement exécuter ce didacticiel pendant que vous lisez (pas besoin d’installer Python, et l’exécution de cette démo n’affectera pas les projets Python existants). Ce n’est pas obligatoire – de nombreuses captures d’écran sont fournies pour illustrer le processus et le code réel.

    Logiciel de travail, Maintenant

    Les commandes ci-dessus ont créé un projet. Nous verrons comment le personnaliser et le déboguer ci-dessous. Mais voyons d’abord ce qui fonctionne maintenant.

    JSON : API avec Swagger

    Votre API est instantanément prête à prendre en charge le développement de l’interface utilisateur et de l’intégration, disponible en swagger, comme indiqué ci-dessous. JSON : les API sont intéressantes car elles sont configurables par le client pour réduire le trafic réseau et minimiser les dépendances organisationnelles. Explorez l’API avec Swagger sur localhost:5000 :

    API Logic Server sur Swagger

    Logique : règles de type tableur, étendues avec Python

    La logique métier transactionnelle (dérivations et contraintes multi-tables) est une partie importante des systèmes de base de données, souvent près de la moitié. Le codage procédural prend du temps à développer et à maintenir, ce qui réduit l’agilité de l’entreprise.

    ApiLogicServer fournit des règles uniques de type tableur qui réduisent la logique de transaction de 40 fois. Logic est déclaré en Python (exemple ci-dessous), et est :

    • Réutilisé automatiquement : les règles sont automatiquement réutilisées pour toutes les mises à jour, éliminant ainsi les bogues courants dans lesquels la logique était codée, mais pas appelée.
    • Extensible: La logique se compose de règles (voir ci-dessous) et de code Python standard.
    • Multi-tables : des règles comme sum automatiser les transactions multi-tables.
    • Évolutif : les règles sont élaguées et optimisées ; par exemple, les sommes sont traitées comme des mises à jour d’ajustement sur une ligne, plutôt que comme des requêtes d’agrégation SQL coûteuses.
    • Maniable: développez et déboguez vos règles dans les IDE, gérez-les dans les systèmes SCS (tels que git) en utilisant les procédures existantes.

    Les 5 règles suivantes (lignes 50-68) représentent la même logique que 200 lignes de Python et correspondent directement à la « spécification de serviette de cocktail » (en bas), afin que les utilisateurs professionnels puissent les lire et les comprendre :

    Exemple de règles de type tableur

    Qu’est-ce qui est pré-construit ?

    L’API et l’application Web (ci-dessous) ont été automatiquement créé à partir de la base de données. Ainsi, vous les verriez fonctionner avec vos propres bases de données.

    Pour vous permettre d’explorer la personnalisation, les règles ci-dessus ont été Pre installé pour le projet de démonstration – vous les entrez normalement en Python, en utilisant la complétion de code.

    Application Web de base : multi-pages, multi-tables

    Le développement de l’interface utilisateur prend du temps. C’est un problème puisque

    • Un tel effort peut ne pas être justifié pour les écrans d’administration « back office », et
    • Les approches agiles dépendent de la mise en place rapide de logiciels fonctionnels, pour favoriser la collaboration et l’itération.

    ApiLogicServer CLI crée donc un logiciel fonctionnel maintenant: applications multi-pages et multi-tables comme indiqué ci-dessous :

    1. Plusieurs pages: les applications incluent 1 page par table.
    2. Multi-tables : les pages incluent related_views pour chaque table enfant associée et se joignent aux données parent.
    3. Champs favoris en premier : le premier champ affiché est « nom » ou contient « nom » (configurable).
    4. Jointures prédictives : le champ favori de chaque parent est affiché (nom du produit – pas l’identifiant du produit).
    5. Les identifiants durent : ces champs ennuyeux ne sont pas affichés sur les listes, et à la fin sur d’autres pages.
    6. Application de la logique : la logique est appliquée à toutes les mises à jour. Par exemple, essayez de modifier la limite de crédit du premier client à 20 et observez l’erreur.
      • Cela est dû à la règle de contrainte dans logic/declare_logic.py sur Customer, contenant : row.Balance <= row.CreditLimit

    Vous pouvez l’exécuter comme ceci :

    ApiLogicServer run-ui      # Return for default project-name; web app at: localhost:8080

    Exemple d'application Web multipage de base

    Personnalisable : créer, exécuter, personnaliser

    Une API et une application Web sont un bon début, mais nous savons tous qu’une automatisation à 100 % n’est pas possible. Il doit y avoir des dispositions pour la personnalisation, en utilisant des langages, des outils et des approches standard.

    Voyons maintenant la personnalisation. Mais d’abord, nous allons présenter l’architecture de base.

    Architecture de conteneur

    Comme indiqué ci-dessous, il y a généralement 2 à 3 « machines » en fonctionnement :

    • Ton hôte local (en gris), où sont stockés les fichiers du projet personnalisable (le répertoire api_logic_server) et où fonctionnent vos outils de développement (IDE, etc.)
    • Le Docker ApiLogicServer récipient(bleu), qui contient :
      • L’ApiLogicServer, avec CLI (Command Language Interface), commandes que nous avons utilisées ci-dessus :
        • create — créez des projets sur votre hôte local.
        • run — exécuter des projets en utilisant les différents Runtimes (Flask, API SAFRS, SQLAlchemy, Logic, Flask App Builder, etc.).
    • Un environnement Python pour prendre en charge l’exécution et le développement à l’aide de votre IDE.
    • Les base de données (violet) peut s’exécuter en tant que conteneur Docker séparé, dans votre hôte local ou (pour ce didacticiel) dans le conteneur docker ApiLogicServer

    Diagramme d'architecture de conteneur

    Rappelez le processus d’installation et de démarrage d’ApiLogicServer : avec Docker en cours d’exécution, utilisez une fenêtre de terminal (Windows : utilisez PowerShell) :

    cd ~/Desktop                       # directory of API Logic Server projects on local host
    docker network create dev-network  # only required once (ignore errors if network already exists)
    
    # [Install and] Start the API Logic Server docker container
    docker run -it --name api_logic_server --rm --net dev-network -p 5000:5000 -p 8080:8080 -v ${PWD}:/localhost apilogicserver/api_logic_server
    

    La dernière commande télécharge et exécute votre ApiLogicServer avec… une fenêtre Terminal (-it), un réseau local (--net dev-network), accès à un répertoire local où sont créés les projets (-v ${PWD}:/localhost), et certains ports (-p 5000:5000 -p 8080:8080).

    Remarque : Docker est l’installation la plus simple, mais vous pouvez également utiliser une version locale de Python et pip install

    Personnaliser, étendre et déboguer — Langage standard, IDE

    Le projet créé est un projet Python standard, entièrement personnalisable à l’aide de votre IDE existant et d’autres outils de développement (par exemple, git). Par exemple, vous pouvez charger le projet dans Visual Studio Code comme suit :

    1. Installez VS Code 1.61 et (si nécessaire) le shell extension
      1. Tu fais ne pas besoin d’installer Python ; il fonctionne à partir du conteneur
    2. Ouvrez le projet comme celui-ci à partir d’un terminal sur votre hôte local (pas de conteneur Docker) :
    exit  exit the ApiLogicServer Docker container, if running
    code ~/Desktop/api_logic_server  # open project in VS Code

    3. Vous serez invité à installer le remote-container prolongement, et reload le projet dans le conteneur ; le faire

    Voici le projet créé, ouvert dans VS Code :

    Projet créé ouvert dans VSCode

    Personnaliser le code du modèle

    Le projet créé est extrêmement petit puisque le code créé définit modèles déclaratifs, plutôt que de bas niveau de procédure code. Non seulement cela le rend petit, mais cela permet également de personnaliser très facilement le comportement.

    Par exemple, l’API est définie (api/expose_api_models.py — volet de code supérieur gauche) avec des instructions comme indiqué ci-dessous. Il est immédiatement évident de savoir comment modifier ce code, par exemple, pour ne pas exposer une table donnée en tant que point de terminaison.

    api.expose_object(models.Category)
    api.expose_object(models.Customer)
    api.expose_object(models.CustomerDemographic)
    

    de même pour ui/basic_web_app/app/view.py — il est clair comment contrôler quels champs sont affichés (y compris les jointures) et dans quel ordre :

    class OrderDetailModelView(ModelView):
    datamodel = SQLAInterface(OrderDetail)
    list_columns = [
    "Id", "Order.ShipName", "Product.ProductName", "UnitPrice", "Quantity"]
    show_columns = [
    "Id", "Order.ShipName", "Product.ProductName", "UnitPrice", "Quantity", "Discount", "Amount", "ShippedDate", "ProductId", "OrderId"]
    edit_columns = [
    "Id", "UnitPrice", "Quantity", "Discount", "Amount", "ShippedDate", "ProductId", "OrderId"]
    add_columns = [
    "Id", "UnitPrice", "Quantity", "Discount", "Amount", "ShippedDate", "ProductId", "OrderId"]
    related_views = []

    Étendre avec Python

    Les extensions typiques incluent (explorez l’exemple de base de données par défaut pour voir des exemples) :

    • Personnaliser l’API : modifier api/customize_api.py pour définir vos propres endpoints, en complément de ceux créés à partir du modèle
    • Personnaliser le modèle : modifier customize_models.py, par exemple
    • Personnaliser la logique : modifier models/declare_logic.py(initialement vide) pour déclarer la logique
      • Comme indiqué ci-dessus, l’exemple de projet de base de données par défaut contient quelques règles simples que vous pouvez explorer ; en savoir plus sur les règles de la Logic Bank

    Déboguer à l’aide de votre IDE existant

    Étant donné que le projet est standard, vous pouvez utiliser vos services IDE existants tels que la complétion de code et le débogage.

    Pour VS Code, le projet créé comprend des pré-construits launch configurations pour ApiLogicServer et l’application Web de base. Vous pouvez définir des points d’arrêt, examiner des variables, parcourir le code, etc.

    Exemple de débogage dans VSCode

    Résumé : Logiciel de travail personnalisable, Maintenant

    Dans ce didacticiel, nous avons montré comment utiliser un API Logic Server pour créer, personnaliser et exécuter une API de base de données. Logiciel de travail Maintenant à partir d’une base de données : une API et une application Web, soutenues par une logique de type tableur. Le projet est personnalisable, utilisant un langage et des outils standard, opérant dans un environnement isolé environnement de développement conteneurisé.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.