Как передаётся ID от одного сервиса к другому
Python
Middle
Без компании
Как передаётся ID от одного сервиса к другому
Ответы
В Python ID можно передавать между сервисами разными способами, в зависимости от архитектуры и протоколов:
- **REST API** (через параметры URL или тело запроса):
```
# Клиент
requests.get('http://service2/api/resource', params={'id': 123})
# Сервис 2 (Flask пример)
@app.route('/api/resource')
def get_resource():
resource_id = request.args.get('id') # Получаем ID из параметров
```
- **Message Brokers** (RabbitMQ, Kafka):
```
# Отправка
channel.basic_publish(
exchange='',
routing_key='queue_name',
body=json.dumps({'id': 123})
)
# Получение
def callback(ch, method, properties, body):
data = json.loads(body)
received_id = data['id']
```
- **GRPC** (в protobuf сообщениях):
```
message ResourceRequest {
int32 id = 1;
}
```
- **GraphQL** (через переменные запроса):
```
query GetResource($id: ID!) {
resource(id: $id) {
name
}
}
```
Ключевые моменты:
- Всегда валидируйте входящие ID
- Используйте стандартные форматы (UUID, int)
- Для чувствительных данных лучше использовать временные токены вместо прямых ID