Skip to content

Commit f436b9e

Browse files
VinetosMachinisteWeb
authored andcommitted
[WIP] Traduction de cookbook/using-axios-to-consume-apis.md (#166)
* Debut traduction de using-axios-to-consume-apis * Update using-axios-to-consume-apis.md * Update using-axios-to-consume-apis.md * Finish translation using-axios-to-consume-apis.md * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update src/v2/cookbook/using-axios-to-consume-apis.md Co-Authored-By: Vinetos <[email protected]> * Update using-axios-to-consume-apis.md * Update src/v2/cookbook/using-axios-to-consume-apis.md * Update src/v2/cookbook/using-axios-to-consume-apis.md
1 parent 89536a4 commit f436b9e

File tree

1 file changed

+31
-32
lines changed

1 file changed

+31
-32
lines changed

Diff for: src/v2/cookbook/using-axios-to-consume-apis.md

+31-32
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
---
2-
title: Using Axios to Consume APIs (EN)
2+
title: Utiliser Axios pour consommer des API
33
type: cookbook
44
order: 9
55
---
66

7-
## Base Example
7+
## Exemple simple
8+
Lors de la création d'une application Web, il est fréquent que vous souhaitiez utiliser et afficher les données provenant d'une API. Il existe plusieurs manières de le faire, mais une approche très populaire consiste à utiliser [axios](https://github.com/axios/axios), un client HTTP basé sur les Promesses.</p>
89

9-
<p>Cette page est en cours de traduction. Pour nous aider, vous pouvez participer sur <a href="https://github.com/vuejs-fr/vuejs.org" target="_blank">le dépôt GitHub dédié de Vuejs-FR</a>.</p><p>There are many times when building application for the web that you may want to consume and display data from an API. There are several ways to do so, but a very popular approach is to use [axios](https://github.com/axios/axios), a promise-based HTTP client.</p>
10+
Dans cet exemple, nous allons utiliser l'[API CoinDesk](https://www.coindesk.com/api/) pour afficher les prix du Bitcoin qui sont mis à jour toutes les minutes. Premièrement, nous devons installer axios avec npm/yarn ou à partir d'un lien CDN.
1011

11-
In this exercise, we'll use the [CoinDesk API](https://www.coindesk.com/api/) to walk through displaying Bitcoin prices, updated every minute. First, we'd install axios with either npm/yarn or through a CDN link.
12-
13-
There are a number of ways we can request information from the API, but it's nice to first find out what the shape of the data looks like, in order to know what to display. In order to do so, we'll make a call to the API endpoint and output it so we can see it. We can see in the CoinDesk API documentation, that this call will be made to `https://api.coindesk.com/v1/bpi/currentprice.json`. So first, we'll create a data property that will eventually house our information, and we'll retrieve the data and assign it using the `mounted` lifecycle hook:
12+
Il existe plusieurs manières d'interroger une API, mais il est préférable de d'abord connaitre la structure des données qu'elle renvoie afin de savoir ce qu'elle va afficher. Pour ce faire, nous allons appeler le point de terminaison de l'API et afficher le résultat afin que nous puissions connaître sa structure et son contenu. Nous pouvons voir dans la documentation de l'API de CoinDesk que l'appel doit être effectué à l'adresse `https://api.coindesk.com/v1/bpi/currentprice.json`. Nous allons donc commencer par créer une donnée qui gardera nos informations, puis nous récupérerons les données et les attribuerons à l'aide de l'étape `mounted` du cycle de vie :
1413

1514
```js
1615
new Vue({
@@ -34,29 +33,29 @@ new Vue({
3433
</div>
3534
```
3635

37-
And what we get is this:
36+
Nous obtenons ceci :
3837

39-
<p data-height="350" data-theme-id="32763" data-slug-hash="80043dfdb7b90f138f5585ade1a5286f" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="First Step Axios and Vue" class="codepen">See the Pen <a href="https://codepen.io/team/Vue/pen/80043dfdb7b90f138f5585ade1a5286f/">First Step Axios and Vue</a> by Vue (<a href="https://codepen.io/Vue">@Vue</a>) on <a href="https://codepen.io">CodePen</a>.</p>
38+
<p data-height="350" data-theme-id="32763" data-slug-hash="80043dfdb7b90f138f5585ade1a5286f" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="Premiere étape Axios et Vue" class="codepen">Voir l'exemple <a href="https://codepen.io/team/Vue/pen/80043dfdb7b90f138f5585ade1a5286f/">Premiere étape Axios et Vue</a> par Vue (<a href="https://codepen.io/Vue">@Vue</a>) sur <a href="https://codepen.io">CodePen</a>.</p>
4039
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>
4140

42-
Excellent! We've got some data. But it looks pretty messy right now so let's display it properly and add some error handling in case things aren't working as expected or it takes longer than we thought to get the information.
41+
Parfait ! Nous avons des données. Mais cela semble assez désordonné pour le moment, alors affichons-les correctement et ajoutons un traitement d'erreur si les choses ne fonctionnent pas comme prévu, ou s'il faut plus de temps que nécessaire pour obtenir les informations.
4342

44-
## Real-World Example: Working with the Data
43+
## Exemple concret : l'utilisation des données
4544

46-
### Displaying Data from an API
45+
### Affichage des données d'une API
4746

48-
It's pretty typical that the information we'll need is within the response, and we'll have to traverse what we've just stored to access it properly. In our case, we can see that the price information we need lives in `response.data.bpi`. If we use this instead, our output is as follows:
47+
Il est assez courant que les informations dont nous avons besoin se trouvent dans la réponse. Nous devons parcourir ce que nous venons de stocker pour y accéder correctement. Dans notre cas, nous pouvons voir que les informations de prix dont nous avons besoin sont stockées dans `response.data.bpi`. Si nous l'utilisons, notre sortie sera :
4948

5049
```js
5150
axios
5251
.get('https://api.coindesk.com/v1/bpi/currentprice.json')
5352
.then(response => (this.info = response.data.bpi))
5453
```
5554

56-
<p data-height="200" data-theme-id="32763" data-slug-hash="6100b10f1b4ac2961208643560ba7d11" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="Second Step Axios and Vue" class="codepen">See the Pen <a href="https://codepen.io/team/Vue/pen/6100b10f1b4ac2961208643560ba7d11/">Second Step Axios and Vue</a> by Vue (<a href="https://codepen.io/Vue">@Vue</a>) on <a href="https://codepen.io">CodePen</a>.</p>
55+
<p data-height="200" data-theme-id="32763" data-slug-hash="6100b10f1b4ac2961208643560ba7d11" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="Deuxième étape Axios et Vue" class="codepen">Voir l'exemple <a href="https://codepen.io/team/Vue/pen/6100b10f1b4ac2961208643560ba7d11/">Premiere étape Axios et Vue</a> par Vue (<a href="https://codepen.io/Vue">@Vue</a>) sur <a href="https://codepen.io">CodePen</a>.</p>
5756
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>
5857

59-
This is a lot easier for us to display, so we can now update our HTML to display only the information we need from the data we've received, and we'll create a [filter](../api/#Vue-filter) to make sure that the decimal is in the appropriate place as well.
58+
C'est beaucoup plus facile à afficher ; nous pouvons donc mettre à jour notre code HTML pour n'afficher que les informations dont nous avons besoin à partir des données reçues. Pour ce faire, nous allons créer un [filtre](../api/#Vue-filter) pour nous assurer que la décimale se trouve également à la place appropriée.
6059

6160
```html
6261
<div id="app">
@@ -81,18 +80,18 @@ filters: {
8180
},
8281
```
8382

84-
<p data-height="300" data-theme-id="32763" data-slug-hash="9d59319c09eaccfaf35d9e9f11990f0f" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="Third Step Axios and Vue" class="codepen">See the Pen <a href="https://codepen.io/team/Vue/pen/9d59319c09eaccfaf35d9e9f11990f0f/">Third Step Axios and Vue</a> by Vue (<a href="https://codepen.io/Vue">@Vue</a>) on <a href="https://codepen.io">CodePen</a>.</p>
83+
<p data-height="300" data-theme-id="32763" data-slug-hash="9d59319c09eaccfaf35d9e9f11990f0f" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="Troisieme étape Axios et Vue" class="codepen">Voir l'exemple <a href="https://codepen.io/team/Vue/pen/9d59319c09eaccfaf35d9e9f11990f0f/">Troisieme étape Axios et Vue</a> par Vue (<a href="https://codepen.io/Vue">@Vue</a>) sur <a href="https://codepen.io">CodePen</a>.</p>
8584
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>
8685

87-
### Dealing with Errors
86+
### Travailler avec des erreurs
8887

89-
There are times when we might not get the data we need from the API. There are several reasons that our axios call might fail, including but not limited to:
88+
Parfois, nous ne pouvons pas recevoir de données de l'API. Il peut y avoir de nombreuses raisons pour qu'un appel puisse échouer. Par exemple :
9089

91-
* The API is down.
92-
* The request was made incorrectly.
93-
* The API isn't giving us the information in the format that we anticipated.
90+
* L'API est hors-service.
91+
* La requête a mal été réalisée.
92+
* L'API ne nous donne pas les informations dans le format attendu.
9493

95-
When making this request, we should be checking for just such circumstances, and giving ourselves information in every case so we know how to handle the problem. In an axios call, we'll do so by using `catch`.
94+
Quand nous créons cette requête, nous devrions vérifier si de tels cas se produisent et nous informer pour traiter ce problème. Dans un appel axios, nous pouvons le faire en utilisant `catch`.
9695

9796
```js
9897
axios
@@ -101,7 +100,7 @@ axios
101100
.catch(error => console.log(error))
102101
```
103102

104-
This will let us know if something failed during the API request, but what if the data is mangled or the API is down? Right now the user will just see nothing. We might want to build a loader for this case, and then tell the user if we're not able to get the data at all.
103+
Cela nous permettra de savoir si quelque chose a échoué lors de la requête à l'API, mais que se passerait-il si les données sont endommagées ou si l'API est en panne ? Pour l'instant, l'utilisateur ne verra rien. Nous devrions peut-être créer un loader pour ce cas, puis informer l'utilisateur si nous ne pouvons pas obtenir les données.
105104

106105
```js
107106
new Vue({
@@ -138,11 +137,11 @@ new Vue({
138137
<h1>Bitcoin Price Index</h1>
139138

140139
<section v-if="errored">
141-
<p>We're sorry, we're not able to retrieve this information at the moment, please try back later</p>
140+
<p>Nous sommes désolés, nous ne sommes pas en mesure de récupérer ces informations pour le moment. Veuillez réessayer ultérieurement.</p>
142141
</section>
143142

144143
<section v-else>
145-
<div v-if="loading">Loading...</div>
144+
<div v-if="loading">Chargement...</div>
146145

147146
<div
148147
v-else
@@ -159,21 +158,21 @@ new Vue({
159158
</div>
160159
```
161160

162-
You can hit the rerun button on this pen to see the loading status briefly while we gather data from the API:
161+
Vous pouvez appuyer sur le bouton de réexécution de cet exemple pour connaitre brièvement l'état du chargement pendant la collecte des données à partir de l'API :
163162

164-
<p data-height="300" data-theme-id="32763" data-slug-hash="6c01922c9af3883890fd7393e8147ec4" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="Fourth Step Axios and Vue" class="codepen">See the Pen <a href="https://codepen.io/team/Vue/pen/6c01922c9af3883890fd7393e8147ec4/">Fourth Step Axios and Vue</a> by Vue (<a href="https://codepen.io/Vue">@Vue</a>) on <a href="https://codepen.io">CodePen</a>.</p>
163+
<p data-height="300" data-theme-id="32763" data-slug-hash="6c01922c9af3883890fd7393e8147ec4" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="Quatrième étape Axios et Vue" class="codepen">Voir l'exemple <a href="https://codepen.io/team/Vue/pen/6c01922c9af3883890fd7393e8147ec4/">Quatrième étape Axios et Vue</a> par Vue (<a href="https://codepen.io/Vue">@Vue</a>) sur <a href="https://codepen.io">CodePen</a>.</p>
165164
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>
166165

167-
This can be even further improved with the use of components for different sections and more distinct error reporting, depending on the API you're using and the complexity of your application.
166+
Cela peut encore être amélioré avec l'utilisation de composants pour différentes sections et un rapport d'erreurs plus distinct, en fonction de l'API utilisée et de la complexité de votre application.
168167

169-
## Alternative Patterns
168+
## Modèles alternatifs
170169

171170
### Fetch API
172171

173-
The [Fetch API](https://developers.google.com/web/updates/2015/03/introduction-to-fetch) is a powerful native API for these types of requests. You may have heard that one of the benefits of the Fetch API is that you don't need to load an external resource in order to use it, which is true! Except... that it's not fully supported yet, so you will still need to use a polyfill. There are also some gotchas when working with this API, which is why many prefer to use axios for now. This may very well change in the future though.
172+
L'[API Fetch](https://developers.google.com/web/updates/2015/03/introduction-to-fetch) est une API native puissante pour ces types de demandes. Vous avez peut-être entendu dire que l'un des avantages de l'API Fetch est qu'il n'est pas nécessaire de charger une ressource externe pour l'utiliser, ce qui est vrai ! Sauf que… ce n'est pas encore complètement supporté, vous aurez donc toujours besoin d'utiliser un polyfill. Il y a aussi quelques pièges à éviter avec cette API, raison pour laquelle beaucoup préfèrent utiliser axios pour le moment. Cela pourrait cependant très bien changer dans le futur.
174173

175-
If you're interested in using the Fetch API, there are some [very good articles](https://scotch.io/@bedakb/lets-build-type-ahead-component-with-vuejs-2-and-fetch-api) explaining how to do so.
174+
Si vous êtes intéressé par l’utilisation de l’API Fetch vous trouverez de [très bons articles](https://scotch.io/@bedakb/lets-build-type-ahead-component-with-vuejs-2-and-fetch-api) expliquant comment faire.
176175

177-
## Wrapping Up
176+
## Aller plus loin
178177

179-
There are many ways to work with Vue and axios beyond consuming and displaying an API. You can also communicate with Serverless Functions, post/edit/delete from an API where you have write access, and many other benefits. Due to the straightforward integration of these two libraries, it's become a very common choice for developers who need to integrate HTTP clients into their workflow.
178+
Il existe de nombreuses façons de travailler avec Vue et axios au-delà de la consommation et de l'affichage d'une API. Vous pouvez également communiquer avec des Fonctions Sans Serveur, publier / éditer / supprimer à partir d'une API où vous disposez d'un accès en écriture, et de nombreux autres avantages. En raison de l’intégration directe de ces deux bibliothèques, c'est devenu un choix très courant pour les développeurs qui doivent intégrer des clients HTTP à leur workflow.

0 commit comments

Comments
 (0)