
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a bucket with the Cloud Storage JSON/REST API
/ 50
Upload a file using the Cloud Storage JSON/REST API
/ 50
Les API (Application Programming Interface, interface de programmation d'application) sont des programmes logiciels qui permettent aux développeurs d'accéder à des données et à des ressources informatiques. Des entreprises de nombreux secteurs différents proposent des API accessibles au public, afin de permettre aux développeurs d'intégrer des bibliothèques, des services ou des outils spécialisés à leurs propres applications et codebases.
Au cours de cet atelier, vous allez découvrir l'architecture et le fonctionnement de base des API. Cet atelier sera complété par des exercices pratiques, au cours desquels vous serez amené à configurer et exécuter des méthodes de l'API Cloud Storage dans Google Cloud Shell. Après avoir suivi cet atelier, vous connaîtrez les principes clés des API en matière de communication, d'architecture et d'authentification. Vous aurez également acquis une expérience pratique sur les API. Vous pourrez ainsi appliquer vos connaissances à de futurs projets ou ateliers.
Cet atelier couvre les points suivants :
Cet atelier s'adresse aux débutants. Il ne nécessite pas de connaissance préalable des API, ni d'expérience de l'utilisation des API Google. Des connaissances de base des environnements shell et des outils d'interface de ligne de commande sont recommandées, mais pas indispensables. En revanche, il est recommandé de savoir utiliser la console Cloud et Cloud Storage. Par conséquent, veuillez commencer par suivre au moins les ateliers ci-dessous :
Lorsque vous êtes prêt, faites défiler la page vers le bas et suivez les indications pour passer à la configuration de l'environnement de votre atelier.
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.
Cliquez sur Suivant.
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.
Cliquez sur Suivant.
Accédez aux pages suivantes :
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Comme indiqué précédemment, une API (interface de programmation d'application) est un programme logiciel qui permet aux développeurs d'accéder à des données et ressources informatiques. Pour transmettre clairement des requêtes et des réponses, les API obéissent à des règles et à des méthodes spécifiques.
La possibilité d'accéder à des données et ressources informatiques augmente considérablement l'efficacité du développeur. En effet, il est beaucoup plus simple d'utiliser une API que de créer chaque programme, méthode ou ensemble de données en partant de zéro. Les API reposent sur le concept d'abstraction, c'est-à-dire que l'utilisateur n'a pas à connaître le fonctionnement ou les complexités internes d'une API pour pouvoir s'en servir dans son environnement.
Les API étant conçues en priorité pour les développeurs, elles ne sont que rarement dotées d'une interface utilisateur graphique (IUG). Il existe cependant quelques exceptions. Google a publié un nouvel outil appelé APIs Explorer, qui vous permet de découvrir différentes API Google de façon interactive (pour en savoir plus à ce sujet, suivez l'atelier API Explorer : Qwik Start).
Les API mises à disposition par Google peuvent s'appliquer à différents domaines et secteurs : elles sont fréquemment utilisées pour le développement de sites Web, le machine learning, la science des données et les workflows d'administration système. Mais il ne s'agit là que d'un échantillon de cas d'utilisation. Si vous parcourez AnyAPI, par exemple, vous disposerez d'un petit aperçu de la multitude d'API existantes.
Lorsque Qwiklabs provisionne un nouveau projet Google Cloud pour une instance d'atelier, il active la plupart des API en arrière-plan pour que vous puissiez réaliser les tâches de l'atelier immédiatement. Si vous créez vos propres projets en dehors de Qwiklabs, vous devez activer vous-mêmes certaines API.
À mesure que vous progresserez dans l'utilisation de Google Cloud, vous commencerez à intégrer un plus grand nombre d'API dans votre workflow. Les utilisateurs chevronnés intègrent et utilisent presque exclusivement des API Cloud dans leur environnement local. Ils n'utilisent que rarement la console Cloud pour exécuter des outils et des services. Plusieurs dizaines d'ateliers sont disponibles en plusieurs langues pour vous donner l'occasion de vous exercer avec différentes API Google. En voici deux à titre d'exemple :
À présent, vous allez accéder à la bibliothèque d'API afin de découvrir les API Google disponibles.
La bibliothèque d'API offre un accès rapide à plus de 200 API Google, ainsi qu'à leurs documentation et options de configuration. Il est important de noter que, bien qu'elle réside dans la console, la bibliothèque vous permet d'accéder à toutes les API Google, et pas seulement à celles centrées sur Google Cloud. Cela souligne un aspect important, à savoir que les API sont essentielles à tous les services Google, et que les API Cloud ne relèvent pas toutes de la catégorie Google Cloud.
Entraînons-nous maintenant à activer une API dans la bibliothèque d'API. Supposons que vous êtes développeur d'applications mobiles pour un site de fitness et que vous voulez utiliser Google Fitness API pour créer votre application.
Si vous cliquez sur le bouton Retour dans la fenêtre de votre navigateur pour revenir à Fitness API dans la bibliothèque d'API, vous verrez que l'API est à présent activée :
La bibliothèque d'API fournit des liens vers les tutoriels, la documentation, les conditions d'utilisation et les méthodes interactives d'APIs Explorer. Pour consulter des informations sur les métriques et l'utilisation, vous utiliserez le tableau de bord "API et services".
Inspectez Fitness API dans le tableau de bord "API et services" de la console Cloud.
Le tableau de bord API et services fournit des informations détaillées sur les différentes API utilisées dans votre projet, y compris les niveaux de trafic, les taux d'erreur et les latences. Vous pouvez ainsi rapidement identifier les problèmes liés aux applications qui utilisent les services Google.
À partir de cette page, vous pouvez consulter et demander des quotas, contrôler l'accès aux ressources et aux données, et afficher les métriques.
Pour découvrir concrètement l'une de ces fonctionnalités, sélectionnez l'onglet Quotas.
Le nombre de requêtes que cette API autorise par jour et par minute est indiqué :
Vous savez à présent provisionner une API non cloud. La suite de l'atelier pratique concerne l'API Cloud Storage. Vous allez maintenant découvrir l'architecture et le fonctionnement de base des API.
Répondez aux questions à choix multiples ci-dessous pour réviser les concepts que nous avons abordés jusqu'ici.
Une API est un ensemble de méthodes permettant à des programmes de communiquer entre eux. Pour communiquer efficacement, ces programmes doivent respecter un protocole clair régissant le transfert et l'interprétation des données.
Internet est le canal de communication standard utilisé par les API pour transmettre des requêtes et des réponses entre différents programmes. Le modèle client-serveur est l'architecture sous-jacente qui permet aux API basées sur le Web d'échanger des informations.
Le client est un appareil informatique (smartphone, ordinateur portable, etc.) qui envoie une requête pour obtenir des données ou des ressources informatiques. Il faut que la requête du client soit formatée conformément au protocole convenu.
Le serveur stocke les données et/ou les ressources informatiques. Son rôle consiste à interpréter et traiter la requête du client.
Voici une représentation visuelle du modèle client-serveur :
Dans la mesure où les API utilisent le Web comme canal de communication, nombre d'entre elles sont associées au protocole HTTP, qui spécifie des règles et des méthodes d'échange de données entre clients et serveurs sur Internet. Le protocole HTTP n'est pas réservé aux API. Il s'agit aussi de la norme de communication Web qui permet l'envoi et la réception de données via Internet.
Les API qui suivent le protocole HTTP utilisent des méthodes de requête HTTP (également connues sous le nom de "verbes HTTP") pour transmettre des requêtes client aux serveurs. Les méthodes de requête HTTP les plus couramment employées sont GET, POST, PUT et DELETE.
On dénombre des centaines d'API, possédant toutes leurs propres fonctions et spécialisations. Cependant, il est important de souligner que toutes utilisent le même protocole et les mêmes méthodes sous-jacentes de communication client-serveur.
Répondez aux questions à choix multiples ci-dessous pour réviser les concepts que nous avons abordés jusqu'ici.
Les API ont recours à des méthodes HTTP pour interagir avec des données ou des services informatiques hébergés sur un serveur. Or, en l'absence d'accès homogène à des ressources spécifiques, ces méthodes sont inutiles. Les API utilisent donc des canaux de communication, baptisés points de terminaison, pour permettre aux clients d'accéder aux ressources dont ils ont besoin de manière simple et fiable.
Les points de terminaison sont des points d'accès vers des données ou des ressources informatiques hébergées sur un serveur. Ils prennent la forme d'un URI HTTP. Ils sont ajoutés à l'URL de base d'une API (par ex. http://example.com
) pour créer un chemin d'accès à une ressource ou à un conteneur de ressources donnés. Voici quelques exemples de points de terminaison :
http://example.com/storelocations
http://example.com/accounts
http://example.com/employees
Les exemples suivants sont aussi des points de terminaison valides :
http://example.com/storelocations/sanfrancisco
http://example.com/storelocations/newdelhi
http://example.com/storelocations/london
Vous pouvez ajouter des chaînes de requête à des points de terminaison (par ex. http://example.com/endpoint/?id=1
) pour transmettre les variables nécessaires au traitement d'une requête API. Les points de terminaison sont assimilés à des "noms" sur lesquels agissent des verbes (méthodes HTTP), et les API utilisent ce framework pour traiter des requêtes.
Plus précisément, un client envoie une requête constituée d'une méthode HTTP (verbe) et d'un point de terminaison (nom) pour recevoir des données spécifiques ou pour effectuer une action donnée sur le serveur. Il est important de comprendre que c'est le serveur qui traite la requête du client, en traduisant et en effectuant une opération spécifique basée sur la méthode et le point de terminaison fournis.
Étant donné que l'essentiel du travail se passe sur le backend, on peut dire qu'une API qui utilise des méthodes et des points de terminaison HTTP réside sur le serveur et agit comme un outil d'exécution des requêtes client. Ce modèle définit les API RESTful dans leurs grandes lignes. Nous allons les aborder plus en détail dans la section suivante. Pour vous familiariser avec la conception de points de terminaison pour une API, suivez l'atelier Cloud Endpoints : Qwik Start.
Les API utilisant le protocole, les méthodes de requête et les points de terminaison HTTP sont appelées API RESTful. REST (Representational State Transfer) est un style architectural qui définit des normes de communication sur le Web. Voici comment Google décrit un système RESTful :
…les ressources sont stockées dans un data store. Un client envoie une requête pour demander au serveur d'exécuter une action spécifique (par exemple la création, l'extraction, la mise à jour ou la suppression d'une ressource), et le serveur exécute l'action et envoie une réponse, souvent sous la forme d'une représentation de la ressource spécifiée.
Cette conception orientée ressources est un principe fondamental de REST. Les API RESTful sont modélisées sous la forme de :
…collections de ressources adressables individuellement… Les ressources et les méthodes correspondent aux noms et verbes des API. Avec le protocole HTTP, les noms de ressources sont naturellement mappé vers des URL et les méthodes vers des méthodes HTTP…
Ces termes vous semblent sans doute familiers, puisque vous avez étudié ces composants fondamentaux au cours des sections précédentes. REST est le framework le plus utilisé pour les API. En 2010, environ 74 % des API réseau publiques étaient des API REST HTTP.
En plus des chaînes de requête, les API RESTful peuvent également utiliser les champs suivants dans leurs requêtes :
Le corps est écrit dans le langage de mise en forme de données JSON ou XML.
Les API RESTful utilisent le format de fichier XML ou JSON (JavaScript Object Notation) pour les données contenues dans le corps d'une méthode de requête HTTP.
Le format JSON est plus utilisé que le format XML dans les API RESTful, car il est plus léger, plus simple à lire et plus rapide à analyser. Ensuite, nous vous présenterons rapidement la syntaxe et la structure JSON. Pour bénéficier d'une référence exhaustive, consultez la documentation sur la syntaxe JSON du W3C.
JSON prend en charge les types de données suivants :
Les données JSON sont constituées de paires clé/valeur. Il s'agit de données reliées constituées d'un identifiant unique (une clé) faisant référence à des données (valeur). La clé doit être de type string (chaîne), et la valeur peut appartenir à n'importe quel type de donnée mentionné ci-dessus.
Voici un exemple de paire clé-valeur simple dans JSON :
En voici d'autres :
Un objet JSON regroupe les données organisées en paires clé-valeur à l'aide d'accolades { }. Voici un exemple d'objet contenant trois paires clé-valeur :
Les paires clé-valeur stockées dans un objet sont séparées par une virgule.
Les fichiers JSON peuvent contenir un nombre indéfini d'objets et/ou de paires clé-valeur. Dans les situations de développement professionnel, il n'est pas rare de se retrouver avec des fichiers de plusieurs centaines, voire plusieurs milliers de lignes. En tant que développeur, vous le savez bien : il suffit d'une seule petite erreur de mise en forme ou de syntaxe pour corrompre la totalité de votre codebase.
Les programmes de validation JSON comme jsonlint ou, si vous utilisez Chrome comme navigateur principal, l'extension JSONView, identifient rapidement les erreurs de mise en forme et de syntaxe dans votre code JSON, ainsi que des stratégies correctives.
Passons à la validation JSON en pratique.
Ouvrez le programme de validation jsonlint dans un nouvel onglet.
Collez le bloc de code suivant dans le programme de validation :
Cliquez ensuite sur Validate JSON (Valider JSON). Un message vert indiquant Valid JSON
(JSON valide) s'affiche dans la section des résultats.
Collez le bloc de code suivant dans le programme de validation :
Vous constatez qu'il manque une virgule et que la mise en retrait n'est pas correcte. La mise en retrait est corrigée, et le programme de validation affiche les problèmes :
Le programme de validation a repéré qu'il manquait un identifiant (une virgule) après la deuxième ligne (ce que nous avions prévu). Si vous ajoutez une virgule après la deuxième ligne et que vous cliquez sur Validate JSON (Valider JSON), vous obtenez normalement le résultat suivant :
Dans les ateliers où vous utilisez des API et JSON, des programmes de validation JSON comme celui-ci vous seront très utiles pour déboguer des erreurs de syntaxe.
Répondez aux questions à choix multiples ci-dessous pour réviser les concepts que nous avons abordés jusqu'ici.
Vous allez mettre en application ce que vous avez appris en passant des appels d'API REST/JSON Cloud Storage dans Cloud Shell pour créer des buckets et importer du contenu.
Ouvrez à présent une session Cloud Shell. Exécutez la commande suivante pour créer et modifier un fichier appelé values.json
:
Dans l'éditeur de texte nano
, copiez et collez les éléments suivants, en remplaçant <YOUR_BUCKET_NAME>
par un nom de bucket unique :
nano
avec le raccourci CTRL+X → Y → ENTRÉE.Vous venez de créer un fichier JSON contenant un objet qui contient lui-même trois paires clé-valeur : name
, location
et storageClass
. Ce sont les mêmes valeurs qui sont requises lorsque vous créez un bucket avec l'outil de ligne de commande gsutil
ou dans la console.
Mais avant de créer un bucket avec l'API REST/JSON Cloud Storage, vous devez mettre en place les règles d'authentification et d'autorisation nécessaires.
La dernière partie de cet atelier concerne les processus d'authentification et d'autorisation des API.
L'authentification détermine qui vous êtes, et l'autorisation, ce que vous pouvez faire.
Les API Google utilisent trois types de services d'authentification/d'autorisation. Il s'agit des services suivants : "Clés d'API", "Comptes de service" et "OAuth". Une API utilisera l'un de ces services d'authentification en fonction des ressources demandées et de l'emplacement à partir duquel l'API est appelée.
Les clés API sont des jetons secrets qui se présentent généralement sous la forme d'une chaîne chiffrée. La génération et l'utilisation des clés API sont des processus rapides. Les API qui utilisent des méthodes ou des données publiques ont souvent recours à des clés API pour authentifier les utilisateurs, ce qui permet une prise en main rapide par les développeurs.
Concernant Google Cloud, les clés API identifient le projet qui appelle une API. En identifiant le projet appelant, les clés API rendent possible l'association entre les informations d'utilisation et ce projet, et peuvent rejeter des appels émis par des projets n'ayant pas reçu d'autorisation ou n'ayant pas été activés par l'API.
Les jetons OAuth sont semblables aux clés API en termes de format, mais ils sont plus sécurisés et peuvent être liés à des identités ou à des comptes d'utilisateur. Ces jetons sont principalement utilisés lorsque les API donnent au développeur des moyens d'accès aux données de l'utilisateur.
Alors que les clés API permettent aux développeurs d'accéder à l'ensemble des fonctionnalités d'une API, les ID client OAuth se basent tous sur un champ d'application donné (différents droits seront accordés à différentes entités).
Un compte de service est un type particulier de compte Google qui appartient à votre application ou à une machine virtuelle (VM), et non à un utilisateur final individuel. Votre application revêt l'identité du compte de service pour appeler les API Google, afin que les utilisateurs ne soient pas directement impliqués.
Vous pouvez utiliser un compte de service en fournissant sa clé privée à votre application, ou recourir aux comptes de service intégrés disponibles lors de l'exécution sur Cloud Functions, Google App Engine, Compute Engine ou Google Kubernetes Engine.
Pour suivre un atelier traitant des rôles et des comptes de service, reportez-vous à Comptes de services et rôles : principes de base.
La plate-forme Cloud Storage héberge les données utilisateur et permet d'y accéder. C'est pourquoi nous devons générer un jeton OAuth pour pouvoir utiliser les services de cette plate-forme.
Ouvrez OAuth 2.0 Playground dans un nouvel onglet. Ce service vous permet de générer très simplement vos jetons OAuth.
Faites défiler l'écran vers le bas et sélectionnez Cloud Storage API V1.
Sélectionnez le champ d'application de https://www.googleapis.com/auth/devstorage.full_control :
Cliquez sur la case bleue qui indique Authorize APIs (Autoriser les API). Une page de connexion Google s'ouvre.
Sélectionnez votre nom d'utilisateur Qwiklabs, puis cliquez sur Continue (Continuer) lorsque vous êtes invité à accorder des autorisations.
Un code d'autorisation doit être généré à l'étape 2.
Copiez le jeton d'accès, car vous l'utiliserez à l'étape suivante.
ls
et appuyez sur Entrée. Vous devriez voir le fichier values.json
que vous avez créé auparavant et un fichier README-cloudshell.txt
:Résultat :
Exécutez la commande suivante pour définir votre jeton OAuth2 comme variable d'environnement, en remplaçant <YOUR_TOKEN>
par le jeton d'accès que vous avez généré :
Exécutez la commande suivante pour définir l'ID de votre projet comme variable d'environnement, en remplaçant <YOUR_PROJECT_ID>
par l'ID de votre projet Qwiklabs :
Exécutez maintenant la commande suivante pour créer un bucket Cloud Storage :
values.json
et remplacez le nom du bucket.
Cette requête constitue l'aboutissement de tout ce que vous avez appris jusqu'ici. Vous avez utilisé l'outil d'interface de ligne de commande curl pour effectuer une requête de méthode POST HTTP. Vous avez ajouté le fichier values.json
au corps de la requête. Vous avez transmis le jeton OAuth et une spécification JSON comme en-têtes de requête. Cette requête a été acheminée vers le point de terminaison Cloud Storage, qui contient un paramètre de chaîne de requête défini sur l'ID de votre projet.
Pour voir le bucket que vous venez de créer, accédez au menu de navigation et sélectionnez Cloud Storage > Buckets.
Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à créer un bucket avec l'API JSON/REST Cloud Storage, vous recevez une note d'évaluation.
Vous pouvez utiliser l'API JSON/REST Cloud Storage pour importer des fichiers dans des buckets.
Dans votre session Cloud Shell, cliquez sur l'icône de menu à trois points en haut à droite. Cliquez sur Importer > Sélectionner un fichier. Sélectionnez et importer le fichier demo-image.png
. L'image sera alors ajoutée à votre répertoire.
Exécutez la commande suivante pour obtenir le chemin d'accès au fichier image :
Vous devez obtenir un résultat semblable à celui-ci :
Exécutez la commande suivante pour définir le chemin d'accès au fichier comme variable d'environnement, en remplaçant <DEMO_IMAGE_PATH>
par le résultat obtenu lors de la commande précédente :
Exécutez la commande suivante pour définir le nom de votre bucket comme variable d'environnement, en remplaçant <YOUR_BUCKET>
par le nom de votre bucket :
À présent, exécutez la commande suivante pour importer l'image de démonstration dans votre bucket Cloud Storage :
Vous devez obtenir un résultat semblable à celui-ci :
Pour voir l'image ajoutée à votre bucket, ouvrez le menu de navigation et sélectionnez Cloud Storage > Buckets.
Cliquez ensuite sur le nom de votre bucket. L'image demo-image
a normalement été ajoutée :
Si vous cliquez sur l'image, la page Détails des objets s'ouvre.
Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à importer un fichier à l'aide de l'API JSON/REST Cloud Storage, vous recevez une note d'évaluation.
Dans cet atelier, vous avez acquis des connaissances solides sur les API, et vous avez développé votre expérience pratique sur l'API JSON/REST Cloud Storage. Vous en savez à présent plus sur les API Cloud, l'architecture des API, le protocole et les méthodes HTTP, les points de terminaison, les API RESTful, JSON et les pratiques d'authentification des API. Vous êtes maintenant prêt à suivre d'autres ateliers sur les API dans Qwiklabs.
Cet atelier d'auto-formation fait partie des quêtes OK Google: Build Interactive Apps with Google Assistant, Machine Learning APIs, Workspace Integrations, Developing Data and Machine Learning Apps with C#, Exploring APIs et Develop and Secure APIs with Apigee X. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez une quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à n'importe quelle quête contenant cet atelier pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.
Pour améliorer vos connaissances pratiques sur les API, reportez-vous aux ateliers suivants :
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Copyright 2025 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.
Ce contenu n'est pas disponible pour le moment
Nous vous préviendrons par e-mail lorsqu'il sera disponible
Parfait !
Nous vous contacterons par e-mail s'il devient disponible
One lab at a time
Confirm to end all existing labs and start this one