From e4300769ac45c368bcb3a080fdb79890fe413355 Mon Sep 17 00:00:00 2001 From: Chih Sean Hsu <34153546+ChihSeanHsu@users.noreply.github.com> Date: Sun, 14 Jun 2020 04:51:34 +0800 Subject: [PATCH] =?utf8?q?=F0=9F=93=9D=20Update=20tutorial=20for=20WebSock?= =?utf8?q?ets=20with=20dependencies=20(#1540)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * fix websockets/tutorial002.py * fix tutorial002 in ws to correspond with test case * reformat websocket tutorial002 * fix websocket tutorial002 coverage * 📝 Update example for WebSockets with Depends * ✅ Update and refactor tests for WebSockets with dependencies * 👷 Trigger Travis, as it's not reporting to Codecov * ✅ Update WebSocket tests to raise coverage Co-authored-by: Chih Sean Hsu Co-authored-by: Sebastián Ramírez --- docs/en/docs/advanced/websockets.md | 66 +++++++++++++----- .../docs/img/tutorial/websockets/image05.png | Bin 0 -> 53330 bytes docs_src/websockets/tutorial002.py | 27 +++---- .../test_websockets/test_tutorial002.py | 38 +++++----- 4 files changed, 79 insertions(+), 52 deletions(-) create mode 100644 docs/en/docs/img/tutorial/websockets/image05.png diff --git a/docs/en/docs/advanced/websockets.md b/docs/en/docs/advanced/websockets.md index d473cef070..6cacc2e6f3 100644 --- a/docs/en/docs/advanced/websockets.md +++ b/docs/en/docs/advanced/websockets.md @@ -51,6 +51,40 @@ In your WebSocket route you can `await` for messages and send messages. You can receive and send binary, text, and JSON data. +## Try it + +If your file is named `main.py`, run your application with: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Open your browser at http://127.0.0.1:8000. + +You will see a simple page like: + + + +You can type messages in the input box, and send them: + + + +And your **FastAPI** application with WebSockets will respond back: + + + +You can send (and receive) many messages: + + + +And all of them will use the same WebSocket connection. + ## Using `Depends` and others In WebSocket endpoints you can import from `fastapi` and use: @@ -64,7 +98,7 @@ In WebSocket endpoints you can import from `fastapi` and use: They work the same way as for other FastAPI endpoints/*path operations*: -```Python hl_lines="53 54 55 56 57 58 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76" +```Python hl_lines="56 57 58 59 60 61 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79" {!../../../docs_src/websockets/tutorial002.py!} ``` @@ -75,14 +109,7 @@ They work the same way as for other FastAPI endpoints/*path operations*: In the future, there will be a `WebSocketException` that you will be able to `raise` from anywhere, and add exception handlers for it. It depends on the PR #527 in Starlette. -## More info - -To learn more about the options, check Starlette's documentation for: - -* The `WebSocket` class. -* Class-based WebSocket handling. - -## Test it +### Try the WebSockets with dependencies If your file is named `main.py`, run your application with: @@ -98,20 +125,21 @@ $ uvicorn main:app --reload Open your browser at http://127.0.0.1:8000. -You will see a simple page like: +There you can set: - +* The "Item ID", used in the path. +* The "Token" used as a query parameter. -You can type messages in the input box, and send them: +!!! tip + Notice that the query `token` will be handled by a dependency. - +With that you can connect the WebSocket and then send and receive messages: -And your **FastAPI** application with WebSockets will respond back: + - - -You can send (and receive) many messages: +## More info - +To learn more about the options, check Starlette's documentation for: -And all of them will use the same WebSocket connection. +* The `WebSocket` class. +* Class-based WebSocket handling. diff --git a/docs/en/docs/img/tutorial/websockets/image05.png b/docs/en/docs/img/tutorial/websockets/image05.png new file mode 100644 index 0000000000000000000000000000000000000000..00b0c52202b37de904b3fd9b5a5432c942ee171f GIT binary patch literal 53330 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 Chat
+ -
+
@@ -23,8 +24,9 @@ html = """