From: Ryusei Ishikawa <51394682+xryuseix@users.noreply.github.com>
Date: Sun, 13 Nov 2022 13:58:31 +0000 (+0900)
Subject: 🌐 Add Japanese translation for `docs/ja/docs/advanced/websockets.md` (#4983)
X-Git-Tag: 0.87.0~26
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=59208e4ddcbb14a64eabc99c37acf8424a8d30a2;p=thirdparty%2Ffastapi%2Ffastapi.git
🌐 Add Japanese translation for `docs/ja/docs/advanced/websockets.md` (#4983)
Co-authored-by: tokusumi <41147016+tokusumi@users.noreply.github.com>
Co-authored-by: komtaki <39375566+komtaki@users.noreply.github.com>
---
diff --git a/docs/ja/docs/advanced/websockets.md b/docs/ja/docs/advanced/websockets.md
new file mode 100644
index 0000000000..65e4112a6b
--- /dev/null
+++ b/docs/ja/docs/advanced/websockets.md
@@ -0,0 +1,186 @@
+# WebSocket
+
+**FastAPI**ã§WebSocketã使ç¨ã§ãã¾ãã
+
+## `WebSockets`ã®ã¤ã³ã¹ãã¼ã«
+
+ã¾ã `WebSockets`ã®ã¤ã³ã¹ãã¼ã«ãå¿
è¦ã§ãã
+
+
+
+```console
+$ pip install websockets
+
+---> 100%
+```
+
+
+
+## WebSocket ã¯ã©ã¤ã¢ã³ã
+
+### æ¬çªç°å¢
+
+æ¬çªç°å¢ã§ã¯ãReactãVue.jsãAngularãªã©ã®ææ°ã®ãã¬ã¼ã ã¯ã¼ã¯ã§ä½æãããããã³ãã¨ã³ãã使ç¨ãã¦ããã§ãããã
+
+ããã¦ãããã¯ã¨ã³ãã¨WebSocketã使ç¨ãã¦éä¿¡ããããã«ãããããããã³ãã¨ã³ãã®ã¦ã¼ãã£ãªãã£ã使ç¨ãããã¨ã«ãªãã§ãããã
+
+ã¾ãã¯ããã¤ãã£ãã³ã¼ãã§WebSocketããã¯ã¨ã³ãã¨ç´æ¥éä¿¡ãããã¤ãã£ãã¢ãã¤ã«ã¢ããªã±ã¼ã·ã§ã³ãããããããã¾ããã
+
+ä»ã«ããWebSocketã®ã¨ã³ããã¤ã³ãã¨éä¿¡ããæ¹æ³ãããããããã¾ããã
+
+---
+
+ãã ãããã®ä¾ã§ã¯é常ã«ã·ã³ãã«ãªHTMLææ¸ã¨ããã¤ãã®JavaScriptãããã¹ã¦ã½ã¼ã¹ã³ã¼ãã®ä¸ã«å
¥ãã¦ä½¿ç¨ãããã¨ã«ãã¾ãã
+
+ãã¡ãããããã¯æé©ãªæ¹æ³ã§ã¯ããã¾ããããæ¬çªç°å¢ã§ä½¿ããã¨ã¯ãªãã§ãããã
+
+æ¬çªç°å¢ã§ã¯ãä¸è¨ã®æ¹æ³ã®ããããã®é¸æè¢ãæ¡ç¨ãããã¨ã«ãªãã§ãããã
+
+ããããããã¯WebSocketã®ãµã¼ãã¼ãµã¤ãã«ç¦ç¹ãå½ã¦ãå®ç¨çãªä¾ã示ãæãç°¡åãªæ¹æ³ã§ãã
+
+```Python hl_lines="2 6-38 41-43"
+{!../../../docs_src/websockets/tutorial001.py!}
+```
+
+## `websocket` ã使ãã
+
+**FastAPI** ã¢ããªã±ã¼ã·ã§ã³ã§ã`websocket` ã使ãã¾ãã
+
+```Python hl_lines="1 46-47"
+{!../../../docs_src/websockets/tutorial001.py!}
+```
+
+!!! note "æè¡è©³ç´°"
+ `from starlette.websockets import WebSocket` ã使ç¨ãã¦ãæ§ãã¾ãã.
+
+ **FastAPI** ã¯éçºè
ã®å©ä¾¿æ§ã®ããã«ãåã `WebSocket` ãæä¾ãã¾ãããããããã¡ãã¯Starletteããç´æ¥æä¾ããããã®ã§ãã
+
+## ã¡ãã»ã¼ã¸ã®éåä¿¡
+
+WebSocketã«ã¼ãã§ã¯ã `await` ã使ã£ã¦ã¡ãã»ã¼ã¸ã®éåä¿¡ãã§ãã¾ãã
+
+```Python hl_lines="48-52"
+{!../../../docs_src/websockets/tutorial001.py!}
+```
+
+ãã¤ããªãããã¹ããã¼ã¿ãJSONãã¼ã¿ãéåä¿¡ã§ãã¾ãã
+
+## 試ãã¦ã¿ã
+
+ãã¡ã¤ã«åã `main.py` ã§ããå ´åã以ä¸ã®æ¹æ³ã§ã¢ããªã±ã¼ã·ã§ã³ãå®è¡ãã¾ãã
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+ãã©ã¦ã¶ã§ http://127.0.0.1:8000 ãéãã¾ãã
+
+次ã®ãããªã·ã³ãã«ãªãã¼ã¸ã表示ããã¾ãã
+
+
+
+å
¥åããã¯ã¹ã«ã¡ãã»ã¼ã¸ãå
¥åãã¦éä¿¡ã§ãã¾ãã
+
+
+
+ããã¦ã WebSocketã使ç¨ãã**FastAPI**ã¢ããªã±ã¼ã·ã§ã³ãå¿çãã¾ãã
+
+
+
+è¤æ°ã®ã¡ãã»ã¼ã¸ãéä¿¡ï¼ããã³åä¿¡ï¼ã§ãã¾ãã
+
+
+
+ããã¦ããããã®éä¿¡ã¯ãã¹ã¦åãWebSocketæ¥ç¶ã使ç¨ãã¾ãã
+
+## ä¾åé¢ä¿
+
+WebSocketã¨ã³ããã¤ã³ãã§ã¯ã`fastapi` ãã以ä¸ãã¤ã³ãã¼ããã¦ä½¿ç¨ã§ãã¾ãã
+
+* `Depends`
+* `Security`
+* `Cookie`
+* `Header`
+* `Path`
+* `Query`
+
+ãããã¯ãä»ã®FastAPI ã¨ã³ããã¤ã³ã/*path operation* ã®å ´åã¨åãããã«æ©è½ãã¾ãã
+
+```Python hl_lines="58-65 68-83"
+{!../../../docs_src/websockets/tutorial002.py!}
+```
+
+!!! info "æ
å ±"
+ WebSocket ã§ `HTTPException` ãçºçããããã¨ã¯ãã¾ãæå³ãããã¾ããããããã£ã¦ãWebSocketã®æ¥ç¶ãç´æ¥éããæ¹ãããã§ãããã
+
+ ã¯ãã¼ã¸ã³ã°ã³ã¼ãã¯ã仿§ã§å®ç¾©ãããæå¹ãªã³ã¼ãã®ä¸ãã使ç¨ãããã¨ãã§ãã¾ãã
+
+ å°æ¥çã«ã¯ãã©ãããã§ã `raise` ã§ãã `WebSocketException` ãç¨æãããå°ç¨ã®ä¾å¤ãã³ãã©ã追å ã§ããããã«ãªãäºå®ã§ããããã¯ãStarlette ã® PR #527 ã«ä¾åãããã®ã§ãã
+
+### ä¾åé¢ä¿ãç¨ãã¦WebSocketsã試ãã¦ã¿ã
+
+ãã¡ã¤ã«åã `main.py` ã§ããå ´åã以ä¸ã®æ¹æ³ã§ã¢ããªã±ã¼ã·ã§ã³ãå®è¡ãã¾ãã
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+ãã©ã¦ã¶ã§ http://127.0.0.1:8000 ãéãã¾ãã
+
+ã¯ã©ã¤ã¢ã³ããè¨å®ã§ããé
ç®ã¯ä»¥ä¸ã®éãã§ãã
+
+* ãã¹ã§ä½¿ç¨ããããItem IDã
+* ã¯ã¨ãªãã©ã¡ã¼ã¿ã¨ãã¦ä½¿ç¨ããããTokenã
+
+!!! tip "è±ç¥è"
+ ã¯ã¨ãª `token` ã¯ä¾åããã±ã¼ã¸ã«ãã£ã¦å¦çããããã¨ã«æ³¨æãã¦ãã ããã
+
+ããã«ãããWebSocketã«æ¥ç¶ãã¦ã¡ãã»ã¼ã¸ãéåä¿¡ã§ãã¾ãã
+
+
+
+## åæãè¤æ°ã¯ã©ã¤ã¢ã³ãã¸ã®å¯¾å¿
+
+WebSocketæ¥ç¶ãéããããã¨ã `await websocket.receive_text()` ã¯ä¾å¤ `WebSocketDisconnect` ãçºçããããã®ä¾ã®ããã«ãã£ãããã¦å¦çãããã¨ãã§ãã¾ãã
+
+```Python hl_lines="81-83"
+{!../../../docs_src/websockets/tutorial003.py!}
+```
+
+試ãã¦ã¿ãã«ã¯ã
+
+* ããã¤ãã®ãã©ã¦ã¶ã¿ãã§ã¢ããªãéãã¾ãã
+* ãããã®ã¿ãã§ã¡ãã»ã¼ã¸ãè¨å
¥ãã¦ãã ããã
+* ããã¦ãã¿ãã®ãã¡1ã¤ãéãã¦ãã ããã
+
+ããã«ããä¾å¤ `WebSocketDisconnect` ãçºçããä»ã®ãã¹ã¦ã®ã¯ã©ã¤ã¢ã³ãã¯æ¬¡ã®ãããªã¡ãã»ã¼ã¸ãåä¿¡ãã¾ãã
+
+```
+Client #1596980209979 left the chat
+```
+
+!!! tip "è±ç¥è"
+ ä¸è¨ã®ã¢ããªã¯ãè¤æ°ã® WebSocket æ¥ç¶ã«å¯¾ãã¦ã¡ãã»ã¼ã¸ãå¦çããããã¼ããã£ã¹ãããæ¹æ³ã示ãããã®æå°éã®ã·ã³ãã«ãªä¾ã§ãã
+
+ ãããããã¹ã¦ã®æ¥ç¶ãã¡ã¢ãªå
ã®åä¸ã®ãªã¹ãã§å¦çããããããããã»ã¹ã®å®è¡ä¸ã«ã®ã¿æ©è½ããåä¸ã®ããã»ã¹ã§ã®ã¿æ©è½ãããã¨ã«æ³¨æãã¦ãã ããã
+
+ ããFastAPIã¨ç°¡åã«çµ±åã§ãã¦ãRedisãPostgreSQLãªã©ã§ãµãã¼ãããã¦ãããããå
ç¢ãªãã®ãå¿
è¦ãªããencode/broadcaster ã確èªãã¦ãã ããã
+
+## ãã®ä»ã®ããã¥ã¡ã³ã
+
+ãªãã·ã§ã³ã®è©³ç´°ã«ã¤ãã¦ã¯ãStarletteã®ããã¥ã¡ã³ãã確èªãã¦ãã ããã
+
+* `WebSocket` ã¯ã©ã¹
+* ã¯ã©ã¹ãã¼ã¹ã®WebSocketå¦ç
diff --git a/docs/ja/mkdocs.yml b/docs/ja/mkdocs.yml
index b3f18bbdd3..5bbcce6059 100644
--- a/docs/ja/mkdocs.yml
+++ b/docs/ja/mkdocs.yml
@@ -86,6 +86,7 @@ nav:
- advanced/response-directly.md
- advanced/custom-response.md
- advanced/nosql-databases.md
+ - advanced/websockets.md
- advanced/conditional-openapi.md
- async.md
- ãããã¤: