Skip to content

Commit dfacd56

Browse files
committed
bump
1 parent bf07319 commit dfacd56

File tree

3 files changed

+37
-18
lines changed

3 files changed

+37
-18
lines changed

index.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,16 @@ est indisponible.
6262
- [Script avec `click`]({{site.url}}{{site.baseurl}}/slides/03-httpx/requrl_click.py)
6363
- [Script avec `argparse`]({{site.url}}{{site.baseurl}}/slides/03-httpx/requrl_argparse.py)
6464

65+
### 2023-12-19 — APIs REST en mode client
66+
67+
- {% notebook_badges slides/05-REST/rest.py.md %} [Notebook
68+
REST]({{site.url}}{{site.baseurl}}/slides/05-REST/rest.py.ipynb)
69+
70+
Vos solutions pour les exercices du notebook REST sont à envoyer dans un zip à
71+
<lgrobol@parisnanterre.fr> avant le 29/01. L'objet du message devra être `[Web 2024] TP REST` et le
72+
nom de fichier devra être de la forme `prénom_nom-établissment.zip`, `établissement` étant
73+
`Nanterre`, `P3` ou `Inalco` et vos prénoms et noms doivent être présents dans le corps du message.
74+
6575
## Utilisation en local
6676

6777
Les supports de ce cours sont écrits en Markdown, convertis en notebooks avec

slides/05-REST/rest.py.md

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
---
22
jupyter:
33
jupytext:
4+
custom_cell_magics: kql
45
formats: ipynb,md
56
split_at_heading: true
67
text_representation:
78
extension: .md
89
format_name: markdown
910
format_version: '1.3'
10-
jupytext_version: 1.16.0
11+
jupytext_version: 1.11.2
1112
kernelspec:
12-
display_name: Python 3 (ipykernel)
13+
display_name: cours-web
1314
language: python
1415
name: python3
1516
---
@@ -24,10 +25,6 @@ Cours 5 : consommer des API web
2425

2526
<!-- #endregion -->
2627

27-
```python
28-
from IPython.display import display
29-
```
30-
3128
```python
3229
%pip install -U requests
3330
```
@@ -77,8 +74,8 @@ se passe par exemple avec une requête `GET` sur le point d'accès (*endpoint*)
7774
```
7875

7976
```python
80-
import requests
81-
requests.get("https://api.github.com/users/loicgrobol").text
77+
import httpx
78+
print(httpx.get("https://api.github.com/users/loicgrobol").text)
8279
```
8380

8481
Le serveur est alors littéralement un serveur web, les concepts s'alignent !
@@ -120,12 +117,12 @@ Les principes (un peu simplifiés) de REST sont
120117

121118
## Accéder à des API
122119

123-
On l'a déjà fait [plusieurs](../01-internet/internets.py.md) [fois](../04-requests/requests.py.md) !
120+
On l'a déjà fait [plusieurs](../01-internet/internets.py.md) [fois](../03-httpx/httpx.py.md) !
124121

125122
On a dit qu'il suffisait de faire des requêtes HTTP et ça on sait déjà faire :
126123

127124
```python
128-
print(requests.get("https://jsonplaceholder.typicode.com/comments/1").text)
125+
print(httpx.get("https://jsonplaceholder.typicode.com/comments/1").text)
129126
```
130127

131128
Par contre, on a pas reparlé de ce format étrange.
@@ -135,24 +132,24 @@ Par contre, on a pas reparlé de ce format étrange.
135132

136133
```python
137134
import ast
138-
ast.literal_eval(requests.get("https://jsonplaceholder.typicode.com/comments/1").text)
135+
ast.literal_eval(httpx.get("https://jsonplaceholder.typicode.com/comments/1").text)
139136
```
140137

141138
Mais ce n'est pas tout à fait ça
142139

143140
```python
144-
ast.literal_eval(requests.get("https://jsonplaceholder.typicode.com/todos/1").text)
141+
ast.literal_eval(httpx.get("https://jsonplaceholder.typicode.com/todos/1").text)
145142
```
146143

147144
Tiens, d'ailleurs, est-ce que vous voyez le problème ?
148145

149146
```python
150-
print(requests.get("https://jsonplaceholder.typicode.com/todos/1").text)
147+
print(httpx.get("https://jsonplaceholder.typicode.com/todos/1").text)
151148
```
152149

153150
## JSON
154151

155-
***J**ava**S**cript **O**bject **N**otation*. Comme son nom l'indique, c'est (à de tout, tout petits
152+
**J**ava**S**cript **O**bject **N**otation*. Comme son nom l'indique, c'est (à de tout, tout petits
156153
détails près) la syntaxe pour noter des objets en JavaScript.
157154

158155
C'est très très très proche de la syntaxe des `dict` littéraux en Python. Sauf quand c'est
@@ -170,7 +167,7 @@ C'est facile de le parser en Python et de récupérer un `dict` avec le module n
170167

171168
```python
172169
import json
173-
data_as_a_str = requests.get("https://api.github.com/users/loicgrobol").text
170+
data_as_a_str = httpx.get("https://api.github.com/users/loicgrobol").text
174171
data_as_a_dict = json.loads(data_as_a_str)
175172
data_as_a_dict
176173
```
@@ -183,18 +180,19 @@ s = json.dumps(d)
183180
s
184181
```
185182

186-
En plus `requests` le fait pour nous
183+
En plus `httpx` le fait pour nous
187184

188185
```python
189-
data_as_a_dict = requests.get("https://api.github.com/users/loicgrobol").json()
186+
data_as_a_dict = httpx.get("https://api.github.com/users/loicgrobol").json()
187+
data_as_a_dict
190188
```
191189

192190
Même pas besoin de se fatiguer.
193191

194192
Si on veut *envoyer* du JSON, il y a une subtilité :
195193

196194
```python
197-
response = requests.post(
195+
response = httpx.post(
198196
"https://jsonplaceholder.typicode.com/todos",
199197
json={"userId": 1, "title": "Buy milk", "completed": False}
200198
)
@@ -205,6 +203,9 @@ Il faut passer les données au paramètre `json` de `requests.post` et non `data
205203
lui passer sous forme de chaîne de caractère et avoir dans les *headers* `"Content-Type"` qui vaut
206204
`"application/json"`).
207205

206+
207+
Attention, si vous essayez de faire ça dans un `get`, httx ne va pas être d'accord : ce n'est pas une méthode HTTP avec laquelle on est censé envoyer des données.
208+
208209
## 🌐 Exo 🌐
209210

210211
### Le cheeseshop

slides/13-git/git.py.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,3 +301,11 @@ Un des trucs les plus utiles de git, ce sont les branches, qui permettent de gé
301301

302302
On va suivre ensemble le tutoriel interactif de [*Learn Git Branching*](https://learngitbranching.js.org/)
303303
<!-- #endregion -->
304+
305+
<!-- #region slideshow={"slide_type": "slide"} -->
306+
## Ressources
307+
308+
- [Oh shit Git](https://ohshitgit.com/)
309+
310+
<!-- #endregion -->
311+

0 commit comments

Comments
 (0)