8000 ๐ŸŒ translate tutorial/query-params.md ยท fastapi/fastapi@952898f ยท GitHub
[go: up one dir, main page]

Skip to content

Commit 952898f

Browse files
committed
๐ŸŒ translate tutorial/query-params.md
1 parent b53c443 commit 952898f

File tree

1 file changed

+198
-0
lines changed

1 file changed

+198
-0
lines changed
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
# ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜
2+
3+
๊ฒฝ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ, "์ฟผ๋ฆฌ" ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž๋™ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.
4+
5+
```Python hl_lines="9"
6+
{!../../../docs_src/query_params/tutorial001.py!}
7+
```
8+
9+
์ฟผ๋ฆฌ๋Š” URL์—์„œ `?` ํ›„์— ๋‚˜์˜ค๊ณ  `&`์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ํ‚ค-๊ฐ’ ์Œ์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.
10+
11+
์˜ˆ๋ฅผ ๋“ค์–ด, URL์—์„œ:
12+
13+
```
14+
http://127.0.0.1:8000/items/?skip=0&limit=10
15+
```
16+
17+
...์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š”:
18+
19+
* `skip`: ๊ฐ’ `0`์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
20+
* `limit`: ๊ฐ’ `10`์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
21+
22+
URL์˜ ์ผ๋ถ€์ด๋ฏ€๋กœ "์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ" ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
23+
24+
ํ•˜์ง€๋งŒ ํŒŒ์ด์ฌ ํƒ€์ž…๊ณผ ํ•จ๊ป˜ ์„ ์–ธํ•  ๊ฒฝ์šฐ(์œ„ ์˜ˆ์—์„œ `int`), ํ•ด๋‹น ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜๋˜๊ณ  ์ด์— ๋Œ€ํ•ด ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
25+
26+
๊ฒฝ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ ์šฉ๋œ ๋™์ผํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค:
27+
28+
* (๋‹น์—ฐํžˆ) ํŽธ์ง‘๊ธฐ ์ง€์›
29+
* ๋ฐ์ดํ„ฐ <abbr title="HTTP ์š”์ฒญ์—์„œ ์ „๋‹ฌ๋˜๋Š” ๋ฌธ์ž์—ด์„ ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜">"ํŒŒ์‹ฑ"</abbr>
30+
* ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ
31+
* ์ž๋™ ๋ฌธ์„œํ™”
32+
33+
## ๊ธฐ๋ณธ๊ฐ’
34+
35+
์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๊ฒฝ๋กœ์—์„œ ๊ณ ์ •๋œ ๋ถ€๋ถ„์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ ํƒ์ ์ผ ์ˆ˜ ์žˆ๊ณ  ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
36+
37+
์œ„ ์˜ˆ์—์„œ `skip=0`๊ณผ `limit=10`์€ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
38+
39+
๊ทธ๋Ÿฌ๋ฏ€๋กœ URL๋กœ ์ด๋™ํ•˜๋ฉด:
40+
41+
```
42+
http://127.0.0.1:8000/items/
43+
```
44+
45+
์•„๋ž˜๋กœ ์ด๋™ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
46+
47+
```
48+
http://127.0.0.1:8000/items/?skip=0&limit=10
49+
```
50+
51+
ํ•˜์ง€๋งŒ ๊ฐ€๋ น ์•„๋ž˜๋กœ ์ด๋™ํ•œ ๊ฒฝ์šฐ:
52+
53+
```
54+
http://127.0.0.1:8000/items/?skip=20
55+
```
56+
57+
ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์€ ์•„๋ž˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค:
58+
59+
* `skip=20`: URL์—์„œ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค
60+
* `limit=10`: ๊ธฐ๋ณธ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค
61+
62+
## ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜
63+
64+
๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์„ `None`์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
65+
66+
```Python hl_lines="9"
67+
{!../../../docs_src/query_params/tutorial002.py!}
68+
```
69+
70+
์ด ๊ฒฝ์šฐ ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜ `q`๋Š” ์„ ํƒ์ ์ด๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ `None` ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.
71+
72+
!!! check "ํ™•์ธ"
73+
**FastAPI**๋Š” `item_id`๊ฐ€ ๊ฒฝ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜์ด๊ณ  `q`๋Š” ๊ฒฝ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ •๋„๋กœ ์ถฉ๋ถ„ํžˆ ๋˜‘๋˜‘ํ•ฉ๋‹ˆ๋‹ค.
74+
75+
!!! note "์ฐธ๊ณ "
76+
FastAPI๋Š” `q`๊ฐ€ `= None`์ด๋ฏ€๋กœ ์„ ํƒ์ ์ด๋ผ๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•ฉ๋‹ˆ๋‹ค.
77+
78+
`Optional[str]`์— ์žˆ๋Š” `Optional`์€ FastAPI(FastAPI๋Š” `str` ๋ถ€๋ถ„๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค)๊ฐ€ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ์ง€๋งŒ, `Optional[str]`์€ ํŽธ์ง‘๊ธฐ์—๊ฒŒ ์ฝ”๋“œ์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค.
79+
80+
## ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜ ํ˜•๋ณ€ํ™˜
81+
82+
`bool` ํ˜•์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์•„๋ž˜์ฒ˜๋Ÿผ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค:
83+
84+
```Python hl_lines="9"
85+
{!../../../docs_src/query_params/tutorial003.py!}
86+
```
87+
88+
์ด ๊ฒฝ์šฐ, ์•„๋ž˜๋กœ ์ด๋™ํ•˜๋ฉด:
89+
90+
```
91+
http://127.0.0.1:8000/items/foo?short=1
92+
```
93+
94+
๋˜๋Š”
95+
96+
```
97+
http://127.0.0.1:8000/items/foo?short=True
98+
```
99+
100+
๋˜๋Š”
101+
102+
```
103+
http://127.0.0.1:8000/items/foo?short=true
104+
```
105+
106+
๋˜๋Š”
107+
108+
```
109+
http://127.0.0.1:8000/items/foo?short=on
110+
```
111+
112+
๋˜๋Š”
113+
114+
```
115+
http://127.0.0.1:8000/items/foo?short=yes
116+
```
117+
118+
๋˜๋Š” ๋‹ค๋ฅธ ์–ด๋–ค ๋ณ€ํ˜•(๋Œ€๋ฌธ์ž, ์ฒซ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž ๋“ฑ)์ด๋”๋ผ๋„ ํ•จ์ˆ˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ `bool`ํ˜•์„ ๊ฐ€์ง„ `short`์˜ ๊ฐ’์ด `True`์ž„์„ ์••๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ `False`์ž…๋‹ˆ๋‹ค.
119+
120+
121+
## ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ/์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜
122+
123+
์—ฌ๋Ÿฌ ๊ฒฝ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋™์‹œ์— ์„ ์–ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ **FastAPI**๋Š” ์–ด๋А ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
124+
125+
๊ทธ๋ฆฌ๊ณ  ํŠน์ • ์ˆœ์„œ๋กœ ์„ ์–ธํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
126+
127+
๋งค๊ฐœ๋ณ€์ˆ˜๋“ค์€ ์ด๋ฆ„์œผ๋กœ ๊ฐ์ง€๋ฉ๋‹ˆ๋‹ค:
128+
129+
```Python hl_lines="8 10"
130+
{!../../../docs_src/query_params/tutorial004.py!}
131+
```
132+
133+
## ํ•„์ˆ˜ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜
134+
135+
๊ฒฝ๋กœ๊ฐ€ ์•„๋‹Œ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์„ ์„ ์–ธํ•  ๋•Œ(์ง€๊ธˆ์€ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ๋ณด์•˜์Šต๋‹ˆ๋‹ค), ํ•ด๋‹น ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•„์ˆ˜์ (Required)์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
136+
137+
ํŠน์ •๊ฐ’์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ์„ ํƒ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„  ๊ธฐ๋ณธ๊ฐ’์„ `None`์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
138+
139+
๊ทธ๋Ÿฌ๋‚˜ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ•„์ˆ˜๋กœ ๋งŒ๋“ค๋ ค๋ฉด ๊ธฐ๋ณธ๊ฐ’์„ ์„ ์–ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค:
140+
141+
```Python hl_lines="6-7"
142+
{!../../../docs_src/query_params/tutorial005.py!}
143+
```
144+
145+
์—ฌ๊ธฐ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜ `needy`๋Š” `str`ํ˜•์ธ ํ•„์ˆ˜ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
146+
147+
๋ธŒ๋ผ์šฐ์ €์—์„œ URL์„ ์•„๋ž˜์ฒ˜๋Ÿผ ์—ฐ๋‹ค๋ฉด:
148+
149+
```
150+
http://127.0.0.1:8000/items/foo-item
151+
```
152+
153+
...ํ•„์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜ `needy`๋ฅผ ๋„ฃ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค:
154+
155+
```JSON
156+
{
157+
"detail": [
158+
{
159+
"loc": [
160+
"query",
161+
"needy"
162+
],
163+
"msg": "field required",
164+
"type": "value_error.missing"
165+
}
166+
]
167+
}
168+
```
169+
170+
`needy`๋Š” ํ•„์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋ฏ€๋กœ URL์— ๋ฐ˜๋“œ์‹œ ์„ค์ •ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค:
171+
172+
```
173+
http://127.0.0.1:8000/items/foo-item?needy=sooooneedy
174+
```
175+
176+
...์•„๋ž˜์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค:
177+
178+
```JSON
179+
{
180+
"item_id": "foo-item",
181+
"needy": "sooooneedy"
182+
}
183+
```
184+
185+
๊ทธ๋ฆฌ๊ณ  ๋ฌผ๋ก , ์ผ๋ถ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•„์ˆ˜๋กœ, ๋‹ค๋ฅธ ์ผ๋ถ€๋Š” ๊ธฐ๋ณธ๊ฐ’์„, ๋˜ ๋‹ค๋ฅธ ์ผ๋ถ€๋Š” ์„ ํƒ์ ์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
186+
187+
```Python hl_lines="10"
188+
{!../../../docs_src/query_params/tutorial006.py!}
189+
```
190+
191+
์ด ๊ฒฝ์šฐ 3๊ฐ€์ง€ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:
192+
193+
* `needy`, ํ•„์ˆ˜์ ์ธ `str`.
194+
* `skip`, ๊ธฐ๋ณธ๊ฐ’์ด `0`์ธ `int`.
195+
* `limit`, ์„ ํƒ์ ์ธ `int`.
196+
197+
!!! tip "ํŒ"
198+
[๊ฒฝ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜](path-params.md#predefined-values){.internal-link target=_blank}์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ `Enum`์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

0 commit comments

Comments
ย (0)
0