Какие знаешь способы доставки данных с сервера клиенту
Python
Middle
Без компании
Какие знаешь способы доставки данных с сервера клиенту
Ответы
В Python есть несколько способов доставки данных с сервера клиенту:
- **REST API** (HTTP/HTTPS) - самый распространённый способ. Используется с библиотеками типа Flask, FastAPI, Django REST Framework:
```
from fastapi import FastAPI
app = FastAPI()
@app.get("/data")
def get_data():
return {"message": "Hello World"}
```
- **WebSockets** - для двусторонней связи в реальном времени (библиотеки `websockets`, `socket.io`):
```
from fastapi import FastAPI, WebSocket
app = FastAPI()
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
await websocket.send_text("Hello WebSocket!")
```
- **Server-Sent Events (SSE)** - односторонний поток данных от сервера:
```
from fastapi import FastAPI, Response
app = FastAPI()
@app.get("/stream")
async def stream_data():
async def event_stream():
yield "data: Message 1\n\n"
return Response(event_stream(), media_type="text/event-stream")
```
- **gRPC** - высокопроизводительный RPC-фреймворк от Google (библиотека `grpc`)
- **GraphQL** - альтернатива REST с гибкими запросами (библиотеки `graphene`, `ariadne`)
Выбор зависит от требований: REST для простых запросов, WebSockets для чатов/игр, SSE для уведомлений, gRPC для микросервисов.