Conception RESTful API professionnelle avec Python Flask | Jorge Escobar | Skillshare
Menu
Recherche

Vitesse de lecture


  • 0.5x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 2x

Conception RESTful API professionnelle avec Python Flask

teacher avatar Jorge Escobar, Technologist, entrepreneur and open source fanatic

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction 1.1

      1:07

    • 2.

      Introduction 1.2

      1:09

    • 3.

      Définitions API

      10:39

    • 4.

      Interface d'uniforme en détail

      13:21

    • 5.

      Configurer l'environnement central

      2:24

    • 6.

      Structure de base

      7:30

    • 7.

      Gérer les conteneurs

      4:50

    • 8.

      Vues à Pluggable

      12:22

    • 9.

      Installation et utilisation de Postman

      7:03

    • 10.

      Notre premier PUBLIe

      9:10

    • 11.

      Codes de statut HTTP

      8:53

    • 12.

      Un réel CRUD

      9:21

    • 13.

      PUISER et SUPposer

      12:03

    • 14.

      Authentications simples

      6:55

    • 15.

      Tester notre authentification simple

      7:16

    • 16.

      Modèle API et les points API d'API

      14:22

    • 17.

      Vues et décorateurs Token

      6:07

    • 18.

      Installez bcrypt et jetons de test

      14:00

    • 19.

      Créer les tests de l'application

      7:42

    • 20.

      Tests de jetons

      4:48

    • 21.

      Commencer le point de fin Store

      3:24

    • 22.

      La bibliothèque JSON Schema Schema

      8:42

    • 23.

      Le fichier API Store

      6:34

    • 24.

      Tester le point de fin du magasin

      8:17

    • 25.

      Mettre en œuvre PUT et SUPposer

      10:38

    • 26.

      Mettre en œuvre la pagination sur GET tous les magasins

      7:52

    • 27.

      Tests de stockage

      11:42

    • 28.

      CRD initial du PET Endpoint

      9:34

    • 29.

      Tests d'arrivée et Finishing

      10:15

    • 30.

      L'animal PUT et SUPPRIMER

      4:52

    • 31.

      Tests de compagnie

      7:45

    • 32.

      Tests de pagination de animal

      3:13

    • 33.

      Obtenez tous les animaux dans un point Get magasin

      8:52

    • 34.

      Testez l'espèce OBTENue tous les animaux dans un point Get Store

      5:27

    • 35.

      Recherchez des animaux avec filtres

      7:22

    • 36.

      Conclusion

      1:18

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

567

apprenants

1

projet

À propos de ce cours

Ce cours vous apprendra à créer une plateforme API professionnelle avec pur Flask, sans bibliothèques afin que les apprenants apprendront les bases de la conception API RESTful AP.

Dans le monde d'aujourd'hui, dominé par des interfaces utilisateur Java et des applications mobiles, la capacité à créer une API évolue et intelligente est essentielle pour compléter ces applications et s'assurer que clients et serveurs communiquent avec les interfaces correctes.

Le cours couvre les concepts de base du motif API RESTful puis vous explique détail et étape par construction d'une plateforme API qui couvre les six contraintes de l'architecture. Les apprenants apprendront la norme industrie et suivront les bonnes pratiques pour les architectes AP.

Si vous connaissez déjà les principes de base Flask et que vous souhaitez concevrez, construire et construire une plateforme AP, ce cours est fait pour vous.

Le cours est divisé en 2 sections :

  • Introduction qui couvre tous les concepts nécessaires pour comprendre ce qu'est une API RESTful et ses six contraintes

  • Une explication étape par étape en créant une API Pet Store qui comprendra un calque d'authentication, un point final Store et un point finissant Pet ainsi que les fonctionnalités de recherche

Le cours dispose de plus de 5 heures de tutoriels vidéo ainsi que le code source à la fin de chaque section, afin que vous puissiez suivre le processus de codage.

Le cours peut prendre entre 3 à 10 jours pour compléter en fonction du nombre can que l'élève suit chaque jour.

Nous mettons également à jour constamment ce cours, en ajoutant du contenu grâce aux commentaires de nos apprenants.

Suivez ce cours et continuez à devenir un développeur Web a professionnel !

Quelles sont les exigences ?

  • Un ordinateur avec l'accès à Internet et à l'accès administratif pour installer des paquets
  • Bonne compréhension de la façon d'utiliser l'interface de ligne de commande, les éditeurs Internet et code et les éditeurs
  • Bonne connaissance du cadre Web Flask

Que vais-je tirer de ce cours ?

  • Vous apprendrez les concepts fondamentaux de la conception des plateformes API RESTful
  • Vous présenterez les contraintes d'API RESTful
  • Vous apprendrez à configurer un calque API d'authentification
  • Vous apprendrez à créer efficacement des points de fini API à API

Quel est le public cible ?

  • Programmeurs et développeurs qui ont des connaissances de base Flask qui souhaitent apprendre à concevoir et à créer des plateformes API professionnelles
  • Les architectes d'application qui souhaitent mieux comprendre comment construire des applications API
  • CTO, start-up qui souhaitent comprendre les meilleures pratiques pour le design API
  • apprenants qui souhaitent get à leurs concepts de construction API à la vie réelle

Rencontrez votre enseignant·e

Teacher Profile Image

Jorge Escobar

Technologist, entrepreneur and open source fanatic

Enseignant·e

From Zero is an educational project created by Jorge Escobar, a technologist, entrepreneur and open source fanatic with more than 15 years of experience in the development of web applications in New York City.

Jorge has worked in well established companies like Yahoo!, Univision and MongoDB and has also been the technical founding member of various successful tech startups that have received multiple rounds of venture capital.

The biggest problem Jorge has experienced during his career is finding well rounded developers and he interviewed hundreds of them for positions in the teams he was leading. A constant pattern (no matter if candidates came from a good university or had a few years of experience) was the lack of practical, real world knowledge.

That's why Jorge... Voir le profil complet

Level: Intermediate

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction 1.1: Salut et bienvenue au repos professionnel. Est-ce que AP I concevoir en utilisant FIFA flats. Je ne voudrais pas que la glace AP soit la couche d'interaction entre votre base de données sur vos clients. Cependant, il n'est pas si simple de construire un bon FBI qui sont certains concepts fondamentaux que vous devez comprendre. C' est de ça que parle ce cours. Nous allons commencer par une théorie et le concept nécessaire pour vous de comprendre ce qu'est une bonne dame de recette. J' aurais dû passer en détail en couvrant la particule, puis nous passons au codage à partir de zéro et sans utiliser de repos pour la bibliothèque . Une plateforme AP I robuste qui exploite ces concepts fondamentaux et les met en pratique. AP I sorte de la connaissance la plus importante d'un développeur d'application de soutien moderne besoin d'avoir dans sa poche et ce cours là au cas où vous apprendrez la bonne façon réussir l'architecte de signe et de coder un sein conforme standard plaque. Ici. Rendez-vous à l'intérieur 2. Introduction 1.2: plus haut. Bienvenue au repos professionnel ap. Je conçois en utilisant une fiole de bison. Que voulons-nous accomplir dans ce cours ? Eh bien, nous voulons construire une application AP reposante à partir de zéro. Cela est conforme aux normes de l'industrie. Nous allons d'abord regarder la théorie derrière ce à quoi ressemble le FBI arrestable. Et puis nous allons coder lit par lit et un pas à pas, une application de flasque qui a toutes les normes de l'industrie sur un service de P. I l'un des prérequis que vous devez savoir. Les bases de Python sur. Tu devrais connaître la fiole. Introduction et avance. Comme vous le savez, j'ai deux bons cours. L' un pour l'introduction au flacon de l'autre, un cours d'application de flacon plus professionnel. De quoi avez-vous besoin pour terminer le cours ? Vous devez disposer d'un ordinateur sur lequel le dernier client docker est installé. Et nous allons installer ce docker service Mongo DB comme base de données et bien sûr, flask. Alors commençons le voyage 3. Définitions API: Salut et bienvenue au repos professionnel AP I design en utilisant flasque. m'appelle Jorge Escobar et je serai votre instructeur dans ce nouveau cours passionnant où nous allons explorer comment construire efficacement des services A p I conçus par des professionnels pour tout ce dont vous avez besoin sur un P I 4 peut être pour alimenter une plate-forme que vous voulez que d'autres personnes soient, hum, un peu comme interagir avec. Ou vous voulez que les gens, ah, ah, consomment cela via une application mobile, ce qui est un cas d'utilisation très courant pour AP ICE aujourd'hui. Alors commençons. Qu' est-ce qu'un P ? Je veux dire donc AP I signifie interface de programmation d'application, et c'est un ensemble de routines, protocoles et d'outils pour construire des interactions entre les clients et les serveurs. Ce que cela signifie, c'est que vous créez une communication entre votre application, votre plateforme et quelque chose qui consomme les données et interagit avec elles. En fait, vous pouvez avoir un FBI qui n'est juste que là où vous donnez. C' est une information météo pour les gens qui veulent obtenir, ce soit pour leur emplacement spécifique, ou vous pouvez faire comme une lecture, Écrire un p I. Où vous avez un vous savez, application sociale où vous créez des utilisateurs et vous lisez et écrivez des messages et des choses comme ça. Donc, c'est toujours ce concept d'avoir à séparer des entités un client sur un serveur qui parlent à travers cette couche à travers cette spécification Ah, um ou moyen de communication spécifié qui s'appelle un P I. Donc, Qu' est-ce que le repos ? Le repos est synonyme de représentation. Transfert d'état représentationnel. J' ai besoin d'un style architectural hyper média en réseau. Typifié, au fait, ce qui signifie que disons que vous avez sur un P I, et peut-être que je peux avoir n'importe quelle forme. Mais quand vous dites arrêter le FBI complet, la connotation est que vous utilisez l'approche de style Web est de pouvoir servir ce contenu, d'être en mesure d'interagir avec ces clients, et nous allons voir un peu plus d'informations à ce sujet. Mais la chose clé ici est que vous pensez aux objets ou aux données. Il y avait votre retour comme s'ils étaient des pages Web avec des méta données pour, comme, suivant sur la page précédente et des choses comme ça, et aussi vous devez penser à la façon dont vous interagissez. Les pistes client avec votre plate-forme utilisent des verbes HDP. Alors obtenez post, que nous avons vu dans d'autres cours de grippe. Et puis nous avons d'autres comme Put et Elite, qui ne sont pas si communs à moins que vous commenciez à travailler sur un oeil A P. Jetons un coup d'oeil à ce que les six contraintes étrangères reste ful. Peut-être que j'ai l'air donc tu dois avoir une interface uniforme. Il doit être apatride. Il doit être à la mode. Il a orteil conforme à décliner le modèle de serveur. Il doit être un système en couches sur facultativement. Il donne un manteau sur l'homme. Donc on va voir chacun de ces détails. Le 1er 1 qui est unique interface étrangère. Je vais t'expliquer en A dans une deuxième leçon, parce que je pense que c'est un cœur de repos Will FBI. Donc je veux, genre, genre, entrer dans les détails sur celui-là. On y va dans une seconde. Donc le suivant est ah, apatride. Alors que signifie l'apatride ? Cela signifie que le reste Ah ah ah, demande que vous donnez à votre plate-forme sont fondamentalement des instances isolées qu'ils n'ont pas un orteil de session aller avec ou ils ne savent pas ce qui s'est passé avant ou ce qui va se passer, Vous savez, après, et cela n'aime pas, vous ne pouvez pas identifier que ces requêtes en disant, Oh, c' est l'utilisateur X Y C Stateless signifie que chaque fois que vous faites une requête, tout ce dont vous avez besoin servir ou pour répondre essentiellement à cette demande doit être intégré dans ce que vous connaissez, les demandes sortantes ou entrantes. Et puis vous allez fournir en fonction de ces paramètres les données dont cette demande besoin là où nous avons besoin, sorte que cela signifie que chaque requête est une nouvelle entité à part entière. Et il ne sait rien sur, vous savez, fonctionnalité passé ou ce qui s'est passé jusqu'à présent en termes de, um de l'du workflow eso que catchable apatride. C' est un peu comme si vous pouvez plus ou moins penser à l'encaissement, ce qui est, vous savez, peu comme stocker des copies statiques hors demande. Ceci est lié à cela et et ce que le repos AP ICE doit confirmer est que vous devez dire refusé. C' est demander votre contenu. S' ils peuvent encaisser ou pas de cash le responsive, leur donnant de sorte que, um vous pouvez avoir une plate-forme plus évolutive. Et c'est un peu lié à disons, si vous avez des milliers de demandes, vous savez, par seconde, mais vous pourriez dire à décliner, exemple, que Sam demande à John ces, Vous savez, profil. Ce profil ne change pas tout le temps. Ainsi, vous pouvez dire au client quand vous retournez les informations de profil. Hey, vous savez, vous pouvez encaisser cette demande ou stocker cette demande de rictus localement pour, disons, un jour afin que cela réduise le nombre de demandes de réduction que vous obtenez de cette montée parce que peut-être un autre utilisateur demande la même chose. Vous savez, John, ce profil et vous n'avez pas besoin de régénérer et de réchauffer la base de données et tout ça. Vous pouvez laisser le client décider qu'il le peut. Ils peuvent encaisser ces informations et la façon dont vous les donnez au client est essentiellement par le contrôle de la trésorerie. HDB a créé un en-tête de données. Et comme vous pouvez le voir dans cet exemple, vous dites que max H est égal à 1 20 ce qui est comme seconde. Donc, cela signifie que la demande que je vous donne ou la réponse. Je vous rends que vous pouvez stocker en toute sécurité pendant deux minutes. Et il n'y aura pas de changements en attendant. Donc, vous savez, soyez confiant que vous pouvez, vous savez, vous n'avez pas besoin, genre, demander cette information dans les 120 secondes. Hum, donc il y a ensuite, hum, allez le serveur client inconnu. Donc, les clients signifient que, hum, il y a une séparation entre la suppression des préoccupations entre le client et le serveur, qui signifie que le client ne sait pas ce que le, euh, euh, serveurs comme paramétrés. C' est comme, quelle base de données sont l'utilisation ou quoi ? Euh, qu'est-ce que c'est ? La structure des données qui ne peut pas penser que c'est un peu comme complètement séparé de la même façon que le serveur n'est pas intéressé ou n'a pas à savoir que le client est un iPhone six s ou un téléphone Android ou un système automatisé qui obtient informations. peu comme un truc sur Twitter. Le serveur est est ne sait rien sur le client. Et chaque fois que je demande arrive, tu vas juste aimer le pourcentage d'informations basées sur la demande au client. Donc, vous savez que vous n'êtes pas inquiet de ce à quoi ressemble le client. La contrainte suivante est le système de couches. Et cela parle, vous savez, vous savez, un client ne peut pas dire quelles sont les couches ou quel est l'ensemble de derrière la requête que vous leur donnez. Et cela peut un peu comme vous permettre de faire, comme, comme, équilibrage de charge et d'avoir plusieurs serveurs d'applications, ou même avoir préparé des serveurs de trésorerie qui servent des versions mises en cache à partir des informations ? Le client ne le sait pas. Donc, par exemple, dans ce graphique, vous pouvez voir qu'il y a comme, vous savez, le nuage est Internet, et puis la boîte noire sur le côté gauche est un client, et, vous savez, il est un peu comme faire une ancienne requête au serveur. Le serveur est les livres noirs sur la droite, puis le serveur a une base de données qui peut être comme servir ces demandes ou peut servir ces demandes à travers comme je l'ai déjà dit couche Scotch. Donc, peu importe la façon dont vous représentez cette information, et cela vous donne la possibilité de mettre à l'échelle votre plate-forme A P I sans casser, vous savez, peu comme les gracieuses contraintes AP I. Donc, euh, le dernier et celui-ci est facultatif. Et pour être honnête, il n'est pas utilisé. Ah, beaucoup. Il est appelé sur l'homme et appelé sur l'homme est fondamentalement vous savez comment comme avant, vous savez, le Web, comme peut-être il y a quelques années il y avait comme des applets Java et les animaux de compagnie Java étaient comme des petits qui exécutaient votre dans votre navigateur. Et il était comme un peu peut-être une petite montre ou une horloge, vous savez, ou un petit jeu ou signifiant l'âme du jeu, le A P je vais lutter un B I, um um spec dit aux gens qu'ils peuvent, vous savez, fournir non seulement des objets de données, mais ils peuvent également fournir des extraits de code. Et je pouvais voir ça, comme être, nos jours, peut-être un flash, une application mini flash ou quelque chose comme ça. Mais ce n'est pas très utilisé. Et cette contrainte de pays, ce n'est pas vraiment un peu comme quelque chose que vous allez utiliser souvent. Hum, donc c'est ça pour les donc c'est ça pour les cinq contraintes du bas. Donc, je vais vous parler de l'interface des uniformes dans ce qui suit moins et donc rester autour 4. Interface d'uniforme en détail: bienvenue. Donc nous allons continuer à regarder les , contraintes, et nous allons regarder la contrainte d'interface uniforme, ce qui me semble la plus importante. Alors voyons à quoi ça ressemble. Ainsi, l'interface en uniforme est divisée en quatre parties. L' une est basée sur les ressources. Le second est la manipulation de la ressource est à travers des représentations. La troisième année messages auto-descriptifs et la quatrième est hyper média comme le moteur hors application, l'état ou la haine doit. Alors passons en revue chacun d'entre eux. Donc, pour la ressource basée, c'est fondamentalement chaque ressource est identifiée. Utilisation de vous sont augmenter comme la ressource identifie. Donc, ce genre de traduction est que les actions que vous allez prendre ou vous allez faire sont ordonnées ou sont Have a Cherokee et structure à travers votre oeil. Et vos yeux, vous vous souvenez peut-être, sont la partie de l'euro de l'euro qui n'a pas le H deux b quoi que ce soit. Quel que soit le serveur point com partie. Donc tu enlèves ça la première barre oblique et c'est que toi ou moi, euh , et c'est que toi ou moi, euh, etc'est que ça va dire quel type de demandes ou ce que tu demandes ? Et vous allez concevoir votre A P I en utilisant ceux de votre I ou de vos yeux comme structure . Voyons donc un exemple. Par exemple, si je frappe une barre oblique p i b une bordure barre oblique Donc c'est un nouveau votre I. Mais ce que vous regardez ici, c'est que vous détestez la section A P I du site Web. Tu détestes la version 1 du A P, et tu l'as peut-être fait. Tu sais, mec, c'est plusieurs versions. Et maintenant, vous vendez dire à l'AP que vous voulez obtenir une liste sur les commandes. Donc, comme vous pouvez le voir ici, il y a certains que vous savez, c'est un peu comme une clé ici, et il y a une structuration de leur que le a p je définit à travers une bonne, euh, structurant hors de votre oeil que vous allez utiliser pour demander des informations. Mais voyons un autre exemple. Donc celui-ci est maintenant que je regarde un P I. V commande 15 44. Donc, comme vous pouvez l'imaginer, 15 44 est un ordre i d. Donc ce que vous dites ici, c'est que me donner le détail de ce désordre seul. C' est plus de 15 44. Et comme vous pouvez commencer à le voir, il y a une structure là-bas. Si tu reçois des ordres, tu auras probablement une liste de tous les ordres qu'ils ont même atteint. 50 44. Vous allez obtenir seulement les détails de celui de cet ordre si élégant et professionnellement être les yeux sont mis en place de cette façon. Tu es et la façon dont j'aime y penser. C' est des ordres ? La fiole est en place ? Alors que nous avons, vous savez, les ordres de dossier et puis à l'intérieur vous avez des modèles d'utilisation , des tests, etc. qui devraient plus ou moins correspondre à la première partie de cela, vous ou moi, et puis le 2ème 1 est plus comme un comme un J'aime, tu sais, c'est un peu comme une vue. Oh, notre contrôleur a un genre de situation où vous êtes ou si vous passez que je suis retourné que je suis donc nous allons voir ces choses en pratique quand nous commencerons à travailler sur notre FBI. Donc, euh, la seule chose que vous avez besoin d'orteil pense aussi dans ce flux de Golfe de la contrainte de ressources est qu'ils sont des ressources, c'est que votre , hum, que vous envoyez au client sont séparé de la des représentations ou ou de la structure que la ressource a à l'intérieur de votre A P I. Donc, par exemple, lorsque vous demandez des ordres et, vous savez sans le I d, vous êtes ne va pas obtenir comme une requête vont obtenir, comme tout cela, les champs qui sont sur la base de données, vous allez obtenir des informations de structure et qui a généralement une, um, um, une structure qui est définie en fonction de à quoi ressemble le client. Si c'est, ah, c'est un ordinateur si c'est une application mobile ou ce dont ils avaient besoin spécifiquement. Ainsi, par exemple, vous pouvez renvoyer HTML XML ou Jason. Donc, mais le truc à penser ici, c'est que tu ne vas pas, comme vider, tu sais, toute la requête quand tu as reçu les ordres ou sont tous ces champs plus anciens. Mais vous allez aimer, vous savez, retourner quelque chose de cette structure et que vous allez définir dans votre définition a p I . Donc, le 2ème 1 est la manipulation des ressources par la représentation, et ils disent que ce genre de comme il est lié à la façon dont les clients vont demander quel type de représentations, Um vont être jetés sur eux ou retournés en fonction sur l'en-tête http sauf qu'ils envoient. Donc, par exemple, un client qui est une application mobile pourrait dire, Hey, j'ai besoin des ordres 15. 44 Mais je le veux au format Jason votre A P. Je devrais être assez intelligent pour lire cela sauf en-tête http qu'ils vous envoient et retourné l'information dans le format qu'ils demandent où nous aimerions peut-être ah, Web ou une application ou un client basé sur un navigateur peut demander html. Et vous allez savoir rétrospective au lieu des ordres dans un Jason Foreman, peut-être , ah, extrait de html avec les différents champs de cet ordre au format HTML. Donc, vous êtes un P. J'ai besoin d'être assez flexible pour accueillir et et jeter ou retourner des informations ou des données en utilisant le thea les données que le client demande. Hum donc le 3ème 1 est des messages auto-descriptifs, et ce que cela implique, c'est que la, um, la requête elle-même est représentée via le verbe HDP qui a refusé demande. Et nous avons passé un peu de ces cours de flasque propriétaires, qui est, vous savez, les demandes de get. Rappelez-vous que lorsque vous faites une demande get, vous envoyez tous les champs dans le réel Vous êtes aussi vous avez, comme, comme, un point d'interrogation. Vous savez, euh, le nom du champ est égal à sentir des données. Je suis pour cent. Cela dit Très bien, c'est encore une demande. Alors qu'un post était plus comme dans le corps hors de la requête http que vous envoyez , vous savez que les champs réels que vous étiez, euh, euh, vous avez posté orteil, orteil le serveur, droit ? Eh bien, dans un monde p I obtenir post put et élite sont en fait, ils sont ce que nous appelons la foule qui crée la lecture, mise à jour et l'opération principale. Donc Gadd veut dire que je vais envoyer une demande pour obtenir quelque chose du FBI. Si j'envoie un message, cela signifie que je crée un tout nouveau record. Et j'envoie que les données pour cela, pour l'enregistrement dans le post, vous savez, charge utile des données du port de requête H deux B est un ah, que nous n'avons pas beaucoup utilisé et que vous n'utilisez pas normalement comme dans le Web , Mais il peut être, comme vous l'utilisez, qui est une autre mise à jour. Donc, vous ne créez pas un nouvel enregistrement. Mais vous dites essentiellement mettre à jour cet enregistrement ces commandes avec cette nouvelle information qui est un nouveau vous savez, total de la facture ou vous voulez modifier les articles dans cette commande. Donc, vous utilisez put pour faire ça. Cette mise à jour sur le plomb, qui est un vrai verbe http, est comme vous le savez, vous n'avez pas dit à Torrey qu'il fait référence. Vous voulez l'enregistrement du leader, et, bien sûr, vous devez avoir l'authentification appropriée, et vous devez avoir l'autorisation pour les enregistrements en direct. Mais si vous l'êtes, si vous implémentez cela et que vous avez l'authentification appropriée que vous êtes en mesure de supprimer des enregistrements. Donc, ce sont des messages auto-descriptifs. Et le dernier est hyper média comme le moteur hors application état ou haine ALS, ce qui est un genre bizarre de mot comme. Mais qu'est-ce que cela signifie ? Quand j'ai lu ceci, j'étais un peu confus et je ne pouvais pas comprendre de quoi ils parlaient. Mais c'est en un mot. Qu' est-ce que c' est, c'est que votre a p i. Si elle est arrestable un p I. Il doit agir comme une page Web dans le sens où vous pouvez envoyer non seulement lorsque vous obtenez les ordres que vous connaissez une demande. Vous ne vivez pas seulement les commandes au client, mais vous mettez également quelques liens importants qui disent qu'il y a un total de 1500 commandes. C' est la page numéro un. Et si vous voulez regarder la page suivante, c'est l'euro que vous devez frapper. Alors imaginez que lorsque vous lorsque vous frappez des commandes, même si nous retournons des informations de Jason, qui est ce que nous allons être utilisés en réutilisant la plupart du temps, pensez qu'il a non seulement des données, mais pensez à cela comme si c'était une application. C' est une page web. Et vous avez comme une table où vous voyez l'ordre comme vidage. Mais ce ne sont que les 10 premiers résultats, et ils ont, genre, un prochain précédent en bas. Et vous avez aussi, genre, une sorte de, peut-être parier la chapelure sur le dessus. Donc, c'est ce que hey fait signifie, c'est que tu es un B. Je devrais utiliser des hypermédias sur les liens principaux et des choses comme ça pour un peu comme , Dites au client A que je suis là, mais vous pouvez aussi faire ces choses. Ou si vous voulez mettre à jour le solde, vous pouvez faire cette opération, etcetera. Alors voyons. peu comme un exemple de ça. Hum, donc nous avons une demande pour obtenir le numéro de compte 12345 Donc la ligne supérieure est un peu comme ce que le client a envoyé au FBI et au HDP 11 200. Ok, c'est ce que le FBI revient. Et comme vous pouvez le voir, vous avez, comme, vous savez, le numéro de compte, vous avez la devise du solde, et vous pouvez vous arrêter là. Tu pourrais dire, OK, c'est tout. Mais puisque vous faites hey, fait votre aussi avoir ce lien Rehl, qui est un réel, comme HDP valide, vous savez, ou le balisage extrême el. Et vous dites que si vous voulez le passer, vous pouvez faire un comptage. 12345 couper le passer. Si tu veux te retirer, tu sais, et tu as l'idée. Vous êtes un peu comme aider le client à prendre des décisions, et cela inclut le transfert ou la fermeture du compte. Mais il y a une autre couche à ça. Donc, disons, par exemple, que maintenant le ah, ce un comtés est dépassé. Et comme vous pouvez le voir sur le solde sur la monnaie oh, sont sur le champ de solde, vous voyez cela ? C' est moins 25. Donc le P que j'entends devrait être assez intelligent pour dire, attendez une minute. Donc, la seule action que la personne peut faire ici est le dépôt comme un sens. Ramenez ce compte à, genre, positif, accord. Mais ils ne devraient pas pouvoir se retirer. Ils ne devraient pas être en mesure de transférer, ou ils ne devraient pas pouvoir fermer ce compte. Donc, vous savez, les grandes lignes sont ce qu'on va aimer faire disparaître. Et c'est ce que vous allez obtenir s'ils le solde du compte est négatif. Donc, c'est bon, il y a comme, Vous ne retournez pas seulement des données, vous êtes aussi comme réagir aux données que vous êtes un peu comme utiliser pour que votre, hum, votre client soit capable de faire le bonnes décisions, et vous êtes comme un peu comme un fil conducteur, les guidant à travers les canaux appropriés. Hum, donc c'est ça. C' est que tout ce que je sais, il y a beaucoup de peur ici, et malheureusement, je dois lutter avant. Est-ce que je donne aux étudiants un peu comme ces concepts au fur et à mesure que nous avançons ? Mais je pense que même si tu n'as pas tout compris, c' est bon. Vous pourrez le consulter plus tard lorsque vous aurez terminé le cours. Ou peut-être, tu sais, le revoir. Ah , plus tard. Mais cela vous donnera un peu comme un très bon. Euh, tu sais, t' en occupe. Quel professionnel. Eh bien, le reste du panneau ressemblera au FBI. Alors commençons à courtiser notre demande du FBI. 5. Configurer l'environnement central: Bienvenue de retour. Donc, dans cette leçon, nous allons commencer à mettre en place notre environnement de base. Et comme je l'ai dit, nous allons utiliser Docker, le client médecin pour Mac ou Windows. Et si vous avez une machine à linge, alors vous pouvez utiliser le système docker ou la bibliothèque pour les limites. Mais je suppose que la plupart d'entre nous vont travailler sur le client docker pour Windows ou Mac sur. Vous n'avez pas besoin de connaître le Dr en détail. Je vais y aller pas à pas. La seule chose que vous avez besoin d'orteil faire à l'avance toujours télécharger le médecin grimpé, um, pour votre pour votre machine. Et si vous voulez en savoir plus sur docker et en savoir plus comment orteil marre votre fichier docker et vous savez, Docker compose. J' ai un cours que vous pouvez vérifier. Mais en attendant, commençons à faire des choses qui par étape et suivons, et donc commençons. , commençons à faire des choses qui par étape et suivons, Ok, donc la première chose que vous voulez faire est que vous voulez aller à docker dot com et commencer avec Docker ici. Et après cela, vous allez obtenir un médecin de téléchargement pour Mac. Si vous êtes sur Mac,bien sûr et si vous faites défiler vers le bas, il y a aussi un médecin pour Windows. Si vous êtes sur Mac, bien sûr et si vous faites défiler vers le bas, Bien qu'ils devraient être positionnés dans le système d'exploitation que vous avez. Mais de toute façon, vous téléchargez cela. Et après ça, vous allez prendre le petit docker Aiken, , et suivre juste les, vous savez, vous savez, les installations configurées après avoir téléchargé le client Docker, euh, et vous nous l'exécutons. Tu devrais voir cette petite baleine là-bas. Et ça devrait dire que Dockery est en cours d'exécution maintenant. Une chose et ceci que j'ai mentionné sur mon cours, vous devriez avoir le volume de partage de fichiers que vous allez utiliser pour votre application ici. Dans mon cas, vous savez que j'aimerais travailler sur le dossier O. P. T. P. T. Ah. Donc, j'ai o p t. Et si vous ne voyez pas le vous connaissez le père là-bas, juste comme cliquez sur Plus et puis allez dans le dossier que vous voulez ajouter et ah, et puis, vous savez, appliquer et redémarrer va aimer, vous savez, Il suffit de fermer et de revenir. Assurez-vous donc que vous avez coché 6. Structure de base: dans cette leçon. On va mettre en place notre conteneur de base en utilisant le fichier docker. On va écrire un docker, composer un CMO, et on aura aussi l'usine d'application pour l'application de chair. Alors passons vite à travers cela. Nous avons vu cela dans d'autres cours, donc nous ne devrions pas voir quelque chose de nouveau. Allons-y et faisons-le, d' accord ? Nous sommes dans notre terminal, nous allons dans le dossier O. P. P. T, et maintenant, je n'ai rien là-dedans. Donc je vais créer mon dossier, et je vais appeler ça les animaux de compagnie Dash un p I. Donc maintenant, nous ferions mieux d'être moi là. On va s'en occuper et effacer cette super crème avec Come on, K et s. Donc, commençons dès le début, je suppose. Ah, les exigences. Txt. Donc pour que je le fasse, je vais démarrer mon rédacteur en chef Adam. Et je suis là, les animaux de compagnie. Ap I Donc, quand je fais n'importe quel fichier et que je l'appelle exigences txt et ah, Requirement 60 a toutes ces bibliothèques. Certains de ceux que vous avez vus, nous allons utiliser flasque votre script 11 plat trouver Mongo, flasque moteur Mongo, moteur Mongo et ensuite par B crypte et Jason Scheme est celui que nous n'avons pas vu auparavant. Mais c'est une bibliothèque de validation Jason très utile que nous allons utiliser. Maintenant, rappelez-vous, vous devez mettre tous ces chiffres exacts et bibliothèques dans cet ordre pour ah que vous puissiez suivre le cours. Sinon, vous verrez de petits problèmes ici et là et ah, sur et hors du cours. Si vous postez une question à propos de vous savez, une bibliothèque et que vous ne suivez pas cette exigence 60 je ne serai pas en mesure de vous aider . Voilà donc nos exigences. Txt. La prochaine chose qu'on va faire est une vitesse de réglage. Pourquoi ? Et on va avoir ah, clé secrète. Le débogage est égal à vrai. Et on va utiliser Munger pour être hôte et Mongo DB Devi. C' est ah pour Flashman. On doit utiliser Munger TB. Demandez à l'hôte. Alors c'est ça. Allons-y maintenant et créons un managé b y, que nous utilisons avec, euh, le script chair. Et encore une fois, rien de trop compliqué. Ici. Nous avons dit que le chemin où le fichier est, puis nous importons Monier et le serveur à partir de script plat créer une application. C' est comme la méthode d'usine ou le modèle d'usine. Et puis nous au serveur de drones de commande, qui va fonctionner sur 4 5000 et enfin, nous exécutons l'application. Si c'est si c'est si elle est exécutée depuis le terminal. Donc, euh, jusqu'à présent si bon. Maintenant, créons des frais de demande Y, et ça va ressembler à ce qui suit. On va importer des flasques et des moteurs Mongo, et on sait qu'on commence à être viables pour le moteur mongol. Instance, nous allons avoir une application de création, hum, hum,usine d'application, euh, mise en place avec les paramètres B y et permettant les écrasements du test commençant là d être . Et puis nous allons juste des plans importants de la vue de la maison. On va avoir une application pour la maison et ensuite enregistrer ce plan. Maintenant, remarquez quelque chose ici. Um, je pense que dans le dépôt, j'ai une version légèrement différente de ceci. Je crois que ça dit flasque. Moteur extérieur Dottie Mongo. Mais en commençant par flasque, je pense que Cyril 10 ou 11 qui a changé en, hum pour être utilisé comme cette fiole sur la partition. Moteur Mongo. Ça marchera dans l'autre sens, mais je pense que vous allez recevoir des avertissements de dépréciation. Maintenant, allons de l'avant et créons le dossier personnel et on va avoir AAA, non ? Dossier. Ils sont pour que ce soit, hum, considérez un paquet python. Donc, ce n'est pas pourquoi nous n'avons rien mis dans ce dossier. Et puis on aura une vue ici. Et nous allons avoir ce qui suit sur ce dossier. Quand notre plan d'importation, nous allons enregistrer ce plan. Et ils allaient dire que sur cette route, on allait imprimer Hello, monde. C' est le cas, vous savez, nous savons que le conteneur fonctionne correctement. Ok, on a presque fini. Créons le fichier docker et le fichier médecin. Donc je vais ressembler à ça. Donc on va avoir une image de base avec 3.4 mince. Nous allons exécuter et apt, obtenir la mise à jour et installer ces bibliothèques. Ensuite, nous faisons un répertoire local dans le conteneur et a dit que demandé le répertoire de travail, puis nous copions tout le code que nous avons ici. Exécutez peeping stall et commencez à écouter 5000 quand nous avons commencé le conteneur. Et enfin, nous avons émis l'ordre de 13 minutes. B y ro serveur, qui est Theo, le point de terminaison du script de flasque . Donc c'est presque ça. La dernière chose, c'est que le docteur a composé le piano. Donc nous avons besoin du harceleur composé le e m o. et c'est ce que nous avons mis là dedans. Version deux services Web avec ces volumes installés. Maintenant, rappelez-vous, ces volumes doivent être les mêmes que celui que vous avez dans votre ordinateur local. Et puis on va avoir une base de données, qui est tirée de l'image Mongol 302 et on va appeler ce conteneur. Betsy P I d. Soyez un et les animaux de conteneur Web ap I Web un. Hum, et ça doit être ceci, comme votre répertoire local. Donc, dans mon cas, c'est, um, ce dossier ici ups opter paris, un p I, et ça devrait correspondre à celui là. Et puis localement, on va avoir ça là-dedans. Alors c'est tout. C' est tout ce dont nous avons besoin pour mettre en place notre conteneur initial. Alors allons de l'avant et ah, et construisons ce conteneur 7. Gérer les conteneurs: bienvenue. Donc, dans la dernière leçon, nous avons mis en place notre conteneur docker de base qui aura à la fois un conteneur d'application et un conteneur de base de données. Et maintenant, nous allons tester la construction de ce conteneur et voir si tout fonctionne correctement. Alors commençons. Ok, donc la première chose qu'on va faire, c'est qu'on va se mettre dans l'O P T. . Ah, le dossier du FBI de pari ou tout autre dossier que vous avez décidé d'utiliser et assurez-vous que vous avez votre dossier docker dedans. également Assurez-vouségalementque DACA est en cours d'exécution. Je pense que je ne le fais pas ici, donc je vais juste commencer et je devrais prendre quelques secondes et une étude. Ensuite, on va utiliser ce qui suit. On va dire docker, composer, construire et quoi ? Ça va le faire. Ça va ah, regarde le docker composer. Hum oh, que nous avons ici et construisons ces images pour ou, vous savez, des images de conteneur qui alors nous pourrons fuir. Alors faisons ça. Donc maintenant, il obtient toutes les, um fondamentalement les bibliothèques qui sont décrites sur le fichier docker pour le dossier de l' application Web . Ok, maintenant il exécute les exigences. Txt parfait. Alors maintenant c'est Ah, il a construit les conteneurs. Et maintenant, nous allons, euh en gros copier la copie non. Mauvais le, euh, manganèse être serveur séparément de l'observateur. Et la raison en est que lorsque nous devons redémarrer le serveur d'applications parce que nous avons fait des erreurs ou besoin de, comme, comme, un rafraîchissement dur du code, nous n'avons pas orteil, vous savez, faire tomber tous les conteneurs docker sur, ramène-les cela. On va juste le faire avec le conteneur d'application. Donc nous allons apporter la base de données, , entre autres en faisant un médecin composé en Dutch Day, ce qui veut dire démon et ensuite DB. Et maintenant le conteneur docker pour la base de données mongo est en cours d'exécution. Et nous pouvons vérifier ça en faisant le Dr P. et vous pouvez voir là que nous avons euh, les ah parmi aller ici. J' ai un autre conteneur, je suppose que c'est de l'autre cours. Je vais arrêter ce conteneur pour qu'on ne soit pas confus. Désactivez Wi do Ducker ps. Tu vois ça ? Parmi le DVD est en cours d'exécution. Maintenant, on va exécuter le, euh, le serveur d'applications. Mais nous allons faire un truc ici que j'ai couvert sur le cours docker qui l'exécute avec l' option de ports de service, ce qui nous permet de faire PDB ladite trace sur le conteneur sur n'importe quel morceau du code. Et ça va s'arrêter et nous permettre d'enquêter ou ah, le bug, notre application. Alors allons-y et faisons-le. Parfait. Donc, il dit qu'il fonctionne maintenant sur HDB sérieusement. Ou 5000 qui est le répertoire local. Je veux dire, hôte local. Et si nous démarrons un autre navigateur ici et nous mettons hôte local, nous avons Hello monde. Donc c'est notre conteneur qui fonctionne. On peut vérifier ça. Il est dit dans le monde ici sur la maison V S B y. Si nous changeons cet orteil Bonjour, le monde exclamation point et sauver. Nous devrions voir que cela a été rechargé, qu'il a détecté un changement. Et si nous rechargeons la page, vous voyez le changement. Ils sont si parfaits. Nous avons un conteneur fonctionnel qui a Mongo DB et une application Web. Hum, et vous verrez qu'il énumère Ah, um toutes les opérations ici dans cette fenêtre. Vous pouvez exécuter ça comme un démon aussi si vous passez Dash D. Mais pour l'instant, nous allons juste ah, vous savez, être heureux et célébrer qui sont mis en place est prêt et fonctionne correctement. 8. Vues à Pluggable: dans la dernière leçon, nous avons créé avec succès notre conteneur d'appartements, et maintenant nous allons créer une première version initiale à partir du point a p I n. Eh bien, il ne va pas être complètement mis en place en tant que prophète Professionnel ou en tant que Prophète de Production . Mais je veux présenter les gars à flasquer les vues probables, puis mettre en place un point de terminaison très basique des animaux de compagnie afin que vous puissiez commencer à saisir les concepts autour des vues flasque puggle. Alors commençons à prendre ça. Ok, alors jetons un oeil aux vues plausibles, et c'est nouveau de la version ou 0.7. Um, et les vues probables sont inspirées par les vues générées à partir de dango, ce qui vous permet essentiellement de faire des vues basées sur des classes au lieu de les faire fonctionner. Et c'est un exemple de base. Vous avez généralement un show utilisateurs et, hum, et que les utilisateurs obtiendront ah, vous savez, abord obtenir tous les objets de la base de données, puis rendre le modèle passant les utilisateurs orteil ce plan modèle. Si vous le faites comme une fiche d'une vue, vous créez plutôt un affichage utilisateurs vues de classe. Êtes-vous le supprimer des vues flats et ils ont ce concept de distribution d'une requête, puis vous mettez des utilisateurs là, puis retournez le modèle de rendu. Et puis tu fais ça. Vous ajoutez la règle Ural, puis avez la fonction de vue v la méthode off qui montre les utilisateurs affichage . Et c'est un peu compliqué à saisir si vous n'avez pas utilisé, vous savez, vous savez, vues probables ou des vues basées sur des classes dans l'angle. Mais c'est essentiellement une tentative d'obtenir plus abstrait ou de déconnecter les modèles de la des méthodes réelles ou des choses que vous essayez de faire. Donc, par exemple, vous pouvez faire quelque chose qui ressemble à une vue de liste, et c'est une méthode ou une classe très générique . Et puis vous auriez quelque chose comme un examen d'utilisation, qui est une sous-classe de, au moins pour vous. Et puis tu as été passé comme ces deux choses, et tu es immédiatement capable et tu es immédiatement capablede montrer tout ce qui est une liste de choses sans avoir à répéter ça encore et encore . montrer tout ce qui est une liste de choses sans avoir à répéter ça encore et encore C' estquelque chose qui est plus facile à comprendre en pratiquant un peu, mais je ne vous demanderai pas de le faire parce que nous n'allons pas utiliser cette mise en œuvre spécifique duplan d'abus C' est quelque chose qui est plus facile à comprendre en pratiquant un peu, plus facile à comprendre en pratiquant un peu, mais je ne vous demanderai pas de le faire parce que nous n'allons pas utiliser cette mise en œuvre spécifique du mais plutôt nous allons utiliser quelque chose appelé la répartition basée sur la méthode, ce qui est parfait pour le repos Philadelphie AP yeux et l'ici. Ce qu'on va faire, c'est qu'on va avoir, hum, un cours pour chaque AP. Je méthode qui va avoir différentes méthodes, et vous pouvez juste les trouver par, obtenir post etcetera. Et puis vous pouvez ajouter une règle pour ce point de terminaison utilisateur pour renvoyer la, um, cette classe et Ah, et, vous savez, acheminer intelligemment si c'est encore, si c'est supposé etcetera. Hum, mais nous allons voir ces ânes nous suivons dans ce premier exemple de paris. Alors commençons à construire un, euh, ce pari de base, um, point de terminaison pour que nous puissions, comme commencer à retirer les concepts des vues probables et comment nous pouvons l'utiliser. Donc je vais fermer ce top ici, et je vais créer un nouveau, hum, un nouveau dossier appelé Ah uh pet. Et cet animal va être le point de terminaison de l' animal de compagnie. Et bien sûr, nous devons avoir un besoin de moi. Pourquoi là ? Et on va avoir une ah views fusible B Y, et on va avoir un P I p. et on va avoir un P I p. C' est celui où nous allons avoir la classe réelle pour la vue probable, et nous allons le remplir plus tard. Mais la première chose que nous voulons avoir un écran, un plan et ajouter cela aux gens de l'application, je Donc, commençons ça. Donc nous avons, euh, euh, de, euh , , animaux de compagnie importent les animaux de compagnie et ensuite enregistrer ce plan qui s'enregistre en dessous du pain imprimé. Ok, c'est un autre qu'on se bat que maintenant on peut commencer à travailler sur le A P I . . Et ce que ça va avoir, c'est qu'on va utiliser l'abus de méthamphétamine. Comme je l'ai dit à partir, euh, flasque, vue méthode d'importation et de flasque importer son fils. Si je demande et abandonne, on aura besoin de ça. Ces trois choses sur notre animal de compagnie, un p I. Donc la première chose qu'on va faire, c'est qu'on va, euh on va créer un tableau d'animaux de compagnie. Et bien sûr, c'est pour que nous puissions vérifier cela très rapidement. Mais l'idée ici est que cela serait stocké dans une base de données, pas dans un tableau fictif ou statique. D' accord. droite. Mais je veux juste être comme ça, euh, debout et courir. Donc j'ai mon, euh, dans un grand trois. Ah, les objets d' animaux de compagnie ici. Et ce sont en fait mes beaux paris, Mac, Leo et Brownie. Ok, prochaine chose que nous allons créer est une méthode pour ça, euh pour le get et tu viens de mettre ça get. Et en retour, ils certifient le ah, ce tableau de paris que nous étions le financement ici pour la classe, et nous devrions mettre un peu d'espace là-dedans. Ok, alors sauvegardons ça. Et maintenant on va, euh, aller à leur point de vue, B y , et on va permettre cette vue d'accéder à cette fiche au-dessus de toi. Donc, mais la première chose que nous allons créer le plan pour ça comme nous l'avons défini. Donc, à partir de cela un p j'importe qu'un p I, qui est ceci. Eh bien, j'ai oublié de mettre le verre ici. C' est vrai. Donc j'ai donc la classe ici parie un p I, et c'est une sous-méthode hors méthode vue de méthode. Maintenant. Nous voyons donc comment nous avons la vue de la méthode ici dans le haut. Donc, la vue de la méthode est cette classe, euh, et nous la sous-classons sur payday p I et cette méthode a une méthode get, um, get une méthode post, une delete on, mettre comme la create read vous mettez à jour et supprimez les méthodes d'un A p I et, euh et ici, nous pouvons, ah, ah, référencer les animaux de compagnie parce que c'est une classe. Donc c'est ce qui est le moi qui parie qui définissaient là. Donc maintenant, nous importons de la parité notre thérapie d'importation, qui est cette classe ici. Parfait. Alors maintenant, continuons. Donc nous avons, euh l'application pour animaux de compagnie va être le plan, euh, euh, le pari vers le haut et ensuite le nom. Et maintenant, remarquez comment nous allons le faire comme les vues probables que nous exemple que nous vérifions leur savon plus tôt. Ajouter une règle. Désolé. A votre règle, et on va avoir des animaux slash et remarquer que je termine ça avec une barre oblique. Donc nous ne faisons pas ça comme vous pourriez vous y attendre, et c'est très important. C' est un peu comme un A P I, um Syntex, ce qui veut dire que ça ressemble à un dossier, non ? Lorsque vous tapez un dossier, vous mettez cette barre oblique à la fin. Et ce que cela signifie, c'est que nous allons créer une collection à partir des objets qui se trouvent dans ce dossier. C' est un peu comme, euh, la pensée derrière ça. Mais rappelez-vous que pour mettre ah ah ah slash à la fin, si vous voulez obtenir un ensemble de choses du, um à partir de ce point p i n. Alors nous allons faire la fonction de vue égale qu'un p que je demande pour vous et puis les animaux de compagnie Parfait. Alors voyez à quel point il a l'air simple, très élégant. Donc, nous avons notre plan. Nous avons le bébé que j'ai été importé de notre pari un p i B y et nous avons juste l'exemple qu'elle a mangé le plan. Et puis nous ajoutons juste une règle qui dit, Si quelqu'un frappe les animaux de compagnie, Endpoint vient de nous passer la fonction de vue de la classe ah Perry p I. et dans la classe nous allons définir les messages Gadd et toutes les choses. Mais pour l'instant, on fait juste la partie get. Alors voyons que, euh, euh, nous avons eu cette course. Je prends ça, levez-vous pour que vous puissiez y accéder, mais si je peux refaire des théories. Oh, d' accord. Parfait. Donc maintenant, si je frappe le local, la barre oblique de l'hôte, euh , fosses, j'ai le résultat là-bas. Et laissez-moi mettre ça un peu plus petit pour que vous puissiez voir qu'il est retourné de côté . Jason, liste des objets. Tellement parfait. C' est cela fonctionne parfaitement bien. , Et maintenant,allons de l'avant et créons une méthode post. Mais avant ça, nous allons explorer quelque chose, un outil qui va être très utile. Ça s' appelle Facteur. Alors je veux vous présenter ça. Et, euh, c'est un outil indispensable pour un travail de développement P I c'est un outil indispensable pour un travail de développement P I. Alors vérifions ça. 9. Installation et utilisation de Postman: sur notre dernière leçon, nous exemple, a créé notre première version du A p I avec un point de terminaison de pari très basique qui nous permet de faire une demande get et de récupérer une liste des animaux que nous avons mis en place comme un sauna Ray dans la classe. Mais maintenant on veut, hum, faire des choses plus complexes, comme faire des messages et, hum, peut-être envoyer des données de charge utile dans ces requêtes. Et c'est un tracas de le faire en utilisant le navigateur ou même un terminal, comme comme terminal commeune ligne de commande. Donc, au lieu de cela, il y a un très bon outil appelé facteur que j'utilise depuis de nombreuses années maintenant qui vous permet de, hum, gérer et créer cette requête et récupérer les résultats d'une manière très agréable. Joliment formaté. Voyons donc comment installer les facteurs et comment l'utiliser. Ok, alors allons-y et, euh, trouver le, euh, post menthe. A p je vous pouvez faire post destiné à Mac, et c'était d'abord un, um un plug in, et il est encore applaudissant pour le chrome pour, Mais puis ils ont construit une sorte de comme le natif, um ah programme ou pour que vous puissiez télécharger. Et il y en a un pour Mac windows en chrome. Donc je vais utiliser celui pour Mac, qui est l'ordinateur que j'ai et il est en train de télécharger ici. Et puis vous cliquez juste là et vous devriez l'avoir sur vos téléchargements, puis vous simplement glisser-déposer sur vos applications. Maintenant, j'ai un facteur là-dedans. Hum, et c'est tout. C' est assez facile. Donc maintenant je vais, euh, double-cliquer là, cliquer sur ouvrir et ici avoir poste occupé. Non, Um, si vous voulez, um, genre, genre, stocker et synchroniser votre A P j'aime les points de terminaison o r ou la demande. Vous pouvez vous inscrire et vous pouvez utiliser global, ce qui est, je pense, ce que j'ai fait. Um, ou vous pouvez mettre votre email en utilisant et passeport. Et c'est une chose utile, parce que si vous testez ça sur votre ordinateur à la maison et que vous voulez quelque chose, vous savez, dans un autre ordinateur du bureau, Peut-être que vous pouvez simplement, genre, couler le compte, et ensuite vous aurez toutes vos collections, hum, hors tests de terminaison. Mais pour l'instant, passons juste ça et c'est comme l' passons juste ça et c'est comme l'écran principal de l'application et la façon dont vous avez testé avec vous. Au départ, vous faites juste une demande ici, donc je vais à ce que ça soit, hum, hum, hôte local et ensuite les animaux de compagnie, qui est ce qu'on avait sur le, euh juste ici sur le navigateur. Et on a ces résultats ici. Droit ? Donc, si je fais ça et qu'ils frappent envoyer voir comment je reçois la version formatée sur le Jason Hodges, ce qui est vraiment sympa. Je veux dire, j'aime avoir ces choses comme formatives et autres choses. Hum, donc ici, c'est dire que vous pouvez enregistrer votre demande pour pouvoir la gérer. Et c'est ce que je te disais. Si vous vous inscrivez, vous pouvez synchroniser ces éléments sur différents ordinateurs. Mais ce que je vais faire, c'est que je vais créer une collection, et j'espère que vous aurez, euh, vous aurez la version synchronisée de ceci et ah, je vais à je n'ai pas besoin de ça. C' est un peu comme un test. Il va supprimer ça, et je vais créer une nouvelle collection, et je vais appeler ça paris un p I et tu peux le faire pour ton genre, tu sais, chaque application, chaque application, ton écriture et tout ça. Donc, dans une collection que vous pouvez avoir des demandes. Et maintenant je peux enregistrer cela nécessite parce que je sais que chaque fois que j'utilise, um je voulais les demandes obtenir. Je vais le faire avec ça. Tu vas bien. Donc je vais sauver ça, et ça va dire dans quelle collection et je vais dire animaux de compagnie, A p I et ici vous pouvez mettre une description. , D' habitude, j'aime mettre un nom aussi théâtral que, hum, hum, la finition de ce que ça fait. Donc je vais dire, euh, euh, obtenir un point de terminaison pour animaux de compagnie ou quelque chose comme ça. Hum, et puis vous êtes en sécurité et vous avez votre description d'utilisation descriptive, vous savez, des informations là-bas. Donc c'est dans l'animal de compagnie. CBS. Donc si je clique sur les animaux du FBI, voir comment il se fait, hum appelé s'effondre là. Maintenant, ce que je fais aussi, c'est que vous pouvez créer des sous-dossiers. Donc si vous avez, disons que les animaux du FBI, vous pouvez créer un dossier ici et puis je ferai n'importe quoi. C' est ce qui est lié aux paris sur les orteils. Je peux créer ce dossier là et ensuite je peux faire glisser. Il y a, genre, tu sais, tu sais,un peu comme un long clic et le traîner vers les animaux de compagnie. Et maintenant j'ai mon sous-dossier avec ma demande là-bas. Pourquoi ? Parce que, après, je vais avoir un magasin, vous savez, vous savez, et que je pourrais avoir des points de terminaison plus anciens. Alors j'ai tout ce genre de bien organiser leur donc c'est fondamentalement facteur en un coup d'œil. C' est un très bon morceau de logiciel que j'ai utilisé, vous savez, je l'ai dit, j'ai utilisé pendant des années quand il vient de commencer comme une prise chromée, et maintenant qu'il a, c'est, ah, version autonome. C' est vraiment utile. Donc, avec cela, l'étape suivante serait de créer un point de terminaison post pour les animaux de compagnie et il voit comment nous le faisons. 10. Notre premier PUBLIe: Bienvenue, eso dans cette leçon, on va voir comment on va faire. Euh, post réel qui, comme vous le savez, post A équivaut à créer un nouvel enregistrement. Hum, et comme nous l'avons vu dans la dernière leçon, nous avons commencé à utiliser le facteur comme une méthode ou un moyen d'interagir avec notre A p i d'une manière plus facile. Et il va vraiment briller là-dedans dans ce nouvel exemple, qui est la mise en place d'un objet que nous allons envoyer le point de terminaison de post sur nos animaux de compagnie ap. Alors reprenons ça. Donc nous y voilà. un p Je parieun pI et nous allons ajouter une nouvelle méthode, qui est la méthode post. Donc ce qu'on va faire, c'est ce qui suit. On va définir un poste comme les États-Unis, et ensuite on va vérifier s' il n'y a pas de charge utile Jason sur la demande. Ou si le nom n'est pas sur la demande, Jason, alors nous allons retourner une, uh, uh, une erreur 400, qui est sur nous allons jeter un oeil à certains des h deux parce que mais c'est un peu comme un , vous savez, peu comme un héritier attendu. Donc si nous avons ces choses, alors nous allons, euh, en gros, ajouter un i d toe la longueur de ce viol qui est tableau et augmenter d'un. Et puis on aura le nom qui a été transmis sur le poste, Toby, Toby, le nom sur cet objet animal de compagnie. Et enfin, je vais upend l'objet au tableau et retourner. Ce nouvel objet, qui est un peu comme un mécanisme régulier, euh, disons,ou ah,la philosophie quand vous créez un nouveau disque, c'est que vous, comme Ce nouvel objet, qui est un peu comme un mécanisme régulier, euh, disons, euh, disons,ou ah, philosophie quand vous créez un nouveau disque, c'est que vous, pour refuser l'enregistrement que vous venez de créer afin que le client puisse confirmer que vous avez créé le bon enregistrement et, euh et aussi nous allons avoir un nous, vous pouvez voir ici un deux un, qui est un autre bord pour être du code qui est censé dire que c'était créé et, um ou basique ou frère. La demande a été reçue, et je vais à Ah, j'ai vraiment créé un nouveau disque, donc nous allons prendre les manteaux HDB dans un lit, mais commençons à rester avec ça. Je vais sauver ça. Et j'ai docker ici dans, euh, dans mon ordinateur. Donc je vais maintenant voir Postman, et on va, euh, en gros, créer une nouvelle, euh, une nouvelle demande qui va être opposée. Donc ici, je sélectionne post. Et comme vous pouvez le voir, j'ai sélectionné un nouvel onglet. Dans ce signe plus, je vais créer, je vais mettre les animaux ici. Dans ce signe plus, Oh, et j'ai aussi oublié. J' ai juste remarqué quand je vérifiais l'enregistrement que cela n'avait pas d'espace de fuite. Donc, comme vous pouvez le voir, il y a un petit point rouge là-dedans. Cela signifie que cela n'a pas été enregistré ici dans la collection, donc vous pouvez faire Ah, um, commentaire S O R, uh, uh, chose que vous pouvez faire la collecte. Oh, ici, vous êtes ce coffre-fort. Ou vous pourriez le féliciter. Donc je vais sauver ça. Et maintenant que ce point de terminaison est sûr ici en Inde, la collection est tellement parfaite. Alors maintenant avoir le poste. Mais comme vous le savez, Post n'envoie pas la demande réelle ou les données sur l'euro comme la demande get nous . Donc, en fait, je suis à moitié. J' ai un corps ici qui est un, hum , genre, un onglet que je peux passer à la demande. Et là, je vais envoyer un rôle brut, hum, hum, le plus sélectif ici. Vous pouvez sélectionner des données de formulaire. Euh, vous pouvez sélectionner Ah ah, pour Mural encodé. Vous pouvez avoir binaire. Comme, si vous êtes si vous téléchargez des images, et ici vous pouvez sélectionner quoi ? Tapez hors, euh, les données brutes. Et je vais choisir Jason ici. Maintenant. Ce que cela fait est maintenant vous voyez qu'Headers a une nouvelle option là. Si je clique là, je vois qu'il dit application de type de contenu. Jason. Donc nous envoyons ceci sur l'en-tête. Alors l'escalade envoie ça avec des cheveux disant, , M. A P je vous envoie une demande. Avoir quelques données dans le corps sur ce type de contenu est application, Jason. C' est ainsi que vous, euh, envoyez et dites au FBI quel type de contenu vous définissez, qui fait partie de l'arrestation. Plein. A. P I, um contraintes, comme nous l'avons vu plus tôt, est que l'escalade forme quel type d'information off il envoie, et aussi à travers les verbes, le post ici ils obtiennent. C' est aussi de communiquer Qu'est-ce que tu es, euh, ta demande ou quoi ? Quelles sont vos intentions quand vous êtes quand vous publiez ceci. Alors ah, ici. J' ai juste besoin d'ajouter quelque chose comme ça. J' ai juste mis un support et un nom de pied. Et puis je vais mettre, hum, le nom de mon hamster Lalla. Donc ça va être la demande. Donc quand j'enverrai ça, ça va entrer dans le poste ici, et il aura le nom sur la demande, Jason. Et puis je vais être en mesure d'ajouter ça à l'objet et ensuite ajouter orteil cette remorque ce paris, euh, tableau. Allons-y et essayons ça. Je vais me laisser sauver ça, et ça va dire où je vais le sauver. Um, je vais dire que c'est le point de terminaison des animaux de compagnie, et ensuite je vais mettre cette élection fosses un p I dans le dossier des animaux de compagnie et en sécurité. Alors maintenant, j'ai le poste dans leur deuxième. Tu vois ? Ok, parfait. Alors essayons-le. Je vais mettre un peu de lumière ici et envoyer le parfait, donc il y a beaucoup d'informations ici que je veux que vous regardiez. Donc, un, j'obtiens le statut d'un créé. Et comme vous pouvez le voir, facteur a cette bibliothèque très astucieuse sur les codes HDP qui dit que la demande a été remplie et a entraîné la création d'une nouvelle ressource. Nous avons donc créé essentiellement une nouvelle ressource. Il nous dit également combien il a fallu et la taille de la réponse de retour, qui était 204 morsures sur cela. Vous pouvez voir. Voici ce que le serveur retourne. Vous pouvez voir que I D 4 est maintenant le I d pour ça, Laleh. Et bien sûr, c'est logique parce que nous avions, euh, jusqu'au numéro 3 ici. Et en outre, répondez avec des en-têtes, qui incluent des informations sur le contenu, longueur hors des informations renvoyées. Il dit aussi que c'est qu'il va retourner l'application Jason Format. Il a une date de la demande et aussi quel type de serveur, qui dans ce cas, c'est un vous savez, euh, travailler du soja par plaisir. 34 Donc ceci est automatiquement mis par le flacon par, et c'est vraiment utile pour les clients. Mais en tout cas, nous avons réussi, euh, créer un nouveau disque ici et bien sûr, cela reste en mémoire. Nous ne sauvegardons pas cela n'importe où sur une base de données, mais dans tous les cas, c'est toujours une bonne idée ou un concept hors service. Quoi ? Um, les différents points de terminaison pour ça un p je vais commencer à ressembler à 11. Codes de statut HTTP: dans la dernière leçon, nous avons examiné la création d'un nouvel enregistrement à l'aide de la demande de publication. Et bien sûr, nous avons eu ce genre d'introduction à l'image à prendre, qui était à une image avec, hum, hum, ce qui correspond à la création d'un nouvel objet, hum, en image à appeler. Mais je voulais, comme, comme, brièvement passer sur certains du code d'état http parce que je pense qu'il est important que vous commenciez à vous familiariser avec la facilité et vraiment vous assurer que vous retournez le bon air Northerners les codes d'état corrects car ils sont très spécifiques aux opérations. Et j'ai C'est une très bonne ressource à laquelle je vais mettre le lien sur le parcours, qui va sur certains, euh, ou la plupart du statut va mais met aussi une sorte de star sur les principaux, et nous sommes va les parcourir rapidement. Alors commençons par S 0 200 Donc deux axes x, c'est orteil un à quatre, et tout code qui commence par le numéro deux, le 1er 1 est 200. Ok, quels yeux Essentiellement, une requête a réussi. C' est celui qu'on est revenu sur le ah, ici sur le get. Bien que nous ne le disions pas spécifiquement, mais Flask nous le renvoie. Mais c'est peut-être une bonne chose de juste, comme, tu sais, appeler explicitement ça. Et comme vous pouvez le voir, retourner dans le flacon vous permet de mettre cette petite virgule puis un dactylographe au milieu Ask ancien code, ce qui est vraiment utile. , Donc disons que,alors continuons à regarder les codes d'état, euh, euh, et j'ai remarqué que quand je clique ici, j'ai eu ça, comme un peu développé, euh, section et ici excès aussi, ce que vous devriez avoir sur la tête sur le poste et la trace, qui est, vous savez, différent , peu comme, euh, méthodes ou h pour être, euh, peu de demandes qui faisaient, mais, um, um, donc 200 il est correct d'un signifie qu'ils sont exactement comme nous l'avons vu avant est rempli et a entraîné une nouvelle ressource en cours de création. Laressource nouvellement créée peut être référencée par vos yeux. La Retour dans l'entité de la réponse avec le plus Pacific votre oeil pour la ressource donnée par emplacement. Champ d'en-tête. Nous ne l'avons pas fait. Alors, où nous venons de rentrer ? Comme vous vous en souvenez, le, um nous venons de retourner la ressource elle-même ou nous ne l'avons pas retourné. Et c'est une bonne chose à laquelle commencer à penser, qui est là Hate doit un peu comme, approche des choses. Droit. On va arranger ça dans une leçon suivante. Le suivant est deux ou quatre. Pas de contenu. Et cela signifie généralement que, hum, la demande Waas a été reçue et qu'il était correctement, hum, processus. Mais je n'ai pas besoin de vous rendre aucune donnée parce que vous n'avez pas modifié la ressource. Hum, et je pense qu'on l'utilise quand on fait l'élite. C' est vrai. Donc, en premier lieu, parce que vous créez l'enregistrement, vous n'avez pas nécessairement besoin de retourner l'ancien enregistrement car il est déjà supprimé. Eso vous ? D' habitude, tu ne veux pas rendre ces 200. Ok, parce que, euh, c'est un peu comme, OK, j'ai le responsable. Tu ne me dis rien à ce sujet. C' est juste comme si je devais répondre donc à un quatre a été créé pour cela. C' est comme si je te donnais une confirmation que j'ai reçu la demande et que j'ai fait quelque chose , mais je ne te renvoie pas, euh, l'objet ou n'importe quel rendez-vous donc à un morceau de quatre. Parfait pour ça. Alors maintenant, nous entrons dans le 400. D' habitude pas. Ce sont de l'air. Donc 400 mauvaises demandes. Cela signifie que les demandes Ismael Foreign, cela signifie que vous êtes censé envoyer quelque chose ou vous ne le renvoyez pas. On a celui-là sur le poste. Si la personne ou le client n'envoie pas la demande Jason ou n'envoie pas un champ appelé nom dans la demande, nous envoyons un 400 qui est la bonne façon de le rembourser. Hum, donc 400 signifie que vous avez envoyé, euh, vous savez, les informations sur nous avons des informations, quelqu'un ou une demande d'obtenir. Mais tu devais faire autre chose. Non plus. Inclure de nouveaux champs là-bas. Vous connaissez le nom du champ. Ce n'est pas correct, ce genre de chose, euh, car quelqu'un verra quand on aura l'autorisation. Ce qui veut dire que ce genre de connexion, n'est-ce pas. Nous allons mettre en place un journal d'application dans eso que les applications Onley peuvent conduire avec notre FBI pour un seul signifie que vous n'envoyez pas les identifiants appropriés. Donc je suis un peu comme, euh, vous savez, je ne vais pas être capable de répondre à votre demande, euh, même que quatre ou trois, même si la différence que vous savez peu, comme différent, mais il est lié à trois est renvoyé lorsque vous passez le bon login et le mot de passe, mais vous n'êtes pas spécifiquement autorisé à le faire. L' action désactivée peut être la création d'un nouveau pad. Donc, par exemple, disons que vous avez un type d'utilisateur qui peut obtenir tous les animaux de compagnie de votre serveur, n'est-ce pas ? Mais vous avez un autre type d'auteur ou ou nom d'utilisateur administrateur et passeport qui vous permet de créer réellement. Donc, um, cela serait retourné, par exemple, pour le premier utilisateur que c'est seulement même s'il est aimé et le mot de passe sont corrects. Il a essayé d'aimer post et de créer un nouvel objet, et nous avons retourné que pour trois 44 signifie que je n'ai pas trouvé la ressource, et cela peut être un peu comme si vous pouviez épeler le vous savez, la fille sur. D' habitude, c'est le genre de cas. Vous êtes mal orthographié ? Um, le je dégage un objet ou une ressource spécifique. Donc, vous savez, pour quatre, vous avez semblé quatre dans le passé, quand vous, genre, genre, aller sur un site Web et que vous avez manqué de taper le nom de la page ou que la hauteur a été déplacée quelque part sinon et n'a pas retourné un code 300, um, pour neuf est un conflit sur. Cela signifie que peut-être que vous essayez d'insérer un nouvel animal de compagnie qui a le même nom sur animal existant afin que vous puissiez retourner un pour neuf, ce qui signifie , um, que le, um,que l'utilisateur envoie des informations qui vont être vous savez, contradictoire. Et enfin, les cinq, les 500 Siri. Ils se demandent que tu utilises le plus de facilité. Cinq serveur interne de financement, qui est de retour quand quelque chose comme mauvais s'est passé du côté serveur. Ce serait comme, vous savez, que ibex est tombé ou que, euh, le serveur d'applications, euh, génère un miroir qui n' est pas pris dans un essai sauf le code. C' est juste comme, tu sais, vomir, tu sais, donc la flasque reviendra automatiquement et le client est informé qu' il y a un téléphone pour, AH 500 qui est, vous savez, fondamentalement, il y a un problème avec le serveur, pas avec vos requêtes ou la façon dont vous faites les choses, mais quelque chose sur notre côté. Donc dit les principaux, vous savez, il est bon de jeter un oeil à certains de ces autres et de se familiariser avec ceux-ci. Et on va utiliser ah, grouper ça tout au long du cours. Alors continuons. Un peu comme commencer à ajouter des données faites à notre à nos objets animaux de compagnie eso que nous sommes, hum, plus genre de, hey, fait conformité. 12. Un réel CRUD: Donc, dans la dernière leçon, nous avons vérifié les codes d'état http qui est utile pour le client pour obtenir des informations sur ce qui s'est passé avec la requête qui était censé remorquer le serveur A P. I. Mais maintenant ce que je veux faire est de travailler un peu plus sur ce point de terminaison des animaux de compagnie et ah, faire plus de haine, doit conformité, avoir certains fait un plus tard là-bas ainsi que permettre d'obtenir un animal de compagnie spécifique à travers leur I d. Sur également mettre en œuvre les méthodes put et lead. Alors commençons à faire ça. Alors commençons par aller vers l'animal de compagnie B y et je veux, hum, rendre hum, ça plus, je suppose, Ah, un peu plus évolutif. Et quoi ? Je vais juste y aller. Je vais remplacer um la vue Toby a, um un viable afin que je puisse ensuite faire différentes méthodes pour cela. Donc, celui quand je fais ça, c'est que je vais faire une vue d'animal de compagnie, qui sera égal à l'animal de compagnie que je demande à votre animal de compagnie, un p je m'annonce donc d'insérer maintenant cette ligne aussi, aux différentes méthodes. Donc le 1er 1 que je vais faire, c'est que je vais aller au get, mais c'est le get pour tous les animaux de compagnie. Donc je vais faire cet animal chez nos animaux de compagnie. Et quand je passe, tu pourras faire ce Défaut payé parce que tu te souviens qu'on va remorquer un individu, aller plus tard, euh et celui-ci serait pour tous les lits. Et ici peut faire animal nous voir la fonction de vue, et puis les méthodes qui vont être pour ceux-ci pour spécifique votre règle va être obtenir. Donc cette réponse sera quand on passera les paris. Et mais il n'y a rien d'autre là-bas, donc c'est pour avoir des animaux plus âgés. Mais puisque la fonction au-dessus de la méthode que je vais créer ici sur un p I pour le get ne va pas se diviser en, hum un. Ça le sera si tu passes et moi et les autres. Si tu ne passes pas le I d. et que je vais mettre cette valeur par défaut, Toby, je n'en équivaudrai pas. Donc le prochain, c'est le post, et ça va être similaire à ta règle, puis taper. Mais ici, je vais juste mettre la méthode Toby post ici nous n'avons pas, vous savez, routes différentes. C' est juste comme cette seule route, parce que vous êtes toujours censé le vers les animaux de compagnie et pointer. Et enfin, je vais faire la méthode pour le, um pour l'individu get que j'ai mis et supprimer parce que tous ceux qui nécessitent un i. D. Toby passé. Donc je vais dire que Pat n'est pas intervieweur payé ils seront fonctionnellement dépensés vue, et ensuite je vais avoir les méthodes mises et l'élite parfaite. Alors maintenant vous voyez comment nous avons, vous savez, les différents cas d'utilisation que le 1er 1 serait quand j'aurai tous les animaux de compagnie, et dans ce cas, je dois passer. Mauvaise idée n'était pas parce que je vais m'attendre à ce que sur le niveau a p I. Et puis je vais avoir le, euh, celui pour le post, qui est de créer quelqu'un qui n'en a pas dans les cas d'utilisation. Et enfin, quand je passe les animaux de compagnie avec un animal de compagnie intervieweur, je peux demander à être mis sur le couvercle. Donc aucun avis que nous ne faisons pas là, ils même alors, peu comme les cas de changement dans l'interview elle-même, ce qui est une bonne chose que les vues applicables nous obtient qui sera décidé ici. Quand ? Quand on appellera le Perry P I ça va nous envoyer intelligemment la méthode appropriée selon que nous obtenons un bateau ou supprime. Ok, donc la prochaine chose que je vais faire, c'est que je vais aller au A P I et que je vais insérer , hum ici. Ah, un peu de haine doit. Donc je vais avoir le lynx, une section lynx qui va dire, Quel est l'euro pour accéder à cette ressource ? Donc, je vais juste copier et coller ceci et il dit des liens et c'est un tableau, donc vous pouvez avoir plusieurs liens dans l'objet. Mais celui qui définissait, c'est moi, et ce thème Rehl eyes. C' est un peu comme une utilisation hors hdb, euh, acing taxes où cela dit, Quel est le parent, le genre relatif hors comme quoi ? Quelle est la relation hors de ce lien et vous pouvez utiliser rail auto ou vous pouvez utiliser rail égal, Je crois souligné nouveau Si nous voulons ouvrir dans une nouvelle fenêtre. Mais en tout cas, cela fait référence à lui-même. Et c'est dire pour arriver à cette ressource, vous devez aller à cette zone treff, qui est des animaux de compagnie. Ah, slash un. Quelqu' un est la même chose ici, mais dans ce cas va être paris slash à. Et comme vous pouvez le voir, ça correspond à l'idée, non ? Donc si tu frappes sur les paris, alors ça va avoir Leo. Si tu frappes, c'est un que tu auras, Mac. Et enfin, parie trois. Alors allons chercher Ah, allons travailler sur le get um, c'était une mauvaise blague. Donc nous allons avoir un animal de compagnie maintenant, comme je l'ai mentionné et souvenez-vous de ce que nous avons fait ici, qui est comme, si le si les animaux fonctionnent hors obtenir a pas i d après, alors nous sommes toujours en train de passer. J' ai payé que je savais pour que ça ne casse pas ici. Tu vois, c'était nécessaire. Il s'agit d'un paramètre obligatoire sur la seule fonction. Donc on va dire Eve, hum, si c'est comme si tu veux avoir le, hum ah, l'animal spécifique, alors tu feras ce qui suit. Donc nous avons le tableau des animaux de compagnie et ensuite nous sommes cette obstruction, parce que rappelez-vous que notre course ou le moins commence à zéro. Alors je dis juste, donne-moi la paire que j'ai dépassée là-bas. Et donc menacer un pour que le i d pour, um, pour Mac, qui est un corresponde à l'élément zéro, et ensuite pour Leah serait le seul élément et ainsi de suite. Et puis, euh, on peut se débarrasser de ça, et on n'en a pas d'autre. Alors on dit juste retour. Oups. Donc c'est pour quand je veux avoir toutes les pattes d'animaux de compagnie. Et puis je viens de passer le rayon A entier là-dedans. Ok, donc c'est pour avoir la fonction. Hum, et l'autre chose que nous voulons modifier ici, c'est par le biais des liens. Donc on va avoir la même chose ici, donc je vais avoir des liens. Mais j'ai eu la mauvaise chose, copié et collé. Il relie aussi, et puis ça va être relatif auto h ère un radeau animaux, plus la corde sur la longueur de ces animaux. Ah, Ray. Hum, plus un. Donc, il a donc la force sur la longueur hors auto animaux plus un Donc c'est la longueur plus un ici, et c'est la ficelle de celui-ci. Ah, pourquoi ? Parce que je crée un nouveau disque et ce sera essentiellement un plus le, um, le nombre de points là-dedans. Parfait. Je pense que c'est ça pour les choses qu'on voulait faire. On va faire la mise sur le couvercle de la leçon suivante, mais commençons à tester ça. 13. PUISER et SUPposer: Alors essayons le ah, obtenons les demandes d'abord, euh, et voyons si nous obtenons les mêmes résultats. Donc, nous devons avoir un point de terminaison ici. Hum, j'ai le Dr Running, et je pense que j'ai le Ouais, ce truc tourne une houle. Alors faisons qu'on arrive ici et parfait. Donc ici, je vois le, euh le différent. Ah, laisse-moi voir si je peux. Non, c'est à copier. Um, je voulais, genre, étendre ça. Oh, tu y vas. Un peu. D' accord. Alors je vois leurs broches. Vous savez, je relie les animaux de compagnie HF. Un vrai moi. Le nom est smack la même chose avec les animaux de compagnie à etcetera. Donc ça a fonctionné. Vraiment bien, je ne passe pas un i d. Ils sont donc ça veut dire que la, um, um, la fonction est en train d'entrer dans ce cas d'autre parce qu'il n'y a pas de chemin. Et bien sûr, ce lit je d. dit être dit à aucun parce que cela est réglé à connu sur la demande get. Parce que je n'ai rien après. Um, où nous quand je fais l'individu. J' ai cet animal de compagnie après. J' ai cet animal de compagnie après. Hum, et je pense que si on clique dessus. Vous voyez comment c'est cliquable. Je pense que cela fonctionnera, et cela va créer un nouvel onglet. Mais voyons que ça arrive. Um, ok, parfait. Donc, il crée un nouvel onglet. Ils ne nous l'ont pas envoyé, mais c'est dire qu'il faut un animal de compagnie local. Donc si je pouvais envoyer leur super, donc j'ai eu dans ce cas, vous savez, Max record tout seul, il dit que c'est un et les liens nous-mêmes et, euh, et le nom. Donc si je change ça en, je vais chercher Leo. Si je change ça à trois, j'aurai Brown. C' est génial. Donc, nous allons, hum gardons ça dans le je suppose. Renommons cela obtenir tous les animaux de compagnie. Point de visée. Et puis je vais sauver ce Toby, prendre ah, prendre ah, un point de terminaison pour animal de compagnie, et je vais le mettre dans la collection Mets. Impressionnant. Alors, euh, essayons un post et voyons si nous obtenons, euh, le bon, euh, les bons résultats. Donc nous avons ici, euh, voir un animal nommé Lalla. Depuis que je pense que nous avons commencé, le serveur était Nous n'avons pas la LA là-bas. Ouais, on a juste jusqu'à Brownie. Alors envoyons ceci et voyons ce qui se passe et parfait. On a des paris pour lesquels c'est Lalla. Et maintenant, si j'essaie ici et en prends quatre, j'emmène Lalla là-bas avec ses animaux de compagnie. Ah, Treff génial. Alors voyez qu'il est dit que nous ne l'avons pas sauvé. On ne veut pas la sauver parce qu'on veut juste dire que c'est un. Donc on va le laisser à ça. La prochaine chose que nous allons faire est de travailler sur les méthodes de mise et de suppression. Ok, maintenant nous allons travailler sur l'opération de mise à jour, qui est la méthode de mise à jour X. Mais je voulais vous donner ah ward off conseil ici parce que mettre peut également être traité pour mettre à jour ou créer un enregistrement. Et le site de création vient si vous l'êtes. Si vous donnez refusé l'option de, um, envoyer sur l'objet avec son propre I. D. Donc, par exemple, disons que je, au lieu de notre création de l'idée du pari J'ai exposé un, euh, mis une méthode où si vous avez passé le i d, alors le que Paris a créé avec l'idée qui a refusé passe Um, je ne trouve pas ce cas d'utilisation très souvent. Donc, ce que je fais habituellement personnellement est d'utiliser la méthode put comme mise à jour, et cela va être un peu comme comment je l'utilise dans le reste du cours. Mais, ah, la mise en garde est que vous pouvez utiliser aussi mis sous les spécifications HDP, comme un post. Mais dans un post où vous autorisez le client à créer un enregistrement avec un I D qui a refusé les choix de cul, Um, Um, et techniquement, si nous voulons mettre à jour un seul champ hors enregistrement, souvent objecter . Ensuite, vous utilisez une autre sortie pour être méthode patch froid. Le problème avec les correctifs qui beaucoup, Disons que vous savez où le JavaScript de Klein, et encore plus sur les clients ne prennent pas en charge les backbacks. Très bien, mais encore une fois, Patch signifie que vous envoyez cette idée et puis juste un sentiment d'être mis à jour par rapport à mettre. Vous devez envoyer l'idée et tous les champs. Vous ne pouvez pas simplement envoyer un champ pour cet objet que j'aime, dis-je. Personnellement, j'ai utilisé nous mettre patch d'essai, ce qui signifie que vous pouvez passer le I D et juste un champ ou tous les champs. Mais c'est quelque chose que j'achète le signe que nous choisissons de faire et je le communique à l'A P I et l'utilisateur. Alors, oui. Donc vous avez vous savez, c'est cette mise en garde à l'esprit et assurez-vous de lire à propos de patch et de mettre sur la ressource que je vais mettre sur la leçon. Ok, alors travaillons maintenant sur la demande de mise ici. Et donc nous allons faire ce qui suit. Nous allons trouver la méthode avec l'animal de compagnie i d. comme paramètre. Et puis on va vérifier si la demande a un objet Jason. Um, ou s'il n'a pas de nom dans la demande, alors on va à bord avec une erreur 400, ce qui est, vous savez, mauvaises demandes. Ensuite, je vais réduire le compte du tableau d'un. Et je veux dire que le nom de l'animal est égal à la demande Jason nom. Et je vais retourner l'objet à l'utilisateur. Um, je vais retourner ici un 200 ce qui signifie que l'opération a réussi et que je retourne l'objet, mais parce que ce n'est pas un objet. Je ne rentre pas un tour, mais plutôt un A 200 et ah, juste pour qu'on comprenne ce qui se passe ici. Le je soumets un orteil le lit que je d. qui est passé parce que encore une fois Ah, course. Avoir un index zéro pour le 1er 1 Donc, si vous passez, disons une demande pour mettre à jour Leo. Tu passes un numéro deux, mais en fait je veux enlever l'élément Ah, l'élément animal de compagnie. Donc c'est tes Syriens son droit ? Alors, euh, c'est tout. C' est la mise sur. Allons de l'avant et faisons la suppression. Donc, vous trouvez la méthode de l'élite. Et rappelez-vous ceci le plomb est la méthode en fait être. Ce n'est pas une fonction que nous appelons éternellement cette piste. Et ici, je vais appeler le mot del pour une course, qui est le leader de l'un ah spécifique, élément hors de Thea du tableau. Et finalement, j'ai retourné un objet Jason vide avec un deux ou quatre et rappelez-vous ce que nous avons dit à propos de deux un quatre. Cela signifiait que l'opération a traversé, mais que je ne retourne aucun objet au client. Mais je suis en faisant orteil un forum confirmant que l'élite a passé par Ok, alors allons-y et essayons ça sur le client de facteur. Donc, nous allons vérifier très rapidement ce que nous avons de mieux. Donc nous avons Mac Leo Brownie. Donc je vais cloner cet orteil, euh, pour être un, euh le mettre parce qu'on va devoir passer le corps avec un nom mis à jour . Donc, il y a une fonction ici si vous tolérez le public huit. Et renommons ça pour être mis. Ah, en haut ils pari spécifique. Et donc nous devons passer un i d. ici. Donc je vais, hum j'ai perdu le haut ici, et on a sauvé ça, ou c'est Port Save et laissez-moi créer un nouveau top ici. Mettons le mettre là serait obtenir. Reprenons tous les animaux de compagnie. Donc j'ai Mark, Leo et Brownie. Donc je vais renommer Brownie en Lalla. Alors c'est les animaux de compagnie 3 pour passer les meilleurs 3. Et j'ai mis Lalla là. Ok, donc quand je ferai ça, l'Opération Brown sera rebaptisée Lalla, alors envoyons ça. Et maintenant les animaux de compagnie trois son nom Lalla, et remarquez que j'ai un 200. Ok, ce qui, hum, c'est fondamentalement accepter que la requête a été traitée avec succès et qu'elle retourne le haut, euh, et si nous obtenons tous les objets ici, Voyons voir, ouais, on en aura beaucoup. D' accord ? Alors faisons un nouveau. Et je vais faire l'élite, et je vais cloner le get pour ça. Donc on va appeler cette élite, et je vais supprimer le troisième disque, qui est Layla et ah, laissez-moi mettre à jour ça. Toby, la tête. Un animal de compagnie, ils économisent. Droit. Parfait. Donc maintenant je vais supprimer le numéro trois, qui est de la lave. Laisse-moi envoyer et parfait. J' obtiens deux ou quatre, ce qui signifie que le processus du serveur, la requête, mais il n'y a pas de contenu retourné. Et si je le fais, je serai là. Je vois que sont maintenant seulement avoir Mac et voir 14. Authentications simples: Nous avons donc vu toutes les opérations de mise à jour et de suppression. opérations de foule pour sont très simples dans la mémoire, gentil hors animal de compagnie, A p I et point. Mais maintenant, on veut, tu sais, prendre un cran. Et quand vous avez affaire à un oeil P, vous avez toujours affaire à l'authentification et à l'autorisation parce que la sécurité est une chose importante à laquelle vous devriez penser si normalement, ce que je recommanderais, euh, faire si c'est si c'est si vous voulez y aller, comme tout le chemin est d'étudier comment activer off. Donc bureau, ce protocole que beaucoup de, vous savez, AP très professionnel que j'utilise est comme Twitter. Hum et, euh, c'est un peu compliqué à mettre en place, et je pourrais faire ah, beaucoup de cours ou YouTube sérieux sur la mise en place d'un serveur basé sur python. Mais ce que j'ai fait dans des projets dans le passé, fois pour moi-même et pour des applications professionnelles, c'est une authentification basée sur des jetons, qui est très similaire. Mais ce n'est pas 100% de réduction. Alors, euh, voyons comment on peut faire ça. C' est comme si je voulais dessiner jusqu'à ce que vous puissiez vérifier. , Ce qu'on va faire ici, c'est qu'on va avoir un, euh, on va utiliser les en-têtes. Donc, dans huit dans la sortie E p. vous avez essentiellement, vous savez, couches d'information. Donc nous avons, vous savez, l'œil en fait où vous pouvez transmettre des informations. Par exemple. Oubliez les demandes. , Vous avez le corps, c'est ce qu'on a vu quand on faisait le post et, hum, et hum, on a mis des informations, ce qui est un peu comme des données. C' est Ah, ça Ah, fait partie de la demande, mais nous avons aussi des en-têtes. Et on a vu les en-têtes quand on parlait de l' application Jason. Jason lui a demandé de s'en souvenir. Il est donc très courant que vous utilisiez les en-têtes aussi pour, exemple, l'authentification. Et ce que nous faisons normalement, c'est que nous utilisons cette chose appelée sur l'en-tête X tiret. Donc X planque signifie que tu vas dire, tu sais, X up. Je d par exemple, pour l'application que je d ou sur et ex comme Ah, c'est un jeton. Et c'est un peu comme un mot de passe, où vous avez, comme, comme, informations pour pouvoir accéder à votre, hum, hum, votre ah, votre contenu A p I et vous avez arrêté sur chaque requête. Hum, donc la façon dont ça fonctionne et c'est un peu similaire à avoir un nom d'utilisateur et un mot de passe, un peu comme se connecter. C' est ah, c' est fondamentalement ce qui suit. Vous avez un, um vous n'avez pas une application qui a re lecture des demandes d'écriture ou l'accès à votre A P I et cette application va avoir une application i d. Et il va avoir un secret d'application et penser à cela comme le nom d'utilisateur et mot de passe, à droite. Donc ça va marcher. Ils utilisent son nom et son mot de passe. Maintenant, le truc, c'est tu ne veux pas transmettre chaque demande, ton passeport viser, parce que c'est un peu comme, euh, tu sais, si par hasard quelqu'un atteint ces en-têtes, vous allez être exposé. Donc, vous voulez séparer, ils les utilisent dans le passeport des en-têtes réels que vous passez. Donc, la façon dont ça marche est que, euh, pour l'étape numéro un, vous atteignez une sorte de point final. C' est un peu comme obtenir le jeton, obtenir le jeton de score, et puis ça. Parlez. Vous travaillez, vous allez avoir, euh, euh, vous allez passer sur le poste. D' après la demande de poste, vous avez passé le secret et le secret. D' après la demande de poste, Maintenant, cette information que vous envoyez sur le post sur le corps de la bête de données ne peut pas être lue par elle. Au revoir. Serveurs qui sont des serveurs intermédiaires. Donc c'est une opération très sûre, comme ça, non ? Et puis après avoir posté, puis vous revenez du serveur. Un jeton. Et ce jeton est une sorte aléatoire comme une combinaison de lettres et de chiffres, et nous verrons comment nous en générons un. Mais il a aussi une expiration off, Disons X heures ou un jour. Euh, pourquoi ? Parce que ce que vous voulez faire c'est que parce que ce jeton, vous allez passer les en-têtes. Peut-être que quelqu'un peut potentiellement lire que le jour aura un accès temporaire à faire des choses avec le A P I. Mais si vous savez, le client détecte en quelque sorte que quelqu'un lit cette information ou, vous savez, informe Vous, euh alors ils peuvent révoquer ce jeton et puis vous savez, vous êtes votre vieux, vous êtes bon. Toi, le client ou ce hacker, n'a pas ta place en secret. Ils ont seulement le haut et le jeton et ce jeton est, vous savez, généré souvent. Donc, après que vous avez ce jeton étape numéro deux est sur chaque demande. Donc, disons que vous voulez obtenir le point de terminaison des animaux de compagnie. Vous allez passer les seuls en-têtes que vous allez passer le F I T et le jeton, et puis à chaque demande, vous allez passer par la requête et dire, Est-ce que c'est une idée et un jeton, vous savez enregistré quelque part et c'est ce que nous allons faire. On va, tu sais, stocker ça sur le discours va être stocké dans la base de données. Il a une expiration. Donc, après un certain laps de temps, ce jeton n'est plus valide. Donc la première chose que nous allons faire est que nous allons créer un décorateur pour chaque demande afin que nous puissions vérifier que les demandes que nous recevons sont valides et que l'utilisateur a accès à, vous savez, frapper les points de fin. Alors commençons à travailler sur ce 15. Tester notre authentification simple: Ok, Alors commence à travailler sur ce décorateur et ce qu'on va faire, Ace, crée, hum, un dossier d'application d'ajout où on aura les modèles et les vues sur le test pour la création de l'application . Et, hum, hum, tester les différents clients ou, vous savez, l' vous savez, utilisateur se connecte et le mot de passe, pour ainsi dire. Ils vont accéder à notre p I. Alors faisons ce dossier ici, euh, application. Et puis nous voulons créer un être un B y pour que python sache que c'est un module A et nous allons créer B Y d'un décorateur pas sous la plus grande vitesse pourquoi ? Nous allons faire quelque chose que vous avez vu dans le passé, qui est un décorateur. Donc, nous commençons avec les outils fonctionnels et les enveloppements d'importation. Ensuite, nous allons importer la demande et J fils, si je de flasque et que nous allons définir ce décorateur appelé application requise. Donc, nous créons la fonction décorée régulière avec les arguments et les arguments de mots-clés. Et donc la première chose que nous allons vérifier est même demander des en-têtes, et nous allons appeler cet en-tête un X up, j'ai un peu comme ce que j'ai mentionné plus tôt. Et si ce n'est pas le cas, alors nous allons retourner un code Nair 403 qui est non autorisé. Alors on va mettre ça en place, je suis viable. Toby, l'en-tête X up i d. Et on va aussi avoir le secret de l'application, qui va s'appeler un secret de l'application X. Je vais juste l'imprimer sur le sur les serrures eso que nous voyons que c'est le stock fonctionnent actuellement. Et pour ce premier test, ce que je vais tester, c'est que le haut I d, um f i d a dit orteil Jorge et la séquence AB est dit toe mon secret. Et si ce n'est pas le cas, alors nous allons aussi retourner un message aérien. Sinon, nous avons retourné la fonction, ce qui signifie que la fonction continuera à fonctionner à partir de ce point. Parfait. Donc remarquez que je fais ici le secret up i d et up passé sur les en-têtes. Bien sûr, on va modifier ça avec un jeton. C' est la mauvaise façon de le faire. Mais je veux que les gars voient comment ça fonctionne potentiellement. Ok, donc maintenant on va aller à l'animal, hum, un dossier P i et on va ajouter le décorateur ici. Donc on va dire de l'AP. Ah, les décorateurs importent requis. D' accord. Et, euh, c'est un type particulier de, comme la méthode que les vues probables offrent, qui est juste sont capables de passer les décorateurs, je dis une liste définie. Donc nous allons dire que les décorateurs sont égaux requis, et c'est une chose vraiment sympa, très vu que cette flasque met en œuvre pour nous. Donc on n'a pas besoin d'utiliser le panneau ici parce que ça ne fonctionnerait pas correctement ? C' est une classe n'est pas une fonction donc flask. Si le costume nous donne cette méthode d' aide, aide, on peut juste passer les décorateurs comme un peu hors de décorateurs. Dans ce cas, on n'en utilisera qu'un. Voyons donc ce qui se passe lorsque nous essayons de demander maintenant les animaux plus âgés. Alors laisse-moi éclaircir ça et ensuite juste mettre le get l ah, vieux animaux de compagnie et pointer. Maintenant, si j'envoie ça, je prends un quatre ou trois, ce qui signifie que ça fonctionne correctement. Et si je vois les journaux, je peux voir hum, je suppose qu'il n'a pas imprimé ça là-dedans parce que ça voit ce qu'il fait. Donc si c'est si c'est ah par ces pas, alors ça revient pour trois. Donc on n'a pas les orteils d'imprimer l'idée en secret. Donc ça marche bien. Mais maintenant, disons ces en-têtes. Je ne suis pas ici, alors voyez comment nous avons la clé et la valeur. Donc ici, on va dire, X en haut I d IHS Ah, on a dit Jorge, n'est-ce pas ? Donc, Jorge, c'est comme le nom d'utilisateur. Et envoyons ça. envoyons pas le secret pour voir ce qui se passe maintenant. Si j'envoie ceci, je reçois toujours un 43 et je reçois la serrure. Dis quelque chose. Parfait. Alors voyez comment il est l'impression de l'en-tête ici, le dicton corsé jorge connu pour leur pour le secret de l'application. Alors refaisons-le. Et cette fois, c'est aussi. Les mauvais mots de passe allaient dire mot de passe. 123 encore. Envoyez-le. Je reçois un interdit alors maintenant je vois le à ing là-bas, mais ce n'est toujours pas la bonne combinaison. Donc enfin, si on met la bonne combinaison, ce qui est mon secret, et qu'on envoie, j'ai un 200, et je prévois le corps. Je vois que les animaux de compagnie me sont renvoyés. Um, parfait. C' est ainsi que fonctionne l' authentification de base. Hum et, ah, vous savez, c'est une très bonne première introduction à la façon dont nous allions mettre en place l'authentification de l' autorité A P i ah sur notre application d'animaux de compagnie. 16. Modèle API et les points API d'API: dans cette nouvelle section, nous allons commencer à construire l'application basée sur le jeton rial. Et donc nous allons commencer à travailler sur cela en utilisant la télévision moderne pour stocker ces APS sur les identifiants et aussi stocker des jetons que vous asi non, de l'explication précédente ont une exploration, euh, sur ces jetons. Alors commençons à travailler là-dessus. Ok, commençons par travailler sur les modèles de l'application, hum, ou les ups qui vont pouvoir, hum, enregistrer ou accéder aux terminaux. C' est là que je vais créer un modèle B y et dans ce modèle gens, Je vais mettre en place le suivant en premier, Nous n'importons pas le prélèvement de l'application, Ensuite, nous allons créer un modèle pour l'APS, et ce modèle est Je vais faire une sieste. Je vais être un peu comme s'ils utilisaient son nom. Et puis nous allons aussi avoir un secret, qui va être un peu comme le mot de passe. que nous allons Il y a un modèleque nous allonscréer ou l'autre collection sera la collection Axis , qui est l' , endroit où nous stockons les jetons, donc ça va faire une sieste, qui va être une clé étrangère ou un champ de référence comme nous les appelons parmi les go, nous allons avoir un jeton qui va juste être une chaîne et a finalement été dans un magasin. L' expiration de ces jetons. Parfait. OK, non, nous allons travailler sur le a p I pour l'application. Et donc on va dire que c'est le A P j'ai balayé et que ce qu'on va faire ici, on va avoir les deux cours. Vous voulez interagir avec la création vers le haut et une autre pour la création Tolkien, qui va être l'accès A B I. Et c'est bien si vous mettez plus d'une classe AP I sur un seul fichier, alors commençons à travailler dessus. Donc nous allons avoir, hum, hum, la vue de la méthode à partir de vues flats importée. Ensuite, nous aurons besoin d'une demande, hum, à bord et Jason. Si je viens de Flask, on va utiliser la bibliothèque de la crypte B, et on va aussi avoir l'année où j'ai deux bons jetons. Et enfin, le jour et l'heure Delta pour vérifier la validation du jeton. Donc on va importer le modèle de AP. Um, à la fois le haut et l'axe. Donc, ce sont de première classe. C' est le haut d'un p I. et on va s'asseoir et jouer, ce qui va dire que si la demande n'a pas de Jason, passons à bord qui décolle tout de suite de la batte. Si la demande a Jason dedans et si ce n'est pas le cas, alors nous ne devrions pas continuer avec l'instance de classe, l'aviation, alors nous ne définissons pas une méthode post, et la première chose que nous allons vérifier si nous avons jusqu'à i d ou up secret dans la demande elle-même . Maintenant, remarquez que nous ne transmettons plus cela sur les en-têtes. On passe ce corps supposé parce qu'on fait le bon chemin et quelque chose que tu verras ici. Um, je vais commencer à utiliser sur le code d'erreur. Et cette époque manteaux sont généralement je les fais des cordes hors des mots majuscules avec sur ce cours entre les deux, de sorte que c'est un peu comme une constante et le client s'occupe de vérifier ces erreurs. Donc si on n'a pas de secret, alors on va juste retourner une erreur. Ensuite, nous allons vérifier si l'APP existe déjà. Donc nous allons frapper le mongo pour obtenir des objets qui ont la même chose si le haut existe, alors nous allons revenir sur l'air en disant que le haut que j'ai déjà existé j'ai remarqué, utilisaient Cold Air 400. Maintenant, nous avons notre autre, donc nous sommes prêts à y aller. Nous allons créer les informations d'identification. Et une chose que je vais faire ici, je ne vais pas stocker l'avion de passeport parce que c'est un peu comme un passeport ordinaire. Je vais être décrypté pour que si quelqu'un pirate malicieusement la base de données, il n'ait pas accès aux mots de passe réels. Et ils devraient toujours être votre pratique lorsque vous travaillez avec des mots de passe, même si ses mots de passe d'application sur ah, sur un serveur p I. Et maintenant, enfin, nous créons l'objet de l'application avec le haut I d et notre mot de passe haché, puis retournons enfin un résultat correct, retour au client et remarquez que je ne retourne rien ici. Je dis juste résultat. Ok, donc ça va être un 200 maintenant. La prochaine chose quand je travaille, c'est le côté symbolique des choses. Alors commençons à travailler sur ce qui va être appelé l'accès A P I et où faire la même chose. On ne l'a pas dedans. Quels chèques ? Si la requête Jason est vide alors retournerait un 400. Maintenant, définissons une méthode de post. Maintenant, le Post ici va être de créer un jeton. On va vérifier s'il n'y a pas de secret dans le corps. - Et maintenant, je vais recevoir, hum, un message d'erreur pour le client. Ensuite, je vais vérifier que l'APP existe. - Et puis ça veut dire que j'ai trouvé l'application que j'ai d. D'abord, je vais juste retourner l'erreur là quatre ou trois. Et ici, je vais générer le jeton. Si Thea, si le mot est correct, alors nous allons vérifier avec la bibliothèque de cryptes B et prendre que c'est égal à notre base de données sur le secret qui reviendrait de la base de données. Donc, si c'est si c'est si ça passe, alors nous existons avec le petit Les jetons existants provoque celui que nous allons dire qui est le nouveau valide pour cette application. Donc, je vais juste obtenir tous les jetons d'accès qui correspondent à cette application et les termes de la lèvre. La prochaine fois que je générerai un jeton en utilisant la bibliothèque U I D, je vais régler l'heure des jetons, Toby. Maintenant, et comme on peut le dire, on va utiliser le toi pour voir. Et quand j'ai dit que les secondes et les microsecondes Toby Zero étaient juste intéressés par les heures et les minutes. Et on va fixer l'expiration. Toby, 30 jours. Enfin, je stocke ces seul nom de base de données lui-même quand j' ai enregistré ceci et je veux générer le, um RFC 3339 Quel est Theo ? Étendez. Erre pour un p A s A p glace, aussi. Désolé. Temps de retour pour les mitaines dans ah, dans un PS. Donc, vous devriez l'utiliser quand vous le voulez. J' utilise ah, jour est sur votre p I. Donc on va retourner le jeton et quand il expirera. Et ici, nous en avons une autre. Alors ils passeports ? Qu' est-ce qui n'est pas correct ? Le secret du haut. Donc, nous allons juste dire, um a retourné un code d'erreur avec des informations d'identification incorrectes et revenir au client avec ça pour trois. Ok, donc la prochaine chose qu'on va faire, c'est qu'on va revenir ou travailler sur les points de vue sur ce point 17. Vues et décorateurs Token: Ok, Donc la prochaine étape que nous allons faire ici est de créer les vues B y pour notre application, um, um, points de terminaison. Et avec des vues être pourquoi ? Et ça va être assez similaire aux autres choses que nous avons faites. On va, hum, faire un plan. Donc nous importons le plan de flasque, et nous allons importer ces deux classes du a p i point b y nous créons notre plan, qui va être en place, en haut. Ensuite, nous avons mis en place une vue en utilisant la méthode ask you pour des vues plausibles avec l'AP AP I et finalement nous allons ajouter les règles. Donc le 1er 1 va être le post pour créer une application. Et rappelez-vous, une sieste. C' est comme un client, comme un nom d'utilisateur et un mot de passe. Et puis on aura accès à la vue, qui est Thea Other Ah, un p I qui va être la génération de jetons. Donc, nous allons ajouter la règle et nous allons appeler ce jeton d'accès à la barre oblique APS. Et vous vous êtes opposé à cela lorsque vous voulez créer un nouveau jeton. Parfait. Donc c'est ça, hum, maintenant nous devons ajouter ce plan à nos frais de candidature Pourquoi ? Donc nous allons importer, hum, des vues importées vers le haut, et ensuite nous allons enregistrer ça avec là-haut. D' accord. Avec cela, nous pouvons au moins commencer à créer et, euh, générer des jetons. Bien que nous ne vérifions pas, nous devons faire du travail sur les décorateurs pour vérifier que le jeton est valide. Alors allons-y et ah, et travaillons là-dessus. Allons voir les décorateurs B y et nous allons être ici n'importe quel jour pour vérifier la validité des jetons. Et nous allons également avoir besoin des modèles up pour récupérer l'AP et le sur les jetons excédentaires . Donc je vais supprimer ça, et je veux dire que je suis Theo le X en haut et que tout le reste ici sera un nouveau truc, nouvelles choses. Donc nous allons obtenir le jeton APP, qui sera sur les en-têtes. Et c'est quand nous passons le jeton d'application cul ex. Et je vérifierais si Thea pi d c'est nul ou le jeton up est none retournera un quatre ou trois. La prochaine chose qu'on va vérifier si l'application existe. Et si on n'en trouve pas, alors on retournera un 43 aussi. Et enfin, on va prendre le jeton, et ensuite on va dire s'il n'y a pas de jeton que nous avons trouvé, alors retournez le troisième étage. Ensuite, on va faire le, euh, le jeton d'accès. Ce n'est pas le même que le jeton d'application que nous avons trouvé. Ensuite, nous le rendons pour trois une houle. Et enfin, nous vérifions si le jeton est expiré. Donc, la façon de le faire est de vérifier si elle est inférieure à la journée que vous voyez maintenant. Et si c'est le cas, alors nous ne retournerons pas une chaîne vide. Mais nous ne sommes pas réellement retournés un message d'erreur avec un 43 Okay, parfait. Alors allons de l'avant et testez cela sur le sur l'APP 18. Installez bcrypt et jetons de test: Ok, la dernière leçon. Nous avons mis en place nos vues et le décorateur pour pouvoir enregistrer l'abside et également être en mesure vérifier, générer et vérifier les jetons pour l'axe. Alors maintenant, allons de l'avant et installons le tarte be crit, que nous avons utilisé pour inclure les mots de passe et ensuite mettre en place notre facteur, euh, test pour voir que tout fonctionne correctement. Alors allons-y et faisons-le. Ok, passons à un txt d'exigences. Et on va ajouter une nouvelle, hum, bibliothèque ici appelée pie be crypt, et ça va gribouiller pour, hum, et sauver ça. Alors, comment installer, hum, des bibliothèques après que le conteneur docker soit mis en place ? Eh bien, vous avez juste besoin de, hum, appelé peep installer les exigences de l'extérieur. Donc, il contre ici le conteneur commence parce qu'il n'a pas trouvé une grande crypte sur ça, un p I p y couché trois, qui serait juste ici à Port Secret. Donc, euh, on a juste besoin d'orteil pour le faire pour installer cette bibliothèque. Donc, ce que vous devez faire est que vous appelez simplement le médecin construit composé et ce que cela va le faire. Ça va reconstruire tous les conteneurs. Mais la base de données ne va pas changer vos données va en fait être conservée sans aucune modification. Et le, hum, le conteneur d'application est celui qui va installer le nouvel arrêt, mais vous verrez que ça va très vite parce qu'il n'est pas en train de générer le tout. Laissez-moi effacer l'écran pour que vous puissiez voir ça mieux, pour que Docteur puisse tirer, renverser et voir qu'il garde presque tout. Il va tout droit pour installer les exigences. Et là, tu y vas, euh, c'est fini. Donc, nous avons brochet tarte être crypte installé. Maintenant, nous pouvons aller de l'avant et courir, être à nouveau le conteneur. Alors allons de l'avant et faisons les points de terminaison du facteur. Donc nous allons créer un nouveau dossier appelé, euh, application et ce sont vous les points de fin ? Et, hum, quand un proche, ça ne sauve pas. Ok, donc la première chose qu'on va faire, c'est qu'on va poser à l'hôte local et ça va être et ah, vérifions quelle devrait être la valeur. Donc avec Post, on va dire qu'on va avoir besoin d'un secret pour Jason. Donc on va avoir un corps, euh, cru. J' ai dit que je serais Jason. Et quand j'ai i d Donc disons que c'est l'application mobile qui va y accéder. Et vous pouvez penser à l'abcès différent. Vous savez, différents types d'appareils ou si vous êtes un projecteur P I. En fait, les gens vont être un putain. Ils ressemblent à leur nom d'utilisateur et mot de passe. Donc, Donc, par exemple, dans le coffre, votre, euh, euh, e commerce, parce que c'est mieux. Peut-être que je suis un magasin de commerce électronique. C' est un c'est Petco. Donc le haut serait Petko ici, et ils devraient choisir leur propre secret. Hum, et l'autre je pense qu'ils vont choisir le secret. Donc passons un ici, et on va appeler ça, euh, euh, test m'a dit non, que pour se connecter ou générer un jeton, on va avoir le mobile et tester. Alors sauvegardons ça. Et ça va être, euh, euh, souviens-toi de ce qu'on était. Ça va aller. Je voulais juste vérifier le format. Donc nous allons sauver ce post cul, créer de nouveau, et ensuite nous allons le sauvegarder dans le dossier de l'app pet ap i. Ok, alors vérifions ici. Ça va bien, et on va poster, et ça dit qu'il n'a pas trouvé ce que je vois. Non, je crois que c'est APS. Donc, ils sont malades voit son abside. droite. Donc, je me épelle ceci, peut-être sauver cela et puis envoyer à nouveau. Impressionnant. Donc on en a environ 200, ok ? Et le résultat est correct, ce qui se passe si tout s'est bien passé, qui est juste ici. Donc nous avons généré ce ah ah ah hash passé conseil. Et Ah, et nous le plus, sauvegardons ça sur la base de données Mongo. Alors allons vérifier si c'est le cas. Donc on va aller dans Mongo DB. Donc pour que nous puissions vérifier ça, nous allons ouvrir un nouvel onglet ici, et nous allons faire quoi, Dr Sauf que je ne sors pas d'abord. Avant ça, nous devons vérifier. Mais le nom du conteneur est maintenant. Vous voyez comment, euh, ici que l'image s'appelle Betsy FBI Web, mais le nom du conteneur, c'est en fait des animaux de compagnie. AP I Web Ron 15. C' est parce que nous exécutons ceci avec des ports Web. Rappelez-vous comment nous exécutons cela avec le Web des sports de service ? On ne passe pas ici. Le nom. Donc, euh, Docker sélectionne un numéro pour nous, et je pense qu'il incrémente un par un. Donc, vous devez chuck le vérifier le nom du conteneur avant vous. Vous avez émis cette commande. Tu peux aussi le faire avec un conteneur, mais tu sais, c'est à toi de décider. Tu peux aussi le faire avec un conteneur, mais tu sais, c'est à toi de décider. mais tu sais, Donc on va le faire, docteur, sauf moi et le nom du conteneur. Et puis nous allons mettre ici la commande que nous voulons utiliser dans ce cas, nous allons faire mongo avec la base de données Mongo hôte. Donc, c'est comme ça que vous vous connecteriez à mongo db à partir du serveur d'applications. Donc si je tape ça là, on dirait que j'ai mal orthographié. Alors peut-être qu'il ne vieillit pas son hôte. Laisse-moi vérifier ça. droite. C' est l'hôte. Laisse-moi effacer la peau et son hôte comme ça. Voilà, tu y vas. Donc maintenant, nous sommes connectés à notre instance db entre go, vous pouvez montrer que les abeilles et vous avez des animaux de compagnie. Je suis là. Donc, nous utilisons c'est un P I. Et puis nous montrons des collections et vous voyez comment nous avons l'application maintenant. C' est donc notre collection up que nous avons créée à partir du point final que nous venons de faire. Donc si je le fais, ils seront debout. Trouve là, tu y vas. Donc vous voyez comment nous avons un i d qui a été généré. C' est parmi ce serait i. D. Ceci est l'application i d s mobile et le secret. Comme vous pouvez le voir ici, il est codé par la crypte B. Donc c'est parfait, parce qu'on sait que c'est un test, non ? C' est, euh c'est que le test des obséquies, mais sur la base de données, il n'est pas stocké un état des histoires, acerbique. Et c'est une bonne pratique pour toujours. Si vous avez affaire à des mots de passe ou à des choses comme ça, vous ne devriez certainement pas stocker ces choses sur du texte brut, mais utiliser une grande bibliothèque de cryptes. Impressionnant. Donc, hum, allons de l'avant et générons un jeton, et je vais laisser cette fenêtre là au cas où nous aurions besoin de vérifier autre chose. Hum, donc un nouveau point de terminaison ici, donc on va juste, euh, dupliquer ça et ça va être, euh je me souviens du point de terminaison waas. Voyons voir dans les vues. D' accord. Toking d'accès APS. Donc APS agit de l'échauffement Parfait. Et qu'avais-tu besoin de, euh, poster ? Je crois que c'était le mot de dire ici que c'était le secret et la surpitié. Donc, c'est fondamentalement la même chose. On peut passer ça comme on l'a là, mais gardons ça, euh, sauver. Et nous allons renommer ceci pour poster créer une nouvelle mise à jour parler. Impressionnant. Alors faisons ce post et voyons ce que nous obtenons. Impressionnant. Donc on en a 200, d'accord ? Et nous avons expiré 2017 générer 26 qui est un mois à partir de maintenant. Et puis le jeton est que vous i d. Et encore une fois si nous allons à notre Munger pour être et maintenant nous montrons des collections, nous verrons que nous avons maintenant accès là-bas. Et si je fais l'accès db trouver là. J' ai le i. D. L'objet i d. Oh, qui est l'accès ? Non, la clé étrangère de l'application. Correct. Et cet objet que j'appartiens ou en corrélation avec celui-ci ici. Et le jeton est du tissu. Je d et expire et voir comment il est ITS magasin sur une date I o u I s o. Parce que Munger d'être est capable de gérer cette forme il si génial. Nous avons notre génération de jetons. Et maintenant ce qu'on veut faire, c'est que pour chaque, euh, pour chaque demande, on va devoir passer le, euh, ça parle ici. Laissons ce haut ouvert. Et essayons juste de faire un maintenant obtenir de vieux animaux de compagnie et le point. Mais maintenant, on va devoir utiliser le, euh, sur les en-têtes. On va avoir besoin d'utiliser ça, tu sais, ce jeton et le haut, mais allons de l'avant et copions ça et ils obtiennent un point sur tous les animaux de compagnie . On va avoir une clé appelée X Up I D. et ça va être mobile. Et puis le jeton X up va être le jeton qu'on vient de copier et coller. Vérifions juste un instant sans passer ça et voyons ce qui s'est passé. Donc, si je possède un clic, ces en-têtes ne seront pas envoyés et nous pouvons vérifier ce qui se passe là-bas et voir que je reçois maintenant. Ah, 43 interdit. Et ça veut dire que c'est, hum, se diriger vers les décorateurs. Ce n'est pas obtenir le jeton idéal. Maintenant, voyons ce qui se passe si je passe le jour, je reçois toujours un quatre ou trois, et puis voyons si je fais le mauvais jeton. Donc, au lieu de e. à la fin, je vais juste dire f Ok, envoyez. Même chose. Je reçois un interdit. Cela signifie que, euh, vous savez, c'est en train de vérifier le dans l'application, et puis il vérifie que le, um le jeton n'est pas le même, euh, comme ils parlent que nous avons ici. Donc c'est un 43 aussi. Maintenant, enfin, c'est rapide. Le bon jeton. Ensuite, envoyez et voyez. J' ai un 200. D' accord ? Et maintenant, je vois la liste de caresser ici, comme prévu. Tellement parfait. Nous avons notre authentification, hum, couche intégrée. Et, euh, maintenant on va commencer à faire des tests pour ça. Pour cette pièce de la A P I 19. Créer les tests de l'application: Donc maintenant que nous avons notre système de jetons APS pas de système d'autorisation, continuons et construisons des tests parce que nous n'avons pas construit de test jusqu'à présent. Et ce sera un bon début d'introduction comment nous mettons ou créons des tests pour AP, yeux en général et spécifiquement pour les appartements. Le FBI, alors commençons. Ok, donc on va de l'avant et on crée les tests. Ah, ici le fichier teste B y, et je vais copier et coller, parce que c'est quelque chose que vous avez vu dans d'autres cours sur moins de cours qui ont fait, et c'est à peu près la même chose. Donc on a mis en place, euh, une usine d'applications ici. Nous avons mis en place le moteur Mongol, obtenir l'unité d'importation B, les tests, l'importation et d'autres fichiers. Et j'importe également de haut modèles arrive axe, et je reçois plus de temps pour être hôte à partir des paramètres. Ensuite, je crée mon test APP. Ah, cas de test unitaire, qui ah a généralement une méthode de création qui me permet de configurer rapidement l'application elle-même. Ensuite, je fais une configuration qui, euh, utilise juste cette méthode et crée une nouvelle application. Et puis j'ai une déchirure Ah, qui a la télé actuelle que je viens de créer et qui tombe ce que ça épique parce que, comme vous le savez, nous voulons commencer à partir de zéro à chaque test. Donc cette, hum, mise en place et déchirure vont être appelées à chaque test. Enfin, j'ai créé un dictionnaire d'application avec une ligne arrière factice et ce secret que nous allons passer aux différents ah, cas de test. Et comme vous pouvez le voir, je retourne une décharge de Jason. C' est une, um, une fonction de la bibliothèque Jason qui vous permet de créer un objet Jason à partir d'un ah, soit une chaîne, soit un, um ou dans ce cas, un dictionnaire que je crée en utilisant le python uhm ki pupille ou fonction. Donc c'est le début de tout ça. Et puis je vais commencer par le premier test, qui est le test de créateur. Ok, donc notre premier test sera le test de création d'applications, alors allons-y et faisons-le. Donc, je crée un enregistrement de base qui va utiliser le dictionnaire d'application que nous avons créé sur, euh sur, euh sur la classe elle-même. Donc, nous posons juste cela à l'abside et pointons avec les données du dictionnaire. Et c'est un très important que nous devons passer le type de contenu dans cette demande. Et ça va être la demande, Jason. Donc, l'affirmation ici va être que le code d'état est 200 ce qui signifie que l'application waas créé correctement Ok, simulons maintenant que nous avons un secret d'application manquant et vérifions qui renvoie un message d'erreur . Hum, donc on va avoir le qu'on va recréer le de l'application, euh, dictionnaire, mais on va manquer la partie secrète de tout ça. Et maintenant on va poster à l'abside et au point, et on passe le dictionnaire qui n'a pas le secret. Et enfin, nous affirmons qu'il manque le secret, et c'est le message aérien qui est transmis du A P I p. Y Perfect. D' accord. Et la dernière chose que nous allons faire, c'est si nous, euh, répétons l'enregistrement. Donc on va dire la même chose. Envoyez le même dictionnaire. Donc nous avons mis le dictionnaire ici, mis l'obligation de type de contenu, Jason, et nous devrions nous lever. J' existe déjà. Ok, alors allons de l'avant et testons ceci ou exécutez les statistiques et voyons comment cela est fait. Donc d'abord je vais sauver ça, et je devrais fermer certains de ces robinets, et je vais créer un test de niveau A. Pourquoi ? Ça va être le coureur. Et tu as vu ça, je vais le traverser rapidement. On a dit le chemin d'abord. Ensuite, nous allons importer le test unitaire, puis importer de haut le test que nous venons créer, puis exécuter des tests unitaires. Le principal. Alors, comment faire le test ? On va devoir savoir quel est le nom du docker, euh, conteneur. On va devoir savoir quel est le nom du docker, euh, Alors vérifions ça. Donc, il passe un p i Web, Ron 15. Et je vais faire le suivant Dr ex sec I t pets ap I Web run 15 qui est le nom du conteneur ici. Et je tape juste python trois tests B y. donc ça devrait fonctionner. C' est pour qu'ils voient comment ça se passe. Parfait. Nous avons donc un peu de dépréciation. Avertissement. Jason s'est séparé. Prends Jason à la place. C' est de l'intérieur de la fiole, euh, euh, paquet lui-même du travail, donc et va donc en obtenir un de Mongo Engine, ce qui est encore un avertissement de dépréciation. Mais nous voyons que nous avons un petit point ici et il a fait un test en une seconde. Donc ça marche parfaitement amusant. Tellement génial, nous avons notre premier test en cours d'exécution et maintenant continuons à travailler sur l' abcès. 20. Tests de jetons: Alors allons de l'avant et continuons à travailler sur le test. Donc maintenant, nous allons faire le test des jetons. On commence donc à faire ça. La 1ère 1 qu'on va faire c'est qu'on va tester la génération parlante. Donc, nous allons poster Tuapse en utilisant le dictionnaire AB et juste génial sont en place notre application initiale. Et la prochaine chose que nous allons faire, c'est nous allons créer un véritable jeton, et nous le faisons à travers le jeton d'accès et le point, et ensuite nous allons prendre le jeton du, euh du retour, Jason. Mais voyez, dans ce cas, nous chargeons les données qui sont renvoyées sur la valeur renvoyée sur la valeur de réponse . On l'enregistre avec le devoir si huit. Et puis on aura le jeton. Euh ah. J' ai pris la propriété ou le jeton, euh, morceau du Jason. C' est gratuit en retour. Hum, et le test ici va être qu'ils parlent. Ce n'est pas le cas. Pas ainsi. Si ce jeton est, ce n'est pas le cas, alors cela signifie que le Tess a échoué. Le prochain test que nous allons faire est que nous allons tester que si nous manquons le secret, alors nous allons vérifier que le jeton ne marche pas. Et on va aussi vérifier si le secret est incorrect. Et donc nous passons le mal, vous savez, secret et en haut ou dans le cas dans ce cas, le 1er 1 est le C'est le qu'on manque le secret. Et dans le second cas, nous manquons le ou le rapport passant A incorrect. Absolument. Donc, ce 1er 1 c'est un retour qui a manqué secret de l'Europe, et le suivant va dire des informations d'identification incorrectes. La prochaine chose que nous allons tester est de voir que le jeton fonctionne, contournant le bon jeton. Et on devrait sortir 200 là-bas. Et on va aussi tester si on a passé le mauvais jeton. Nous essayons d'obtenir les animaux de compagnie avec un jeton incorrect, donc nous devrions obtenir un quatre ou trois de cette demande. Le dernier test sera un jeton d'expiration. Donc nous allons, euh, essayer de faire un accès 31 jours à partir de maintenant et nous allons maintenant essayer avec le jeton existant , et ça va être déjà expiré. Donc on devrait parler. Expiré dans les données. Alors c'est tout. C' est tous les tests qu'ils allaient construire pour l'APP. Allons de l'avant et faisons les tests. Alors allons de l'avant et aller au terminal quand un effacer l'écran ici et rappelez-vous que vos, euh, euh, conteneurs docker devraient être en cours d'exécution à la fois e um, le Munger pour être sur l'application. Donc on va faire mal. Allez-y, Docteur. Exactement. I t animaux AP I. Weber sur 15 qui est le nom du conteneur en cours d'exécution Bison. Trois tests P. Y. Parfait. Encore une fois. Nous recevons des avertissements de dépréciation, mais rien à craindre. Ah, mais ça dit qu'il a fait deux tests en quatre secondes et que tout s'est bien passé, alors c'est ça. C' est pour ça, c'est tout pour l'abside. Et nous devrions maintenant commencer à travailler sur les magasins et pointer pour l'âme du FBI. Commençons à travailler sur ce 21. Commencer le point de fin Store: nous venons de terminer nos travaux sur l'abside et le point. Et maintenant, nous allons commencer à travailler sur le point de terminaison du magasin, qui va décrire les magasins physiques où nous allons avoir nos lits disponibles et éventuellement nous aurons un animal de compagnie assigné ou associé à ça avec ces magasins. Alors commençons à travailler sur les magasins A p I. Et bien sûr, nous commencerons avec les plans de quatre magasins. Voyons comment on fait ça. D' accord ? La première chose que nous allons à un est que nous allons créer un nouveau dossier ici appelé Animaux de compagnie. Je veux dire, magasin désolé, magasin, et nous allons créer un NPD. Pourquoi ? Pour qu'on puisse importer c'est un module téléphonique, et la prochaine chose que nous allons faire, c'est avoir une vue, B. Pourquoi ? Et on va faire quelque chose de semblable à ce qu'on a fait avant. Quels yeux pour créer le magasin un fichier p i, um, um,puis créer un Blueprint à partir de lui et ensuite stocker les vues pour, um, les magasins et le point pour le get and post pour les magasins ainsi et ainsi que nous allons activer get put and elite quatre histoires le C'est la première fois que nous allons utiliser mettre en tête. Donc ça va être assez excitant Port. Il va être utilisé pour mettre à jour les magasins et la piste sera pour le plomb dans les magasins. Permettez-moi donc de le dire pour que ce soit le point de vue. Et allons de l'avant et créons les modèles B y et il va être quelque chose de assez standard aussi . Donc on va avoir le magasin avec un extérieur, je vais avoir un quartier, une adresse de rue, un état de la ville et un code de gorgée et le numéro complet et nous allons avoir sur des index externes comme maintenant Une chose à remarquer ici est que, Dans les animaux de compagnie quand on était, on avait les animaux de compagnie. Initialement, bien sûr, nous stockons ceci à partir de la base de données, mais nous avions , comme ça I d, qui était 123 Maintenant, nous pourrions avoir X Tex tourner comme le manga pour être I D. Mais c'est vraiment pas une bonne pratique de sécurité pour exposer votre ah internalisé le votre comme Mongo db i d. ou pire encore pour ma suite, je d. donc toujours utiliser quelque chose comme ça comme un I D externe que vous allez générer. Et encore une fois, on va t'utiliser. Vous avez des idées pour ça ? Mais c'est une chose très importante, comme la sécurité que vous devriez toujours garder à l'esprit est d'avoir toujours des extra comme ceux-ci quand vous voulez, um, permettre aux gens de sélectionner ces objets. 22. La bibliothèque JSON Schema Schema: Maintenant, comme nous commençons à travailler sur l'histoire p I Une chose qui a été spécifiquement difficile pour moi waas la pièce de validation. Donc maintenant, nous avons un magasin très complexe, un modèle qui a tous ces champs, vous savez, code de rue et de siège, et des choses comme ça. Et je voulais voir comment il pouvait, hum, hum, valider ces et une approche que j'ai pensé à faire Waas en quelque sorte pirater les formes wt , même si ce ne sont pas techniquement des formes que nous validons peut-être regarder orteil leur classes de validation et hardwire que. Mais j'ai commencé, vous savez, à penser à une autre bibliothèque, que c'est joli, C'est assez utile, et ce serait un bon ajustement pour ce projet. Et je pense que c'est vraiment bon en général aussi, si vous avez, genre, genre, objets Jason et que des bibliothèques appelées, euh, Jason Schema, et nous allons prendre un rapide Regardez-le. Une chose que vous remarquerez est que Jason Schema peut être installé sur un approvisionnement de la bibliothèque . Une chose que vous remarquerez est que Jason Schema peut être installé sur un approvisionnement de la bibliothèque Et, euh, si nous regardons l'exemple ici, c'est parfait pour une validation A P I, euh um programme, parce que nous pouvons, euh, nous avons un genre très flexible comme , et nous pouvons définir, vous savez, vous savez que les choses sont des chaînes, donc elles sont comme des nombres et des choses sont nécessaires, comme vous pouvez le voir dans cet exemple. Il y a donc beaucoup d'exemples ici qu'ils traversent. Mais je vais en Corée. Exemple rapide pour nous de regarder et de vous faire découvrir le schéma Jason. Ma bibliothèque. Avant de faire quoi que ce soit, nous avons besoin d'être à l'orteil de la bibliothèque d'une exigence 60. Donc nous allons avoir Jason schéma, hum, avec cette version là-bas. Et nous devons installer ce propriétaire sur notre fille, euh , conteneur. Donc on va reconstruire les conteneurs. Laissez-moi effacer l'écran, et il installera le schéma Jason. Ma bibliothèque. Super. Donc, nous pouvons exécuter à nouveau le conteneur, et il est aller de l'avant et créer un fichier rapide ici qui le fera. Je ne le stockerais pas sur le , dépôt, mais juste pour que vous le voyez ? Donc, euh, c'est à quoi je Jason schéma ressemblerait et laisse-moi mettre ça un peu plus orteil à gauche . Hum, donc nous devons importer des intrigues de Jason, mauvaise validation. Et puis nous pouvons avoir un schéma sur un objet que nous voulons valider. Donc, dans ce cas, c'est un type d'objet, et les propriétés sont prix, nom et externe, comme le prix et le nom requis. Donc, à partir de ces champs de ces propriétés, une fois que j'ai besoin de notre prix et nom demandé là, décrit ici et remarque que nous avons un, euh, modèle parfait euh, pour vous idée. Donc nous nous attendons, vous savez, qu'ils l'entrée ou l'objet Jason ont ce format et que la façon dont nous vous , euh, vous avez , euh, euh, validé est qu'il vient d'appeler valider ? Vous avez mis l'objet. Donc c'est notre juste ici et vous le comparez avec le schéma et vous obtiendrez, euh, euh, soit un, vous savez, un succès ou un autre message. Alors allons courir ça à partir de vite, donc je vais me faire Oh, désolé, désolé, je l'ai fait. Voilà, tu y vas. J' ai une dispute sur trois, et on va dire Valle test B Y. et on va dire Valle test B Y. donc je suppose que maintenant j'ai un nom différent, non ? donc je suppose que maintenant j'ai un nom différent, 16. Désolé. Oh, c'est donc il est 16 ans maintenant. Ok, donc je n'ai reçu aucune réponse, ce qui veut dire qu'elle a validée. Mais par exemple, disons que je ne passe pas d'œufs ici et que je le sauve et que je le relance. Tu vois, je reçois ah, hum validation requise dans le schéma et, euh, et il dit l'optique du prix et du type de nom requis. Donc, fondamentalement , l' , l'erreur de validation que je peux attraper à partir de là est que le nom est une propriété obligatoire. Donc vous pouvez voir que c'est une petite bibliothèque très flexible, et nous allons l'utiliser pour un magasin en point et eso nous allons définir ce schéma pour le magasin. Voyons comment on fait ça. Alors allons de l'avant et créons nos magasins, Chema et remettons ça ici et je vais appeler ce fichier le schéma. Et voici le schéma. Donc j'ai C'est un objet de type, et puis nous avons des propriétés Neighborhood Street, adresse City State et voir comment je suis tenu que c'est un majuscule à deux lettres. C' est une expression régulière. Je crois que nous l'avons vu un peu dans le passé. Nous avons aussi un noyau de gorgées, qui est censé être cinq numéros, et nous avons aussi un téléphone qui a une sorte de code régional, puis trois chiffres , puis quatre chiffres avec des tirets entre les deux. Donc si quelque chose ne correspond pas à ces choses qui allaient avoir un air et que je dis que les anciennes propriétés sont nécessaires alors c'est, euh, ça va être le schéma que nous allons utiliser. L' autre chose que je vais utiliser ici orteil faciliter le A P I. Est le concept d'un modèle ? Alors encore ? Parce que c'est un objet si compliqué. Je ne veux pas être comme construire les objets Jason à chaque fois. Donc, ce que je vais faire, c'est que je vais créer un modèle b y avec deux fonctions. On va être cet objet de magasin que si vous passez le magasin du moteur Mongol ou l'objet db mongo, il reviendra. Tu le sais bien ? Euh, peu comme adressé ou formaté, euh, objet Jason qui a le i. D. l'état de la ville du quartier, etc. Et je peux faire n'importe quelle sorte de transformations là-bas. Et comme vous pouvez le voir, j'ai déjà une section de liens là-dedans. Donc, cela signifie que chaque fois que j'ai besoin de changer n'importe quel format Jason. Je peux le faire ici très facilement. Et aussi pour les magasins quand j'ai les magasins, magasins, comme une liste de requêtes. Je vais faire ce qui suit et ne retournerai jamais A Je vais avoir un tableau frigorifique magasins, et je vais retourner les magasins à l'utilisateur. Maintenant, une chose est que c'est un état temporaire. Je vais changer ça après. Eh bien, voyez pourquoi c'est là que nous commençons à utiliser l'imagination. Mais pour l'instant, on va vivre ça. Ah, peu comme un espace réservé pour nous retourner. Ok, donc je pense que nous sommes prêts à commencer à travailler sur le A P I spécifiquement. Alors faisons ça. 23. Le fichier API Store: Ok, maintenant que nous avons vu Jason Schema sur comment ça va être très utile pour nous de valider l'entrée de l' utilisateur ou du client sur le A P I. Maintenant, allons de l'avant et commençons à travailler sur le A p I pour les magasins. Alors commençons. Ok, alors allons de l'avant et créons le fichier A P I et nous allons, hum, faire quelques importations ici. Donc nous allons importer flasque, vue méthode, et, euh, certains des produits élaborés que nous avons vus à partir de drapeaux comme le Soleil. Si j'écris demande à bord modèle de rendu aussi vous j'ai d et Jason et ces derniers sont nouveaux en termes de off, comme nous ne les avons jamais utilisés. Donc, l'un est appelé le brouillon de schéma Jason pour le validateur, et l'autre est appelé Jason Schema point exceptions import best match, donc nous allons voir comment nous les utilisons dans un peu. Nous aurons aussi des décorateurs de théa. Ah, le haut requis ah, importer les modèles du magasin et encore, ce dernier dans un schéma de magasin. Mon schéma d'importation et les modèles de magasin, l'objet de magasin d'importation et l'objet de magasins sont un peu comme une nouvelle utilisation. Mais comme vous pouvez le dire, cela est lié aux modèles de magasin que nous avons ici. Um, où nous avons les différents modèles pour l'objet de magasins individuels et le, vous savez, l'objet de magasins pluriels. Et nous avons aussi le schéma de magasin, et nous allons importer le schéma sur. On va comparer l'entrée de déclin à ça avec le schéma. Voyons comment on fait ça. Donc, ici, on va stocker. On va être avec le magasin de classe AP I avec son décorateur. Et encore une fois, on va vérifier s'il n' y a pas de demande, Jason. Puis on est à bord du 400. Si ce n'est pas une demande get, alors on va passer par la méthode get, hum, Et s'il y a une histoire d transmise sur la méthode get, alors nous savons que nous allons retourner l'objet de magasin individuel. Donc, nous allons simplement passer le ah, la réponse comme l'objet de magasin du modèle. Sinon, on va chercher tous les magasins. Donc c'est ça d'autre là-dedans. Et puis nous allons juste, euh, retourner les magasins de la requête à l'objet magasins. Et comme nous l'avons déjà dit, c'est un peu comme un processus de travail, mais nous allons juste retourner ces, euh ces résultats d'une manière très linéaire. Mais fera un meilleur travail de cela lorsque nous faisons la pagination, ce qui est quelque chose que nous avons vraiment besoin d'utiliser sur les yeux AP. Mais n'importe quel cas nous avons si il y a un magasin i d. Nous obtenons cette histoire d Si nous obtenons le magasin, nous retournons que Jason, si je réponds, ce qui est le résultat est correct, et puis l'histoire elle-même est l'objet de magasin à partir du modèle qui sera cette chose ici et ah autre nous étions pierre un 44 ce qui signifie que nous ne faisons pas avec eux trouver que cette histoire t autrement, nous si ils donnent à obtenir et ce sont des magasins parce que ce n'est pas sur une histoire Le passé de swing, ils ont été retournés tous les magasins. Voyons maintenant ce que nous faisons avec la Poste et la Poste. On va récupérer le magasin Jason de la demande, Jason. magasin Jason de la demande, Et ici, nous utilisons cette nouvelle méthode appelée l'erreur. Ah, meilleure chute de match pour ce validateur. Et ça va juste, hum ah, ça va revenir toutes les erreurs que nous obtenons de la comparaison de ce schéma avec l'histoire de Jason qui est dans l'impasse pour nous. Et s'il y a un air, alors retournera un message étroit avec le message d'erreur que le validateur de schéma qu'il passe avec un 400. Sinon, les choses sont bonnes. Donc nous allons créer un objet de magasin avec le nous allons créer un I D. Um externe , nous allons juste stocker l'adresse réelle du quartier ville, état, zip et téléphone qui a été transmis sur la demande. Ensuite, on a sauvé ça. Et puis nous retournons à la réponse avec l'objet de magasin, qui, encore une fois, est le modèle et le magasin, Um, que nous venons d'enregistrer sur la base de données mongo et retourné un deux un, ce qui, comme vous vous en souvenez peut-être, signifie que le message a réussi et a renvoyé le contenu à l'utilisateur. Donc, euh, cette chose ici, bien sûr, étant la nouvelle chose. Ah, c'est vous savez, vous pouvez enquêter un peu plus sur quoi ? C' est, euh, ce que tout ce genre de genre est impliqué. Mais c'est à peu près nous l'utilisons de la même façon à chaque fois. Donc, vous pouvez juste utiliser cette copie et coller ceci et vous venez juste de rapide, um l'entrée du client, l'objet Jason dans cette erreur analphabète um, méthode qui, um qui va passer par les erreurs si le, um si le, vous savez que le modèle Jason Schema ne correspondait pas à celui qu'ils utilisent différents passages. Alors c'est ça. Et nous allons créer juste des entrées fictives pour le put et l'élite, qui seront mises en œuvre plus tard. Donc c'est le A P I. B y. Jolie, assez simple. Pas trop compliqué. Et alors allons de l'avant et essayons ça. 24. Tester le point de fin du magasin: Ok, alors allons-y et testons ça. Nous allons créer un nouveau dossier ici, froid, froid, heu, magasin. Et je vais cloner celui du poste ici, les animaux de la poste et le point et le mettre ici dans le magasin. Renommons ceci, et il va être posé magasin, ou plutôt, se vanter, créer magasin. D' accord. Et dans ce que nous avons nous avons les en-têtes. Hum, nous devons ajouter l'application dans le, euh, ouais, j'ai ça ici. J' aurais dû copier ceci. Peut-être, mais nous avons l'étape X vers le haut , alors créons ce mélange. Je le suis et c'est mobile. Et puis le X. secret. Oh, non, ça parle, bon jeton. Et je crois que nous avons toujours le même signe. Mais sinon, le monde en générera un nouveau. Ils l'ont mis ici. Où est-ce que ça va ? Voilà, tu y vas. D' accord. Et ça va être une publication de type contenu. Jason. Et là, je dois mettre le téléphone du quartier tout ce champ, donc je vais peut-être copier et coller ça. Et, euh, c'est un peu pour le quartier si. Je vais dire, hum, hum, point de fac dans l'adresse de la rue. Ça va être 1234 Main Street et la ville. Ça va être, euh, euh, Bronx. L' état sera New York et le code de la ville une fois ici, 33 et le téléphone 718453 à 3 à 32 OK, donc il va être posté au magasin. Et donc tu as Jason. Cela a l'air bien après les en-têtes et tout. Voyons si on peut faire ça ici. C' est en cours d'exécution. Nous avons notre base de données Mongo pour tester ça. Ok, alors allons-y et mettons Laisse-moi sauver ça super et envoyer, euh, parce que tu es un n'a pas été trouvé sur le serveur. Voyons donc avoir les vues ici. Oh, c'est des magasins. Euh, là, vous allez en sécurité et ensuite envoyé encore Oh, mon Dieu. Mettez stocké. Ok, sécurité et la troisième fois est un charme. Pas de supplément. Soyez des magasins hôtes locaux. ai un 440 que je connais. Je pense que j'ai manqué une étape ici, qui est d'ajouter les plans Correcto. Alors voyons les plans ici. Ça va venir d'oups. Donc, à partir des vues de magasin, importer magasin de haut en haut enregistrer ci-dessous l'application de magasin d'impression. Très bien. J' ai sauvé ça. Nous avons démarré le serveur, mais il a commencé. Et essayons encore. Oh, j'ai un droit. Je mets un coma supplémentaire ici. Il est dit, attendre la propriété, nommer, joindre des guillemets doubles, ligne huit. C' est ce genre de me pointer vers la sorte que l'air envoie donc. Et voilà. Nous avons notre premier magasin. J' ai un 21 créé. J' ai le résultat. Ok, Store City, Bronx. Voici l'idée qui a été générée. Et, euh, tout a l'air très bien. Génial. Alors faisons un autre. Et celui-là, on va faire un get. Alors dupliquons ceci. Tu allais l'appeler, faire un magasin individuel et mettre à jour. Ah, voyons voir. Donc, il est un magasin get. J' ai les Chapeliers là-bas. Donc ils devraient travailler quand on dit ça et ensuite envoyer, euh, je ne reçois pas de magasins, je pense que c'est peut-être que je ne suis pas, hum maintenant c'est obtenir tous les magasins correctement, donc cela serait déclaré que obtenir tous les magasins. Je pense que c'est parce que nous avons Nous n'avons pas vraiment, hum, activé qui revenaient juste, vous savez, une chaîne vide. Mais essayons un magasin spécifique qui est que quand nous venons de créer um et je pense que j'ai perdu le I d là. Mais on peut le vérifier sur la base de données. Donc montrer les abeilles utilisent des paris, un p je montre collections. Donc je vais trouver Devi magasin, et j'ai le jeton là-bas. Euh, hein. Donc je vais chercher le magasin individuel. Donc, dupliquons cela, éditons, obtenons une mise à jour individuelle du magasin, et puis je vais faire des magasins et le i d spécifique. Je n'ai pas besoin de passer une barre oblique de fin là-bas parce que c'est un peu comme individuelle. Ce n'est pas comme un dossier, pour ainsi dire. Alors sauvegardons ça et envoyons le parfait. Donc j'ai le Vous savez, les démarreurs aujourd'hui je d Il y a la référence h Air pour moi, et ça a l'air bien. Si parfait. Cet Assad fonctionne bien. Maintenant, nous allons travailler sur la mise en tête rapidement, et ensuite nous allons mettre en œuvre pour de vrai voit celui-ci. Les magasins Guettel 25. Mettre en œuvre PUT et SUPposer: OK pour cette vidéo, nous allons implémenter le put et l'élite pour le point de terminaison du magasin avant de le faire. Comme je l'ai dit plusieurs fois, nous ne supprimons plus les choses. Dans la pratique générale quand on l'a, c'est un drapeau qu'on nous a dit, hum ah, des lingots qui sont soit dans une vie, soit, euh tu peux dire publiés ou quel que soit le cas. Mais nous ne supprimons pas les enregistrements parce que ces jours-ci le stockage est si bon marché qu'il ne fait pas beaucoup de sens, vous savez, les choses de tête, et vous avez toujours un genre historique de version comme hors de ce qui s'est passé. Vous ne perdez aucune donnée. Donc, la façon dont je vais implémenter la fonction de suppression ici est que je vais ajouter un champ appelé Live et ça va être un lingot et le champ D V sera L. et la faute est vraie. Donc quand nous avons créé par défaut, c'est vrai et nous allons avoir le Nous allons ajouter de la vie à l'index que nous avons ici parce que nous allons chercher des choses qui sont vous savez, ce public I d ou extérieurement la fin que le drapeau de vie est est est vrai. Donc avec ce changement, nous pouvons maintenant aller de l'avant et faire un peu des modifications à l'histoire ah P. I, euh donc on va ici, nous devons maintenant vérifier si la demande est, euh, nous pouvons maintenant aller de l'avant et faire un peu des modifications à l'histoire ah P. I, euh donc on va ici, nous devons maintenant vérifier si la demande est, euh, n'est pas obtenir ou ce n'est pas l'élite parce que ces deux méthodes ne vont pas avoir une charge utile, euh, ou Jason, Um, données là-bas. Donc nous allons dire si, um, um, méthode des enregistrements n'est pas obtenir et nous pourrions demander méthode n'est pas l'élite. Et, euh, et n'a pas demandé Jason dans environ 400. Cela signifie que la suppression n'est pas Nous n'attendons aucune requête ou Jason là-dedans. L' autre chose est, maintenant on va chercher l'extérieur comme l'histoire égale d'Onda. Nous allons avoir la vie égale à Vrai, parce que de cette façon étaient, vous savez, juste obtenir si les magasins sont vivants et la même chose avec les objets de magasins, tout ce que nous allons dire maintenant les objets de magasin filtrer la vie est vrai génial. Cela nous laisse donc maintenant à créer les méthodes put et élite juste ici. Donc encore que donc la méthode put va être très similaire au post, parce que rappelez-vous, parce que rappelez-vous, mettre est sur, hum, hum, à jour l'enregistrement. Et donc on va aller s'adapter à tous les, um, tous les champs qui sont en train de demander Jason. Et rappelez-vous que mettre c'est s'attendre à ce que tous les champs battus soient passés là où nous ne pouvons pas passer. Asseyez-vous dans votre quartier ou quelque chose comme ça. Donc on va passer un magasin, et la première chose est de vérifier si ce magasin existe. Si elle n'existe pas, alors on fait un pour un quatre. Ensuite, on va faire la même chose avec le validateur Jason et faire valider ça. Et sinon, alors nous retournons une erreur 400, et là nous allons juste avoir une liste de tous les champs et enregistrer ça. Donc, dans ce cas, ce n'est pas un coffre-fort. C' est vraiment une mise à jour. Mais c'est, vous savez, parmi les à être, vous savez, nous allons faire en sécurité, ce qui est la même masse que le, hum a demandé le ah, comme le nous a sauvé un nouveau. Ok, c'est le truc assez simple, et il a essayé de prendre la tête maintenant, donc l'élite sera la suivante. On va chercher le magasin I D et on vérifie que le magasin existe. Et si ce n'est pas le cas, alors nous retournons un 44 Puits, le sage nous avons juste mis la vie du magasin à faux sauver. Et en retour, une réponse de deux ou quatre, ce qui signifie que nous ne retournions aucune information. Mais, euh, nous confirmons que l'opération a bel et bien eu lieu. Essayons de faire ces choses du côté du facteur. D' accord ? La 1ère 1 qu'on va faire c'est qu'on va faire un put, ce qui va être très similaire à leurs messages. Alors allons de l'avant et dupliquons cela, et nous allons éditer ceci pour être mis à jour magasin. D' accord. Et là, on va avoir une fonction de mise. On va passer la même chose, sauf que je suis dans le jeton et dans le corps. On peut changer tout ce qu'on veut. Alors disons ça alors voyons. Changeons. Hum, disons que le quartier, au lieu de ça. Oh, attendez. Et vous devez passer le magasin réel. Je sais que tu vas y aller, Toby. Modifier ? Non, sauve ça. Disons que le quartier est maintenant, c'est une sensation de Bronx. Ok, Donc le serveur reçu est en cours d'exécution ici Perfect. Ça a l'air bien. Et envoyons cette demande et j'obtiens un 44 Maintenant, la raison de se lever pour un quatre est parce que nous vous souvenons que nous avons ajouté un nouveau champ appelé Life ici et nous avons également ajouté à cela aux index et les enregistrements existants n'ont pas cette vie champ. Alors c'est ah, quand ça, um cet enregistrement des idées de magasin recherchées dans le FBI et il a les hum, a ça, comme des cornichons en premier. C' est en gros tomber au 44 parce que ce n'est pas de trouver un magasin qui a la vie égale vraie, parce que ce record n'a pas ce domaine de vie. Donc, la façon la plus simple de le faire est de laisser tomber puisque nous sommes dans un environnement de développement, juste de supprimer la collection et de créer un nouveau magasin. À partir de ce moment, si vous, vous savez, finissez dans la situation où vous avez déjà, euh qui sont base et que vous voulez faire une migration avec de nouveaux champs, vous devez écrire une sorte de script qui lit tous les champs. Et c'est que le nouveau champ et ensuite l'index, ce truc donc c'est un peu plus compliqué. Mais comme nous ne stockons pas vraiment quelque chose de valeur ici, nous allons juste de l'avant et abandonnons la collection. Donc pour faire ça, on va aller à la base de données et on va dire, tu sais , utiliser des paris. si Etsion voit les collections, on verra le magasin B tomber. Et maintenant on ne devrait plus avoir cette collection. Alors maintenant, quand ? Lorsque le nouvel enregistrement est créé, il aura le champ de vie et sera des index correctement. Alors faisons un post à nouveau ici avec spécifique, euh, nous avons le même magasin que nous avons avant. Envoyez-nous ça et nous avons un nouveau I D. Et maintenant, nous allons essayer de mettre à Et maintenant, nous allons essayer de mettre à jour ce magasin avec la sensation du Bronx, laissez-moi essayer de faire l'entrée dans le grand magasin. jour ce magasin avec la sensation du Bronx, Nous allons utiliser le I d. ici et je reçois le magasin parfaitement bien là-bas. Et maintenant mettons à jour cette ascendance. On a un point de fac ici. Allez au Bronx, sentez-vous maintenant, alors gardons de la place et envoyons ensuite. Et maintenant, je reçois la bonne mise à jour ici avec 200. Hum, et c'est le, euh je dois dire que je comprends, j'arrive à 200 ans. Hum, et enfin, je vais essayer la fonction de suppression. Donc je vais juste cloner celui-ci et à lui, le magasin individuel d'élite, et nous allons faire les pistes ici, et c'est la même chose que je suis ici, 65 un droit. Alors sauvegardons ça. Et on va envoyer et je ne peux me permettre aucun contenu, ce qui veut dire que l'opération a eu lieu. Si j'essaie maintenant d'obtenir ce magasin, je reçois un pour tous pour pas trouvé. Mais dans la base de données, vous devriez toujours voir que, euh, cet enregistrement là-bas, mais nous avons la vie égale tombe. 26. Mettre en œuvre la pagination sur GET tous les magasins: Donc, dans cette leçon, nous allons implémenter la pagination pour le magasin, obtenir le point de terminaison, et vous devriez toujours retourner les résultats paginés. Lorsque vous obtenez quand vous allez obtenir cela impliquera une liste d'éléments ou d' objets. Hum, c'est juste que, vous savez, la meilleure pratique pour obtenir une liste d'objets est d'agrandir huit. Et c'est toujours mieux pour moi, pas de serveurs, évolutivité, et pour le client d'être en mesure de côté quelle page qui a déclenché cette requête a dit qu'il allait obtenir alors voyons comment implémenter cela. Ok, donc pour que nous puissions implémenter la pagination dont nous allons avoir besoin, nous allons utiliser la méthode de pagination ou démarrer fonctionnellement le moteur Mongo fournit. Et donc on va définir une constante ici, et on va l'appeler magasins par page. Et quand j'ai dit ça à 10, alors je vais dire, pour chaque coup, on va avoir 10 magasins et ensuite, tu sais, bien, bien, paginé à travers ça, alors je vais avoir, euh, à l'arrivée pour tous les magasins, je vais obtenir ce, euh,ce euh, sont des objets de magasin, filtrer la vie est égale à vrai. Et, hum, on va passer un paramètre de page sur l'euro qu'on va obtenir, puis Pagine 8 en utilisant cette page et les magasins pour la page. Alors faisons ça. Donc c'est la demande que nous allons passer et ensuite stocke égaux magasins. Cette page paginée équivaut à la base que nous dépassons. Et comme vous pouvez le voir ici, si vous n'en obtenez pas, alors nous allons par défaut orteil un et ensuite par page sera la constante que nous avions dans le haut ils pensent que nous allons faire est que nous allons insérer un lien auto-HR 8 ref vers, Tu sais, le soutien, haine doit. Et nous allons dire que c'est une page une page spécifique. Donc, nous allons dire, um, liens, et nous allons avoir l'espace de stockage HF h ref égal à pourcentage de page s. Et ceux-ci, euh, ça correspondra à la page qui était sur ce qui est transmis sur la demande ici. Comme ça on peut dire que cet ensemble appartient à une page spécifique et je pense qu' on va le faire aussi pour qu'il soit haineux. Comme ça on peut dire que cet ensemble appartient à une page spécifique et je pense qu' La plainte est qu'on va dire comment on arrive à la page précédente ? Et comment on arrive à la page suivante ? Donc le client sait comment orteil Pagine huit. Alors que nous allions faire c'est ce qui suit que nous allons avoir si les magasins ont précédent et , comme vous le savez, a déjà dit, un peu comme un fonctionnaire que la pagination sur le moteur mongol a et nous allons souffrir orteil la section des liens de réponse Ah, la page précédente. Et aussi, si les magasins ont le prochain, alors on va changer les magasins suivants. Um, ce qui est encore une fois c'est une fonction hors du moteur ah off Mongo a pré numéro bref et numéro suivant comme partie de leur de la pagination de notre système si cool. Donc nous allons avoir un Non seulement nous allons voir ce qu'est la page actuelle, mais nous allons dire au client, Hey, Hey, et si vous voulez obtenir le prochain set ou l'ensemble précédent, alors vous pouvez frapper ça juste ici. Alors sauvegardons ce fichier et la dernière chose qu'on va faire, ça va modifier les modèles. Et comme je vous l'ai dit, c'était un peu comme un espace réservé. On va remplacer ça par ce qui suit, on va avoir un objet de magasin, et ensuite on va le bludgeonner à travers les articles du magasin. Et je devrais connaître les articles de magasin. Est-ce que la pagination est un jeu de requête similaire ou la page avec les 10 résultats ou n'importe quel magasin par page que nous avons ? Euh, un peu comme identifié. Et puis on va changer l'objet du magasin. Et comme vous pouvez le voir, c'est ce qui fait référence, se référant à Sing this. Donc, où nous avons un moyen très évolutif de réutiliser cela, a demandé le résultat individuel pour chaque objet et finalement retournera le sujet du magasin, qui va être cette liste des objets qui sont des optiques de magasin. Donc c'est à peu près tout, euh Voyons comment on peut avoir les magasins. Et ah, juste pour que vous sachiez, j'ai j' mis en place ou inséré un tas de dossiers. Donc si tu frappes bien Devi magasin. Maintenant, je dois vous mettre des spécifications. A B J'ai de un tasdedisques pour que nous puissions mieux voir la pagination. Donc, en fait, est-ce que je crois que 20 quelque chose stocke des magasins fictifs que j'ai créés ? Allons donc facteur et voyons si la pagination fonctionne. Donc, euh, le service en cours d'exécution semble que tout est une bonne chose. Donc on va aller de l'avant et avoir des magasins plus anciens ici, alors je vais envoyer, et voilà. Donc nous avons un 200. D' accord. Et comme nous pouvons le voir, vous avez des liens. J' ai un moi, qui est la première page. Donc ce sera ph. Un sur le plateau. Et puis j'ai un prochain piège, qui est des spates, aussi. Alors ça dit des résultats. D' accord. Et puis je vois les magasins ici, euh, et si vous, vous savez, vous savez, comptez qu'il devrait y en avoir 10 dans les magasins, donc ça a l'air bien. Alors comment on va à la porte voisine ? Eh bien, on devrait une page vers ici. Hum, et je peux juste le mettre ici. La page est égale à deux. Envoyez et voyez. Maintenant, je reçois un moi, qui est la page 2. Je reçois un précédent, qui est l'espace un et le suivant, qui est la page trois. Et encore, encore. Vous savez, les 10 magasins suivants. Hum, remarque comment savez-vous que les quatre argent sont l'objet de magasins ISA que nous avons sur notre modèle, qui a le moi et toutes les choses là-dedans. Donc je dois dire, ça a l'air cool. Et enfin, page 3. Cela a seulement précédemment n'a pas suivante parce que nous avons seulement 23 magasins. Donc ici on ne voit que, Ah, je pense que ce sont les restaurations. 12 Oui, trois magasins. Tellement génial. Ça a l'air vraiment sympa. C' est un jeu de résultats très professionnel et la pagination, comme je l'ai dit, devrait être la méthode ou vous utilisez quand vous avez, vous savez, n' importe quelle liste hors objet que vous allez retourner au client. Alors c'est ça. Continuons, euh, parce que nous avons besoin de quelques tests pour cela pour l'application du magasin, alors commençons à le faire. 27. Tests de stockage: dans cette leçon. Nous allons mettre en œuvre les tests pour les magasins et le point, et nous allons commencer à utiliser quelque chose de complètement nouveau que nous n'avons utilisé dans aucun des tribunaux a jusqu'à présent, à savoir les appareils. Ainsi, les fonctionnalités les considèrent comme des données que vous pouvez stocker vous-même, votre référentiel réel qui contient des données orageuses que vous pouvez ensuite charger dynamiquement dans vos tests afin que vous puissiez tester des choses comme, par exemple, nous sommes va l'utiliser pour la pagination. Donc, au lieu vous créer comme code toe assez utiliser, comme vous le savez, 23 histoires comme celle qu'ils que j'ai maintenant, vous créez réellement ces fichiers appelés luminaires et puis quand ? Lorsque les tests, je cours ces images, je suis chargé orteil la base de données factice, et puis vous pouvez faire des opérations sur eux. Voyons comment on fait ça. J' ai donc déjà chargé les tests du référentiel, et vous pouvez, bien sûr, voir le qu'ils vous appellent sur le lien que je fournit. Mais, euh, j'ai juste besoin d'un oeil comme aller et taper tous ces trucs à partir de zéro parce que ça va être des choses que tu as déjà vues. Alors passons vite à travers eux. On a un test de magasin où on fait une sieste. Nous l'avons mis en place comme un social et déchirer vers le bas. On a un autre dictionnaire de directeur qui va être une ligne d'animaux, secret pour animaux de compagnie. Et c'est un peu nouveau. Nous faisons un dictionnaire stocké où nous avons un peu comme un échantillon à, ah magasin objet que nous allons utiliser encore et encore. Et, euh, on va aussi être créé quelque chose. Um, une méthode que je pense avoir beaucoup utilisée qui est de créer l'application a p i. Donc, j'aime juste poster à l'abside avec l'application, le dictionnaire d'application que nous avons ici sur le dessus et ainsi que générer un jeton d' accès dont nous avons besoin en quelque sorte. Donc, j'aime juste supposé le jeton d'accès avec l'objet vers le dictionnaire, puis stocke qu'Assad est une propriété pour le vieux jeton auto classique que je peux réutiliser ensuite. Et enfin, une chose que nous n'avons pas vue dans le passé est d'avoir une méthode d'en-têtes. Onda encore une fois, ceci est de rendre les choses plus faciles pour le pour l'accès hors de chaque demande car il nécessite que nous avons passé le pari aligné et le jeton. Donc c'est comme des fonctions d'aide que nous allons utiliser. Donc ah, le premier, um, magasin de tests. Euh , la batterie de test va être Ah, jolie. Aussi assez simple. Nous avons donc créé une application P I en utilisant cette méthode que nous décrivons ci-dessus et générons un jeton d'accès . Maintenant, dans ce, à ce stade, nous avons l'auto-parler disponible, et ensuite nous allons créer un magasin. Donc, euh, remarquez comment nous avons, um les Heathers sont égaux à des en-têtes de soi, ce qui est ce mythe que nous avons ici en haut. Et maintenant, vous pouvez voir pourquoi je l'ai fait. Ah, une fonction parce qu'on va l'utiliser encore et encore. Donc, ici, nous créons un magasin. Nous avons passé le dictionnaire douloureux et nous vérifions que nous avons un 21 qui est créé, et nous avons aussi récupéré le magasin I d du Jason. C' est le retour afin que nous puissions l'utiliser à nouveau après. Alors nous pouvons tester l'obtention d'un magasin en utilisant ce magasin I D et que vous obtenez un 200 nous pouvons également éditer le magasin. Et ici, je suis passé, comme un autre genre d'objet de magasin comme. Et puis je mets le comme vous pouvez le voir ici, J'ai mis amusant. Hum, donc les magasins et le point, puis j'ai vérifié que le nouveau téléphone que j'ai passé ici est stocké sur cet objet. Et enfin, je teste la tête. Donc, vous savez, je viens d'aller de l'avant et supprimer ce magasin que j'ai servi que je reçois un à un quatre, et puis je reçois aussi, hum, faire aquarium Mongo db pour voir si le si le compte des magasins qui sont la vie devient faux est égal à un. Donc tout ce qui est gentil. Pas trop surprenant. Et je pense, vous savez, encore une fois, vous pouvez le voir en détail quand vous ne connaissez pas le code du dépôt . Voilà où les choses deviennent intéressantes. Je vais avoir un, euh un message que je vais pouvoir, um accès depuis les étapes, et je vais le placer sur l'application. Être pourquoi ? Parce que c'est un peu lié à l'application. Hum, donc ici à la fin. Je vais faire ce qui suit. Je vais définir un appareil, euh, euh, méthode et ce qu'il fait, Il tire parti de l'importation de manga avec, hum, qui est une commande que Mongol TV fournit. Et en gros, vous pouvez définir Ah, hôte, qui est planqué h. Vous trouvez la base de données, qui est que Dash d Um, vous avez passé le tiret C, qui est le, ah, que ce qui va être Où allez-vous importer ce fichier ? Et puis on a un appareil, qui est un fichier Jason, qu'on va passer ça à un dysfonctionnement. Et puis nous avons utilisé la commande call, qui est un python comme bas niveau, um, peu comme une méthode qui vous permet d'exécuter, vous savez, commandes shell dans un script python. Maintenant, pour cela, j'ai besoin d'ajouter une bibliothèque ici appelée So process. Donc, quand je dis que c'est à partir d'une importation de processus cool. Et, euh, j'ai aussi besoin que je crois que les os, euh Voyons, pas seulement là , Wes, j'ai besoin d'aller nous accueillir. Je vais importer ça du réglage. Donc, de l'importation d'économies Mongol O d hôte B. Ok, je ne pense pas avoir besoin d'autre chose ici. Alors gardons ça, alors l'autre chose qu'on va faire, c'est qu'on va créer un, hum ils ah, des appareils dans les magasins. Alors gardons ça, alors l'autre chose qu' on va faire, c'est qu'on va créer un, hum ils ah , des appareils Dans le magasin. Léger répertoire. Mais donc je typiquement et vous en tant que développeur professionnel, vous verrez cela. Vous créez généralement un dossier dans votre application appelé fixtures. Et à l'intérieur, tu auras un nouveau dossier, et ensuite, tu sais, ça va être des magasins, pas Jason. Donc ici, on va mettre tous les objets Jason. Et là, voyez-vous, il y a 23 magasins à l'intérieur. Ils vont sauver ça. Et puis la prochaine chose est de faire le test lui-même et d'ajouter cette fonctionnalité. Donc on va aller au test, et ensuite on va dire, de l' importation de l'application, euh, fixtures. Ok, alors voyons comment on utilise Thea les photos sur ce test que nous allons faire pour la pagination pour créer cette méthode et ça s'appellera test, um, um, pagination de magasin. Et donc nous allons faire le créé A p I up et générer jeton d'accès et voir comment nous faisons maintenant les fonctionnalités de l'application. Donc nous sommes qu'ils trouvent que les DVD sont un nom de DB qui est ici, tout le chemin sur le dessus, et nous allons avoir la collection est un magasin, et puis le luminaire est et vous pouvez juste ah, euh, mettre le à partir du magasin de luminaires de magasin de niveau supérieur. Jason. Donc, à partir de ce point, après avoir exécuté cette commande, tout ce qui est tous ces magasins seront disponibles pour nous sur les tests, donc pour exécuter des tests sur. Donc c'est un gros gain de temps. Et c'est, vous savez, relâchez-le pour créer un test Maintenant qui va tester la pagination. Alors écrivons ça. Donc d'abord je vais faire je reçois de vieux magasins donc je ne reçois pas avec des en-têtes sur le type de contenu, et puis je vais affirmer que la moitié suivante dans les données de RV Pourquoi puis-je savoir que je fais va Il doit être là parce que j'ai plus d'une page et donc qu'il serait un bon que vous savez, je teste correctement la, um, la pagination là-bas, donc les prochains tests seraient obtenir la deuxième page, donc je vais passer la page égale à deux après les en-têtes et le contenu type. Et puis je devrais avoir précédent dans le est les données RV ainsi. C' est le prochain parce que je suis au milieu de cette pagination. Alors, euh, étaler c'est à peu près tout. Je veux dire, tu peux venir avec d'autres tests. Je pense que c'est plutôt bon. Alors disons ça. Et enfin, nous devons ajouter notre nouveau test ici sur test. Donc nous allons dire d'après les tests de magasin, test d'importation de magasin. Ok, enfin, nous devons faire le test, alors assurez-vous que vous avez vos, hum, vos conteneurs devant. Je vais le faire ici sur la fenêtre de la base de données manga. Donc je vais dire docker exact tiret i t je n'ai pas regardé le docker ps o quoi ? Ce um docker ps Donc il est animaux de compagnie ap I Web Ron 18 et puis je vais dire par téléphone trois tests p y parfait. Donc, cela fonctionne bien, remarqué que nous avons un connecté à mongo DB et puis il dit, importé 23 objets. Ça vient de l'importation mongole, hum ah, commande. Mais comme vous pouvez le voir, vous savez, nous faisons tous les tests et tout semble bien. Donc c'est réglé pour les magasins. Et la prochaine pièce sur laquelle on va travailler est le point final des animaux de compagnie. 28. CRD initial du PET Endpoint: Ok, maintenant que nous avons nos points de terminaison, nous ne allons pas retourner aux animaux de compagnie et pointer. Et comme vous vous en souvenez, c'était un test très semblable en mémoire. Une sorte de, Ah, liste que nous avions là-dedans, et nous ne allons pas en faire un bon genre de point de terminaison comme les paris avec le modèle de base et les tests et tout ça. Alors commençons à travailler là-dessus. D' accord ? Donc vous pouvez voir ici que nous avons les animaux de compagnie, FBI tel qu'il est aujourd'hui, et, vous savez, c'est une liste d'objets et d'entrer dans le poste. On est un peu comme manipuler cette liste. Et bien sûr, on ne voudrait pas le faire avant d'y arriver . Euh, là. Donc tu sais que cette vue B y va bien marcher. La seule chose que je vais changer ici, c'est au lieu d'être une fin ici, rappelez-vous que nous allons avoir un I D. Um externe , comme les magasins. Um externalité. Donc on va faire ça ? Pas de résident, mais je vois juste un paramètre simple qui va être comme une force. Pas de résident, Donc c'est le seul changement que nous allons faire dans les vues. Euh, et avant de travailler sur le A p, je vais faire, euh, mettre en euh, place les modèles que nous allons utiliser ici. Donc, nous allons utiliser le modèle suivant si important db de l'application. On va utiliser les modèles de magasin ici parce qu'on a une clé étrangère, mais le modèle de lit aura jamais sur l'extérieur, comme un nom d'espèce. Une race et vieillir le magasin où se trouve cet animal de compagnie, on va avoir un prix. Une race et vieillir le magasin où se trouve cet animal de compagnie, Sauf si vous pouvez dire que c'est un champ décimal. On va avoir un lingot vendu, ce qui veut dire que s'il est vrai qu'il a déjà été vendu, on aura une date de réception, la date à laquelle le pari est entré dans le magasin. On aura une date vendue, c'est-à-dire la date à laquelle l'animal a été vendu et ils vont avoir des lingots de vie, ce qui est comme on l'a vu. C' est le genre de notre opération de suppression qui va affecter ça, mais nous n'allons pas effacer les animaux de compagnie. L' autre chose est sur les index. J' en ai plus dans les six index ici parce que je vais faire des recherches qui vont être un peu plus complexes. Le 1er 1 va avoir une idée extérieure dans la vie qui sera applicable. Quand je cherche un animal de compagnie spécifique, alors je vais avoir une espèce et une vie, ce qui est que nous allons utiliser quand nous chercherons une espèce spécifique. Onda. En fait, maintenant que j'y pense, nous allons aussi avoir besoin de race ici dans cet index parce que je vais chercher ah, tu sais, espèces. C' est comme un chien ou un chat et la race est un peu comme quel type de chien, comme, c'est un multi-Zohra Sheets qui, hum et moi, on allait faire, genre, des recherches sur tout l'animal que je base Ah, en utilisant ces deux champs. Et enfin, on va avoir un magasin parce qu'on va chercher les animaux de compagnie que ce magasin a. Donc c'est ses mannequins, et ça a l'air bien. Alors commençons à travailler sur le A p I. Donc il y a, ah, peu de levier que nous allons utiliser ici. On va avoir Jason Schema pour le plan de validation. Hum, on va t'utiliser. Je suis pour la Xterra. Lady on. On va utiliser Jason aussi bien que le jour. Nous allons aussi utiliser, euh, euh, le schéma de pari que nous allons construire et un modèle d'animal de compagnie dans ceci et ceci un p i et nous allons aussi utiliser les modèles de magasin quand nous retournerons les détails de l'animal de compagnie. On va en gros, euh, tu sais, imprimer le magasin. Hum, donc c'est ça. Commençons à travailler sur la vraie, euh, voyons ici sur la vraie classe Perry p I, et la première chose que nous allons définir est une méthode innit. Donc nous allons avoir, euh, les animaux par page, tout comme la pagination que nous avions sur les magasins et les roues vont vérifier si la méthode de demande n'est pas égale à obtenir. Et la demande Jason est, hum, elle n'est pas réglée. Alors on sera à bord sans 400. Et je veux ajouter ça parce que , , si si on passe la piste, on ne passe pas une demande, Jason, non plus. Donc, et je pense que nous l'avons vu aussi. Donc, nous allons réellement faire ce qui suit une méthode de requête. Ce n'est pas obtenir et la méthode de requête n'est pas supprimée. Et on n'a pas besoin de demander Jason qu'un pauvre 400. Ok, donc on va travailler sur l'animal de compagnie, euh, sur le chemin ici. Donc on va faire ce qui suit. Donc, je vais sortir ça, et je vais dire si une lumière est passée, alors animal est égal à des objets de pari qui filtrent externe payé je d égale mauvaise idée et la vie cornichons . Vrai. Renvoie le premier objet. S' il y a un coup, renvoyez la réponse, ce qui sera un résultat, accord. Et puis l'objet que nous allons définir sur ce modèle sur lequel nous allons travailler dans un peu, euh puis finalement retourné ce responsable 200 sinon retourné un 400. Ok, hum, laisse-moi aussi juste passer ici pour qu'on sache qu'on va travailler sur celui-là après. Et commençons à travailler sur ces modèles. Donc la première chose sur laquelle on va travailler, c'est la clé de thèse. Peut-être pourquoi, pour les animaux de compagnie et c'est à ça que ça ressemble. Um, ça va être un nom d'objet type va être une chaîne suspecte, éleveur de chaînes. L' âge de la chaîne est un nombre, puis le magasin est une chaîne prix une chaîne. Et pourquoi les prix chaîne un autre nombre parce qu'il a des décimales et que Jason gère les décimales. C' est ah, c'est un peu compliqué parce que je pense que la chose la plus proche que nous utiliserions serait flottante. Mais le flotteur a, vous savez, ce n'est pas seulement deux décimales. C' est un tas d'entre eux, donc ça peut devenir compliqué. J' ai donc décidé d'utiliser Price comme une chaîne. Alors rappelez-vous que quand vous passez ou affichez l'orteil ce point final, finalement je vais avoir une date de réception, et ça va avoir un motif sur la date de l'âme que nous avions utilisée dans le passé. Ah, qui est, vous savez, l'année, le mois, mois, jour, et puis l'heure, qui est l'heure, minute, seconde, puis le Z, qui est UTC. Hum, et enfin je vais faire tous les champs nécessaires. C' est donc le schéma pour les modèles. Je vais utiliser ce qui suit va avoir, um c'est modèle B y modèles être pourquoi, et c'est là que nous allons faire là-bas. Nous allons avoir l'objet magasin, euh nous ne sommes pas important parce que vous verrez que nous allons utiliser le magasin ici dans le nous allons retourner le magasin dans le cadre du modèle. Donc, le mieux va juste retourner le i. D. Le nom, l'espèce, la race, l'âge, l'âge, le magasin comme un objet d'histoire. Et c'est une chose très cool. En fait, nous tirons parti de l'optique du magasin que nous avons ici. Donc, vous savez, nous ne répétons pas tout ça, et nous voulons quand ? Quand on rentre un animal de compagnie. Nous le voulons. Ah, revenez. Quel magasin ? Doc ? Le pari est en jeu. Je n'ai pas la date de réception, ce qu'on va faire. Je n'ai pas la date de réception, J' en ai le format O. Hum, sans les secondes. Et puis la section liens, qui aura le moi et enfin, l'objet animaux de compagnie sera le tableau qui est passé quand on fait le get pas l' animal individuel, mais le, euh, tous les animaux de compagnie pour ce magasin. Hum, eh bien, pas pour ce magasin pour ce point final. 29. Tests d'arrivée et Finishing: Ok, continuons à travailler sur le A P que j'entends. Et, euh, donc je vais faire maintenant le pas individuel, mais le si vous avez tous les animaux de compagnie. Donc nous n'avons pas d'autre, euh, nous allons avoir des animaux plus âgés qui sont vivants, et nous sommes en retour la pagination en utilisant une page. Et puis on a enfin le résultat. Ok, avec les liens sur la page spécifique, et on va passer les paris. Objet si la pagination des animaux de compagnie a précédent que nous ajoutons ce lien orteil le h air h, ref. Et s' il y a un suivant, alors on ajoute. C' est bien, donc rien que nous n'avons jamais vu avant. C' est très similaire aux magasins et au point. Hum et c'est tout. Alors maintenant, nous allons Ah, travaillons sur le poste. Totalement pas remplacer en commençant ici. Et donc on va avoir, euh, des paris. Jason est la demande, Jason. Ensuite, nous allons vérifier si le validateur a dépassé le, euh, le schéma. S' il y a des erreurs que vous renvoyez notre message, alors nous allons chercher le magasin. On va passer l'extérieur comme l'animal de compagnie opposé pour voir si je veux le ramener dans un magasin spécifique. Si cette histoire n'est pas trouvée, alors nous retournons, stocké, non trouvé. Ensuite, nous allons tester que les huit reçus. C' est en fait un bon rencard. Et nous le faisons en utilisant un essai, sauf si, euh, cette méthode appelée chaîne. Um, P time, ce qui est spotter dans le temps, euh ne fait pas, vous savez, erreur ? Alors c'est bon. Mais si ce n'est pas le cas, c'est une date invalide. Enfin, nous créons l'objet animal de compagnie, et ici nous allons avoir l'i d externe que nous allons créer. Ah, ce moment aurait le nom de l'espèce race âge magasin prix et a reçu huit. Et nous allons sauver cet objet et enfin retourner l'objet animal de compagnie. Um, avec un 21 ce qui signifie que l'objet a été créé correctement. Non, Non, j'ai mis ça deux fois, donc on s'en débarrasse. Euh, cool. Donc je pense que nous pouvons aller de l'avant et faire quelques tests ici avant de faire le put et l'élite. Donc ici, nous avons notre facteur et, euh, vous savez, avant euh, vous savez, avantde jouer avec le poste et le point pour les animaux de compagnie, Allons-y et vérifions que c'est ouvert en cours d'exécution et ça jouer avec le poste et le point pour les animaux de compagnie, est en cours d'exécution. Et j'ai celui-là, j'ai , j' mis un animal de compagnie dans ce premier magasin. Alors je sais. Je note le je d ah, ici. Et puis je vais jubiler le poteau. Ils commencent le début de l'ancien test que nous avons fait au début du cours, non ? Donc ils ne sont pas Ah, ils ne sont pas comme travailler correctement. Mais voyons si on peut faire ça. Donc, avez le point de terminaison post. Ça va être des animaux d'accueil locaux. Je pense que nous n'avons pas l'en-tête, donc nous devons obtenir les en-têtes, et le corps n'est certainement pas correct. Donc, j'ai juste inventé un objet avec lequel vous pouvez aller de l'avant et tester avec. Donc c'est juste mon vrai chien, Mac. Il dit qu'elle doit ... le H a 11 ans. Ah, c'est ce magasin. C' est un prix que je viens d'inventer. Mais pour moi, bien sûr, il est à lui beaucoup plus précieux que ça. Ah, donc, euh, je dois garder ça pour l'instant. J' ai besoin du jeton pour ça. Donc on va avoir X en place. J' ai d X euh, la petite bile et ensuite x jeton est cette valeur là. Alors allons-y et sauvegardons ça. Donc nous avons leur corps, nous avons les en-têtes, donc tout a l'air bien. Hum, et allons-y et faisons un post sur. Voyons si c'est en cours d'exécution ici. Oui, c'est en cours d'exécution. Alors post Ah, on a une erreur. Penn n'est pas défini. Euh, voyez si je peux vérifier le paquet ou le fichier qui le jette. Ok, donc je pense que je n'ai pas, je veux dire l'importation de modèles d'animaux de compagnie. Importer animal de compagnie, Euh, aujourd'hui Strange. Oh, parce que c'était Dieu. Il était là avant, et je pense que je l'ai remplacé par des modèles d'animaux de compagnie. Importer le pari d'importation. Ok, essayons encore. Parfait. Donc on a créé notre animal de compagnie. Vous pouvez voir les détails ici. Donc nous l'avons fait. C' est une race sped H. I d. Les liens sont le nom individuel de l'animal de compagnie. Date de réception du prix Mac. La date est arrivée parfaitement bien. Et ah, voyez comment on passe. C' est un rendez-vous là-bas, mais c'est très c'est une chose délicate parce qu'on est en train de passer ça. C' est une chaîne et ce qu'on fait sur un P , c'est qu'on , c'est qu'on utilise ça. Ah, une chaîne, um, jour, temps de modèle de chaîne de jour qui convertit un modèle connu pour une chaîne spécifique, um, en un objet de jour. Et c'est ce que nous enregistrons dans la base de données. Et quand il rentrera, on convertit ça en en cordeenutilisant la glace. Donc format. Donc, c'est très simple, mais c'est en fait une configuration assez cool. Et vous pouvez utiliser ça pour vos yeux AP maintenant pour le get um, en fait, ah, ah, je veux dire, on pourrait avoir le i d. ici. On va devoir, genre, copier et coller le haut. Donc c'est pour ce gros Faisons qu'ils obtiennent tous les points de terminaison. Alors voyez si ça marche. Alors prenez tous les animaux de compagnie et pointez Euh, nous avons le jeton, mais je ne suis peut-être pas le dernier Café et je fais face à ça juste au cas où. Oh, c'était un bon, très bon. Donc, si nous disons d'envoyer, voilà, on aura tous les animaux de compagnie. Et bien sûr, il n'y en a pas beaucoup, mais c'est la base de ST Pat égale à un, et il retourne Mac comme le seul objet là-bas. Donc, tout fonctionne. Très bien. Maintenant, prenons un animal de compagnie et un point. Cela a vraiment besoin de beaucoup de travail. Donc je crois que j'ai copié le Max I d. et allons chercher les en-têtes. Donc on a besoin de X. Euh, être mobile X toke et ne pas parler. Euh, et copions ça. Attendez, c'est le jeton. Et l'idée que je pourrais me tromper. Où est Max ? Je serais celle-là, d' accord ? Basé en commençant ici et enregistrez cette Envoyer. Parfait. Donc on a Max Object ici et là tu y vas. Hum, remarquez que nous sommes, vous savez, nous recevons les détails du magasin ici, qui est très bon. C'est ainsi que la glace AP devrait fonctionner comme vous ne devriez pas l'être. Vous dites que le magasin et l' I.D. I.D. euh, vous devriez juste, vous savez, aider la montée avec toutes les informations. Si c'est un gros objet comme le magasin a beaucoup d'objets là-bas, alors certainement vous pourriez potentiellement simplement passer l'idée, peut-être quelques détails clés, et ensuite avoir le déclin obtenir tous les détails pour le magasin, mais parce que ce n'est pas un gros objet, je pense qu'il est bon que vous intégriez d'autres objets dans le retour Jason que vous redonnez au client. Parfait. Donc, maintenant, nous devons travailler à pied et tard, alors allons-y et travaillons là-dessus. 30. L'animal PUT et SUPPRIMER: Ok, on va travailler maintenant sur la vente et l'élite, et c'est très similaire à ce que nous avons fait dans les magasins, et c'est en fait similaire au post. Donc je vais juste aller de l'avant et le rythme de la pension. Donc, on va chercher l'animal en fonction de l'animal que je D. Et si on ne trouve pas le lit, on va retourner le 44, puis on a appelé Pat, Jason, Toby, la demande, Jason. Et nous allons passer par le validateur pour ça pour cet objet Jason. Et s'il y a des erreurs, reviendra à 400. Hum, puis on recherche le magasin en fonction de la chaîne de magasin, et si on ne trouve pas le magasin, alors on retourne un 400. Et enfin, nous essayons la date sur DSI que c'est ah, c'est une validation. Si toutes ces choses vont, eh bien, alors nous avons juste défini les différentes propriétés. Principales espèces race âge magasin prix et recevoir date, orteil l'animal de compagnie, puis enregistrer l'objet. Enfin, où nous sommes revenus, un résultat hors. D' accord. Et puis l'objet de lit est le passé avec le pari que le leader va être quelque chose similaire. Donc on prend l'animal de compagnie de l'extérieur comme l'Andi. Si le lit n'est pas fondateur, reviendrait pour quatre. Si c'est le cas, s'il est trouvé. Et nous avons dit leur vie au lit, orteil faux, sauvegardez cela et retournez un outil pour Donc ceux-là sont les mis en plomb. Alors essayons ceux sur l'application de la loi. Ok, donc on va tester ces choses maintenant sur les facteurs, et on a une mise ici, mais je vais probablement juste, euh ouais, allons chercher l'objet du point de terminaison post sur son corps d'année Vas-y. Et donc ce qu'on va faire ici c'est qu'on va, euh, mettre à jour Max Talk à Max H 2 12 Donc il a un an de plus, et on doit mettre à jour ce, euh, l'animal que , euh je D. Guettel paris et pointez ici. Et oups, j'ai tout copié. Le i d vous y allez. Et ça a sauvé ça pour l'instant. Et enfin, nous devons ajouter les en-têtes. Alors voyons le jeton ici et x haut. C' est plus vile et accepter le jeton. Est-ce que c'est bon. On dirait que tout a l'air bien là-bas. Alors sauvegardons ça. Et génial. On sort. 200. Ok, voyons l'âge. Il a 12 ans maintenant. , Où est H O. H. H. est le 1er,donc le dossier a été mis à jour correctement. On a un 200. Ok, donc ça a l'air bien. Et si nous obtenons le point final spécifique, vous voyez l'âge là-bas dit 11%. Vous voyez, l'âge est de 12 ans. Génial. Alors maintenant, faisons l'élite. On va copier le je serais là, et on va monter les en-têtes X. On va copier le je serais là, I d est mobile X jusqu'à jeton. Et c'est bien que d'ici. Génial. C' est tout ce dont nous devrions avoir besoin. Sauvons ça. Donc nous l'avons et envoyer parfait. On a un outil quatre. Ce qui signifie que le serveur l'a supprimé. Ce pari si nous essayons d'obtenir Mac Now, ici nous obtenons un quatre Ford introuvable, ce qui est leur comportement. On veut qu'on le veuille. Génial. Donc on en a fini avec la foule. Nous avons créé, lu, lu, mis à jour et supprimé. Et maintenant, allons de l'avant et écrire quelques tests pour le lit 31. Tests de compagnie: Donc on en a fini avec les points de terminaison Krug. Et maintenant, on va faire les tests pour ça pour cette partie du système A P I. Je vais y aller très vite parce que c'est la plupart des choses qu'on a vues sur le FBI du magasin. Cependant, il y a quelques choses que je vais vous montrer. Premièrement, on va avoir des accessoires pour les animaux de compagnie et les magasins mélangeant un test. Et j' ai ajouté des idées au luminaire. Assurez-vous donc de vérifier le repo pour les luminaires des magasins car maintenant ils ont une idée au début. Et comme ça, je peux. Ensuite, les appareils d'animaux peuvent adresser ou ah, faire un champ de référence. Deux magasins qui sont sur ce fichier Jason, um, um, stocke les fixtures. Alors commençons. Ok, alors ajoutons le fichier de tests ici, et je vais passer rapidement à travers cela, comme je l'ai dit, parce que c'est très similaire au test de magasin. Donc nous allons avoir les différentes bibliothèques incluses. C' est là que ce sont les paramètres des modèles dont nous avons besoin et eso ici. On a le cours de test pour animaux de compagnie. Nous allons créer une application avec ces paramètres basés. Et ah, nous allons aussi avoir l'installation avec l'usine d'applications et une déchirure qui va faire tomber les qui sont basés. Je vais aussi mettre en place un dictionnaire ab, ce qui va être froid chaque fois que nous voulons créer une nouvelle application un dictionnaire stocké, qui est une sorte de magasin fictif que nous créons ici. Et, euh, enfin, on va avoir un dictionnaire pour animaux de compagnie, qu'on va avoir, hum, avec un peu comme, euh,un objet animal de euh, compagnie. Ah, et encore, comme on peut le voir, j'ai le, euh, mon chien Mac, là-dedans. Alors on va avoir une méthode, euh, aide mythique. Créer une application p i, qui va Ah, essentiellement publier une application trop grande avec le point de terminaison de l'abse. Et puis nous allons aussi avoir un jeton d'accès Générer. Ah, aide. Cette roue a généré l'accès parler et a dit qu'elle a demandé le jeton auto pour la classe à partir de ce point, euh, j'ai aussi les en-têtes, et enfin, nous pouvons commencer à faire quelques tests. Donc, la première chose que nous devons faire ici, c'est de pleurer l'application A p i, puis de générer le jeton d'accès. Générez notre premier magasin. Et enfin, nous allons tester la création d'un, euh, euh, un animal de compagnie. C' est le premier test que nous faisons ici. Donc nous allons poster sur le point de terminaison des animaux avec les en-têtes, le dictionnaire arrière que nous avons et l'animal que je d va être stocké dans ce viable et nous affirmerons qu'on a un outil. Donc plein de trucs là-bas. Une chose qui est un peu différente ici que je ne sais pas si vous avez remarqué, c'est que sur le dictionnaire du lit ? Je fais référence à l'histoire de soi pour que vous pensiez, genre, pourquoi est-ce que ça marche ? On n'a même pas, genre, mis en place l'histoire D à ce stade. Eh bien, les choses que lorsque nous mettons en place ou que nous définissons la méthode d'aide, nous ne l'appelons pas réellement. On est juste en train de le définir. Donc c'est un peu comme un viable qui va être réglé plus tard. Et en fait, quand on l'appelle, on a déjà créé un magasin et je le stocke dans cette histoire personnelle. Soyez tel que quand j'ai appelé le dictionnaire de retour que, euh que c'est viable existe et et que ça peut bien se passer, donc c'est un petit truc que vous pouvez utiliser. Et, euh, vous savez, nous allons utiliser ça dans ce cas, eso Non, passons par les anciens tests, c' est-à-dire obtenir et modifier et supprimer. Donc pour le lever, nous allons le faire, ah, ah, nous allons atteindre le point de terminaison pour les animaux de compagnie. En plus j'ai payé avec les en-têtes et on devrait sortir. Ah, code d'état éteint 200 pour l'édition. Je vais, hum, créer hum, un nouvel objet que c'est un pari complètement différent. Et je vais essentiellement frapper le point de terminaison avec cet animal et je vais vérifier que le statut Cody est 200 et que, euh, euh, l'espèce animale a été mise à jour pour être chat. Et enfin, je vais obtenir l'élite un animal de compagnie qui frappe ce même point de terminaison avec suppression et qui avait je d. Et j'affirme que le code d'état est à un quatre et que le nombre pour les animaux de compagnie qui ont la vie égal à faux drapeau est dit à un. Donc c'est un set assez complet, vous savez, test pour la foule. Une partie de ça. Uhm je vais maintenant aller de l'avant et ah, au test sur le test B Y. Donc je vais aller ici et je vais dire à partir des tests de BET test d'importation d'animaux de compagnie, et cela va ensuite inclure cela là-dedans. Um, c'est, euh, c'est un bon début. Nous allons tester la pagination avec le avec le avec les appareils, mais je pense que nous pouvons faire ce test maintenant et voir ce qui se passe. Donc, pour faire le test, nous allons nous assurer que nos continuités fonctionnent et nous vérifions quel est le nom du conteneur docker . Ah, on dirait que c'est des animaux de compagnie. J' en suis allé un. Donc je vais dire docker sauf Dash I t, euh, euh, animaux de compagnie un p i Web un et ensuite par téléphone. Trois tests, pourquoi ? Ok, alors allons de l'avant et courons ça parfait. Donc ici, je vois que les appareils pour les magasins avec a été exécuté. C' est pourquoi nous obtenons ces 23 objets importés. Mais les tests fonctionnent bien. C' est donc un bon début. Allons-y maintenant et essayons de configurer les appareils pour tester la pagination 32. Tests de pagination de animal: donc le front et créer les luminaires ici sur le pari. Nous allons donc créer un nouveau dossier appelé Fixtures. Et à l'intérieur de ce dossier, nous allons avoir un dossier appelé Animaux que Jason et Ah, voir. Donc je vais copier ça du dépôt dans Here you go. Donc nous avons Ah, nous avons 15 tapettes, et beaucoup d'entre eux sont Ah, vous pouvez voir ici qu'ils ont un, euh et je d déjà mis en place ainsi qu'un externe comme le et, ah, beaucoup d'entre eux appartenaient au même magasin. Donc, vous voyez, voici le B huit c à la fin, à l'exception des trois derniers. Et c'est parce que je veux tester la pagination sur les magasins aussi. Quand nous arrivons au point où nous pagination vacciner par des animaux de compagnie qui sont dans un magasin spécifique afin que vous puissiez saisir cela. C' est le Jason du rapport Get, les gens qui sont liés dans le, hum dans le cours. Alors c'est ça. Donc maintenant on va faire la deuxième partie du test, qui va être la pièce de pagination, alors commençons là-dessus. Alors allons de l'avant et testez la fonction de pagination là-bas. Donc nous allons dire pagination test. Euh, abord on se met en marche, et on va importer les deux appareils, les magasins et l'animal de compagnie, et maintenant on va chercher les animaux plus âgés. Et on a juste besoin d'avoir le, euh, au point de terminaison des animaux de compagnie et de vérifier le suivant face là-bas. Et puis nous obtenons aussi la deuxième page des animaux de compagnie et nous allons vérifier que la page précédente est là aussi. Donc c'est à peu près tout. C' est tous les tests de pagination que j'ai. Et je pense que c'est ah, c'est une bonne couverture de test de texte là-bas. Alors allons de l'avant et essayons de faire ça. Et donc effacons l'écran ici et exécutons trois tests Python. Parfait. Donc tout fonctionne parfaitement remarquer ici que nous avons maintenant les 15 animaux de compagnie importés et les 23 magasins sur, hum sur le deuxième appareil que sur le deuxième test que nous exécutons. Alors c'est tout. Hum, nous avons nos animaux de compagnie, mais entièrement testés , donc Ah, nous sommes presque presque Ah, la fin. Mais nous avons Ah, quelques leçons maintenant. Nous voulons passer par 33. Obtenez tous les animaux dans un point Get magasin: Ok, donc les deux prochaines leçons seront sur la fonctionnalité de recherche pour R A P I. La 1ère 1 qu'on va faire est d'avoir tous les animaux de compagnie dans un magasin. Et le 2e 1 qui va être la prochaine leçon, c'est de regarder à travers, euh, les animaux plus âgés utilisant des filtres pour, genre, la race et l'espèce. Voyons comment on fait ça. Donc, nous voulons obtenir un point de terminaison appelé magasin story D pets pour obtenir tous les animaux de compagnie dans ce magasin . Donc pour ce faire, nous allons avoir un nouveau point de terminaison, et nous allons appeler ça le code suivant. Si un magasin sur votre histoire de magasin, les animaux et nous allons l'obtenir en utilisant une méthode get, hum, du FBI. Tellement cool. Jusqu' à présent, si bien. Donc nous allons, hum, ensuite nous allons travailler sur le A P i lui-même. Alors sauvegardons ça. Et nous allons ajouter quelques bibliothèques hors ici quand je dis à partir de gros modèles importer animal de compagnie et de modèles d'animaux de compagnie importer des animaux de compagnie jusqu'à. Je vais aussi avoir une sorte de la même, euh, constante ici. Je vais aussi avoir une sorte de la même, euh, Je vais dire que les animaux de compagnie par page seront 10. Donc ce qu'on va faire, c'est qu'on va avoir une pagination sur le, euh, sur le point de terminaison réel. Hum, et, euh, on va, hum, la moitié. S' il y a plus de 10 animaux de compagnie dans ce magasin spécifique, on aura les, vous savez les points de terminaison suivants précédents , . Donc la prochaine chose qu'on va faire, c'est qu'on va modifier l'animal, euh , en pointe, et on aura le code suivant. Dis et dis, si les animaux de compagnie sont dans la demande, votre URL, alors nous allons obtenir les objets des animaux de compagnie qui sont dans ce magasin, puis définir la page viable et obtenir la pagination de celui-ci. Et puis la réponse sera un résultat. D' accord ? Avec les liens de la ah, cette page d'animaux de compagnie et le, um, l'objet de magasin réel incorporé dedans. Hum, si nous avons des aperçus et que c'est comme vous l'avez déjà vu, alors on va écrire un début de page précédent au point final, et on va aussi vérifier si c'est le suivant. Alors nous allons avoir le, euh le lien nous a dérangés. Eh bien, d' accord, donc c'est si les animaux sont dans la demande que votre URL alors nous allons dire contraire. Hum, si c'est ce n'est pas sur le point final. Ensuite, nous allons avoir juste la réponse pour l'objet de magasin. Et, euh et puis nous venons de retourner l'objet au point final. Donc c'est la modification de l'histoire, P I Maintenant, nous devons également faire quelques changements aux modèles d'animaux de compagnie. Hum et donc l'idée ici, c'est une nouvelle chose que nous insérons ici, c'est maintenant que nous allons passer un appartement appelé No store est vrai. Quelle est l'idée ? L' idée que j'ai eu waas Si aucune histoire n'était vraie, alors on n'aura pas sur les modèles d'animaux de compagnie. Euh, juste là. On ne va pas envoyer le lien du magasin, euh, parce que ça va être ça ne rend pas beaucoup sensible. Ah, si nous cherchons les animaux de compagnie dans un magasin spécifique pour que tous les animaux de compagnie soient répétés encore et encore. Donc ce que nous allons faire, c'est que nous allons avoir cette pièce de magasin pour être facultative, et elle ne sera affichée que s'ils savent, drapeau A dit trop vrai. Voyons comment on fait ça. Donc nous allons avoir, um le magasin de notes de drapeau est égal à tombe ici, et c'est un défaut. Et rappelez-vous, sur les fonctions python lorsque vous, um lorsque vous passez un périmètre avec une valeur par défaut, cela signifie que vous pouvez le passer ou vous n'avez pas à le passer. Um, donc c'est un peu comme un na optionnel un paramètre notionnel. Et ce que je vais faire ici, c'est que je vais enlever ça et je vais dire, au lieu de jours de retour, je vais dire que l'objet de pari est égal à ça. Ok, euh, et puis je vais dire, si pas savoir magasin. Alors je vais dire objet animal de compagnie hors un peu. Objet. Oh, le magasin va être un objet de magasin hors magasin de pat dot. D' accord. Et enfin, je vais retourner l'objet animal de compagnie, et j'ai aussi besoin d'avoir le drapeau no store ici parce que rappelez-vous, dysfonctionnement peut être appelé, hum, à partir de la pour le type individuel de modèle comme, mais aussi il pourrait être appelé à partir de la Si je reçois une liste d'animaux de compagnie, je veux être en mesure de le faire aussi bien. Donc ici, je vais dire des animaux de compagnie objet. Un objet de la fosse à stylo, Bad Kama, pas de magasin. Et la façon dont j'ai passé ce drapeau à l'objet animal de compagnie Um, la fonction. Alors c'est ça. Et je pense que c'est tout ce que nous devons faire pour le Mais nous devons faire un petit changement sur les modèles sur le magasin aussi. Donc, ce sont les modèles de magasin. Donc ce que je vais faire ici, c'est pas, hum, à hum, un point de terminaison des animaux de compagnie, le nouvel orteil de la longueur pour qu'on puisse, vous savez, observer. Hey, fait et ah a exposé les liens possibles que nous avons. Je vais appeler ces animaux de compagnie Rehl. Alors ? On a besoin des animaux de compagnie. Et puis je vais dire que les magasins slash slash pourcentage demander ce qui va être une chaîne slash animaux de compagnie, puis pourcentage. Ah, rangez ça à l'extérieur. Je vais bien. Donc maintenant, nous allons devoir lier un. Ça va être ce moi et il y en a un qui va être le rail des animaux, qui dit au client, ou au fait, si vous voulez mettre les fosses sur ce magasin, vous avez juste besoin de faire cette barre d'animaux sur l'individu. Ah, magasin cool. Essayons ça et voyons comment ça marche. 34. Testez l'espèce OBTENue tous les animaux dans un point Get Store: Ok, donc maintenant je veux essayer d'avoir les animaux de compagnie dans un magasin spécifique. Et pour cela, je veux faire sauter les appareils en utilisant ce luminaire Ah, fonction que j'ai sur l'application p y et charger les magasins plus anciens ainsi qu'un animal de compagnie. Donc ce ah, les luminaires que vous avez confiné sur le dépôt sous que je suis pointé sur chaque leçon. Et la bonne chose est que les appareils ont pour simple les magasins ont un i d. sur le pari. J' ai le lien externe vers les magasins en utilisant l'idée de fondation ici. Donc vous avez ah, assez bon jeu de données pour jouer avec. Donc tu n'as pas à ça construire çaà partir du français. Donc la façon dont nous allons le faire est que nous allons ouvrir, et vous vous assurez que vos conteneurs docker sont en cours d'exécution et ouvrez un nouvel onglet. Et sur ce sommet, on va essayer d'obtenir le, hum, voir le par téléphone, gérer moi. Pourquoi shell et importer que les appareils fonctionnent ici que nous avons pour cela pour le test et l'utiliser pour charger nos données ou. Donc je vais dire docker ex SEC. I t, euh animaux de compagnie ap I Web un par téléphone trois Managed B y shell. Alors j'appelle le « Gérer Me ». Pourquoi ? En utilisant python trois dans le conteneur, Mais je suis en fait en train d'interagir avec lui à partir de la coquille de mon autre coquille d'odeur. Tu vois, tu as ces trois petites flèches là. Ça veut dire qu'on est sur la coquille et qu'on est prêts à partir. La première chose que je vais faire est que je vais supprimer les données existantes que nous avons pour que nous ayons, vous savez, tout propre à partir de zéro. Donc je vais dire d'importation de modèles de magasin, euh, magasin. Et je vais dire que les modèles importent animal de compagnie et ils veulent dire magasin optique. Oh, l'élite. Et je veux un animal de compagnie sûr objets, toute l'élite, et ils ne diront pas à partir des appareils d'importation d'application. Est-ce que c'est des luminaires ou des fixtures ? D' accord. Et puis je vais dire, hum, hum, les luminaires. On doit passer la base de données Earp. C' est un p I. Nous devons passer la collection, qui est magasin, et puis le parent, um donc l'image déposée par rapport à la pétopie. Donc, ce serait dans ce cas pour le magasin serait des accessoires de magasin, magasins, Jason, luminaires de magasin, magasins, Jason, um, um, et qui a importé les 23 objets là. Laisse-moi effacer cet écran, et je dirai que les luminaires correspondent à un animaldecompagnie. Laisse-moi effacer cet écran, et je dirai que les luminaires correspondent à un de Et puis deux fixtures de pats. Les faits que Jason. Oh, c'est mauvais ? Parier ? Oui, leur animal de compagnie. Correct. Impressionnant. Nous avons donc importé ces 15 objets et les magasins aussi. Et allons vérifier si nous avons les magasins mis en place si correctement, donc je vais avoir tous les magasins et parfaire, j'ai vous savez, les yeux sur cette page aussi, qui signifie, vous savez, il a chargé plus de, um 10 ce qui est une croyance tennis, le nombre de source. Et, euh, et laisse-moi faire voir à tous les animaux si ça marche aussi. Et pourtant, nous avons un tas de chauves-souris là-dedans avec des magasins différents. Maintenant, je vais tester ce qu'on vient de faire. Maintenant, qui est d'obtenir les animaux de compagnie dans un magasin individuel. Hum, j'ai préchargé ici. J' ai ah magasin I d. C'est le 1er 1 qui a plus de 10 animaux que je voulais orteil. Vérifiez également sur la pagination afin toujours envoyé. Et comme vous pouvez le voir ici, fonctionne parfaitement bien. J' ai tous les animaux de compagnie qui sont dans ce magasin et ah, a l'air vraiment bien. Et nous avons un outil de page. Donc, si nous passons ici la page point d'interrogation est égale à deux. Nous obtenons la deuxième page. Tellement parfait. Maintenant, vous voyez comment ça marche. Et, euh, vous savez, c'est c'est une très bonne approche pour obtenir des objets qui sont dans un autre objet d'une manière connexe . 35. Recherchez des animaux avec filtres: lorsque vient fonctionnalité que nous sommes maintenant, nous trouvons dans les yeux AP est le filtre de capacité orteil travers les objets en utilisant une sorte de paramètre comme sur le commandant sur l'œil où vous êtes venu, par exemple, dans notre cas qui disent nous avons le point de terminaison des paris Guettel. Um, au lieu de voir tous les animaux de compagnie dans tous les magasins, peut-être que je veux voir seulement les chiens, pas vrai. Ce serait un cas d'utilisation très courant. Droit ? Donc, hum, ce que je voudrais faire, c'est que je veux dire quelque chose comme un point d'interrogation et ensuite mettre, euh, espèces sont égales à l'obscurité, par exemple, et avoir la capacité de filtrer à travers tous les animaux de compagnie et le point, hum, mais seulement montrer que les chiens et la même chose. Si je voulais filtrer davantage, je pourrais faire quelque chose comme et reproduire des égaux. Ah, Sheets le ferait, disons juste pour que je le sois, ils auraient tous les vieux draps qui chiens dans tous les magasins d'animaux parce que, vous savez, si un commun pour Charlie serait Oh, Je veux avoir un drap et je veux voir dans quels magasins ils vendent ce type de chien. C' est ce qu'on va faire maintenant, et ce n'est pas très compliqué. En fait, c'est une solution très évolutive que nous allons utiliser. Alors allons de l'avant et modifions le point de terminaison PR de l'animal de compagnie. Alors laissez-moi m'arrêter de près ici. Et donc la seule chose que nous allons avoir dont nous aurons besoin pour l'instant, c'est que vous voyez comment nous avons tous ces animaux comme la référence H et les avant-premières. C' est le prochain. On doit modifier ça parce qu'on va avoir un filtre. Donc si vous seriez un peu étrange à faire si le paramètre de filtre est une espèce, alors envoyez ce lien et sinon et donc cela aurait beaucoup de sens. étrange à faire si le paramètre de filtre est une espèce, Donc ce qu'on va faire, c'est qu'on va avoir une sorte de gabarit qu'on va insérer ici, qui sera la référence de l'animal de compagnie h r H. Et puis nous allons dire la page des animaux et puis pour cent s, ce qui va être un fondamentalement que le rythme que la personne dit, mais nous allons pouvoir ensuite ajouter dynamiquement à ce H ref basé sur les filtres sous que l'utilisateur est yeux demander. Donc, nous allons faire ce qui suit. Donc, en dessous du filtre réel ici, nous allons le faire en suivant ce qui va avoir si les espèces, dans les arguments de requête, nous allons filtrer par l'espèce et à la douleur que h réf cet argument de requête sur le la même chose. Si nous avons reproduit dans les arguments de requête, alors vous pouvez filtrer cela en utilisant le, um, l'argument de requête et l'ajouter au fusil perroquet. Maintenant, une chose cool à propos de l'utilisation de requêtes dans ou EMS est que vous pouvez filtrer davantage. Donc, par exemple, si nous avions des espèces et ensuite nous élevons des minorités que nous modifions la requête des animaux de compagnie deux fois et c'est très bien. Ce que ça va faire, c'est qu'on va avoir des animaux de compagnie va être filtrés par espèce, non ? Donc, par exemple, nous avons un chien ou des chiens. Hum, alors quand ? Si nous avons une race là aussi, ces animaux font référence à ces animaux déjà filtrés par chien. Donc, vous êtes comme faire un second filtre, qui est parfait, est exactement ce que nous voulons faire. Mais si par certains vous savez, si l'utilisateur passe seulement courageux, par exemple, si race égale la merde. Donc, sans passer l'espèce, ça marche aussi bien. Parce que ces animaux feraient référence à tous les animaux comme les objets plus anciens que nous avons ici, non ? La vie est vraie. Et maintenant nous serions juste, genre, filtrant avec grand, ce qui n'a pas beaucoup de sens. Si tu cherchais elle aussi. Je dirais que vous passeriez aussi des espèces, mais nous ne limitons pas cela. Et les filtres dans la nature devraient être comme cette dynamique. Donc je suis juste comme, poster que ce sera le cas ici. Ok, donc la prochaine chose qu'on va faire est de mettre à jour ces réf. Um, viable est de dire, ce qui suit Ce sera maintenant mauvais h ref et ensuite la page pour cent. Et comme ça on va l'avoir, ça va utiliser le nouveau modèle pour les yeux que l'on trouve ici. Donc la même chose ici. Et enfin celle ici. Génial. Alors c'est ça. Alors disons ça et essayons. Donc maintenant, si je fais les animaux de compagnie, vérifiez que ça marche. Donc ça a l'air bien. Et le vous voyez que le template ing ou ils sont un treff viable fonctionne bien là-dedans. Hum, mais maintenant, allons chercher des chiens seulement. Donc on va faire ah, espèce égale chien et remarquer que je fais ah, majuscules ou majuscules sur le D parce que c'est comme ça qu'il est stocké sur, um, um, sur les objets de données qu'on pourrait faire ça, vous savez, avec une minuscule. Mais nous aurions besoin de sauver tous les objets pour avoir ça, euh, ni les cas. Eh bien, écrivons ça. Et parfait. Maintenant, je vois que le A paris perfides Ph un et les espèces égales coincé, qui est le courant une dérive. Et maintenant tu vois que je n'ai que des quais ici, ce qui est plutôt cool. Hum, et ça semble fonctionner très bien. Et puis on va vérifier l'autre filtre, qui est la race. Droit ? Donc on va faire et se reproduire égaux Ah, merde. Sue, puis envoyez. D' accord. Parfait. Donc, ils voyage reflète maintenant que c'est un espace physique de départ reproduction feuille égale. Et maintenant, je n'ai qu'un seul chien, qui est mon chien, Mac. Hum, si parfait. Alors c'est ça. C' est comme ça qu' on peut faire des filtres. Et vous pouvez penser à définir des filtres pour, comme, les magasins, par exemple. Vous voulez obtenir les magasins sur un quartier spécifique ou sit code. Tu sais, le ciel est la limite. travail tellement génial. 36. Conclusion: Ok, donc c'est tout. Nous en sommes arrivés à la conclusion. J' espère que vous avez appris un peu sur les fondamentaux du FBI de repos Ce que cela signifie d'être un repos, un p I et comment orteil a utilisé les vues globales flasque pour faire des plates-formes AP I très simples et très évolutives . Maintenant, bien sûr, c'est la prochaine étape. Je vous recommanderai de jeter un oeil à certaines des bibliothèques A P I là-bas. Je pense que le plus populaire est un ballon de repos. Et, ah, tu sais, je pourrais peut-être faire, ah, ah, vidéos YouTube. Assurez-vous de vérifier ma chaîne vidéo YouTube avec peut-être assuré, comme, tutoriel sur elle. Mais je pense qu'il est préférable de cette façon d'apprendre comment construire le sur une plate-forme P I à partir de, comme zéro sans utiliser aucune de ces bibliothèques, car alors vous arrivez à apprécier ce qui se passe dans les coulisses et exactement pourquoi les bibliothèques sont faire les choses qu'ils font. Donc, merci beaucoup d'avoir terminé le cours, et nous verrons dans le prochain