我正在使用FastAPI接收一个JSON文件,该文件将成为API请求的主体.. Orwell和Good到目前为止。现在我想应用相同的方法,但Robyn构建在铁 rust 上,而不是FastAPI。在标记为??的位置调用API没有获得任何乐趣。
我需要考虑什么事情(文档很少)robyn是一个人剪的,还是我漏掉了什么?
from robyn import Robyn, jsonify
app = Robyn(__file__)
@app.post("/yt")
async def json(request):
body = request["body"]
outurl = "https://translate.otherapi.com/translate/v1/translate"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {0}".format(TOKEN)
}
?? response_data = await call_api(data)
return response_data['translations'][0]
app.start(port=5000)
使用FastAPI:
import aiohttp
import aiofiles
import json
import requests
from fastapi import FastAPI, Header, Depends, HTTPException, Request
app = FastAPI()
async def call_api(data):
async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False)) as session:
async with session.post(url, headers=headers, json=data) as resp:
response_data = await resp.json()
return response_data
@app.post("/yt")
async def root(request:Request):
data = await request.json()
file_path = "data.json"
await write_json_to_file(data, file_path)
data = await read_json_from_file(file_path)
response_data = await call_api(data)
return response_data['translations'][0]
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8001)
1条答案
按热度按时间rjjhvcjd1#
Robyn的作者在这里。我无法理解你试图在这里实现什么。但是,有一个问题,
request["body"]
目前返回一个字节字符串数组。您需要将代码更改为:
这是我不太喜欢的特性。我们希望在接下来的几个版本中修复这个问题。
我希望这对你有帮助:D