Files

52 lines
1.4 KiB
Python

import time
import zenoh
from chongming_worker import rpc_method
from chongming_request import Client
from ..models.pydantic import (
AddGetRequest,
AddGetResponse,
AddPostRequest,
AddPostResponse
)
@rpc_method(
subject="example.add",
method="GET",
summary="Add two numbers via GET",
response_model=AddGetResponse,
)
async def add(add_get_request:AddGetRequest) -> AddGetResponse:
"""加法运算(GET)— 通过查询参数传入 a、b,返回它们的和"""
return AddGetResponse(
result=add_get_request.a + add_get_request.b,
operation="add",
timestamp=time.time()
)
@rpc_method(
subject="example.add",
method="POST",
summary="Add two numbers via POST",
response_model=AddPostResponse,
)
async def add_post(add_post_request: AddPostRequest, session: zenoh.Session, user_info: dict | None = None) -> AddPostResponse:
"""加法运算(POST)— 通过 JSON Body 传入 a、b,返回它们的和"""
async with Client(session=session) as client:
await client.call(
worker_type="example",
subject="example.add",
payload={
"a":add_post_request.a,
"b":add_post_request.b
},
method="GET"
)
return AddPostResponse(
result=add_post_request.a + add_post_request.b,
operation="add",
timestamp=time.time(),
)