您好,我是 Python 的新手,一家公司给我发了一个任务来解决它。

应用程序编程任务

任务是实现一个可以检索、存储和公开货币汇率的 API。所有端点都应使用您选择的数据库作为持久层。需要以下端点: - POST - /register(无需验证)此端点应接受 JSON 格式的用户名、密码、confirmPassword。验证输入后,它应该在数据库中创建并持久化用户。 - POST - /login(无需验证)此端点应接受 JSON 格式的用户名和密码。在验证输入并检查用户是否存在且密码正确后,应返回一个 Json Web 令牌 (JWT),该令牌应该

用于与 API 的其他 2 个端点进行通信。 - POST - /seed(需要身份验证)此端点应使用您选择的免费货币 API。 (例如:https://freecurrencyapi.net/)。请记住,您可能需要注册此 API 才能使用它,并遵守潜在的请求速率限制。调用时,它应分别检索以欧元、美元、瑞士法郎和英镑为基础货币的所有货币的汇率。例如{base: EUR, currency: [{ EUR: 1, USD: 0.86, CAD: 1.23, SGD: 2.7 ... }} // Base EUR {base: USD, currency: [{ EUR: 1.23, USD: 1, CAD: 0.67, SGD: 8.2 ... }} // Base USD .... 然后应使用使

感觉。 - GET - /rates/{base}(需要身份验证)此端点应以 JSON 和 XML 格式从数据库返回所有汇率。它应该支持按字母顺序或汇率进行分页和排序。 - GET - /rates/{base}/{target}(需要身份验证)

应该返回特定的汇率。 - POST - /rates/{base}/{target}(需要身份验证)应该创建/更新特定的汇率。为了能够发现、测试和理解 API,请确保它使用 OpenAPISpecification (Swagger),它将自动创建一个 UI 界面,作为 API 文档和测试平台。

我不确定我是否开始正确,我正在尝试很多小时,但我需要你的帮助。

提前致谢

下面是代码:

`打印“内容类型:文本/ html”

打印 ””

导入请求

导入getpass

导入json

导入参数解析

从日期时间导入日期

进口时间

这是一个简短的程序,用于访问 api (freecurrencyapi.net),从 csv 中提取日期的转换

并将输出保存为 json 格式。输入 csv 应该是日期 YYYY-MM-DD 的列表。

该程序将需要一个 api 密钥,可以从 freecurrencyapi.net 获得

示例网址https://freecurrencyapi.net/api/v2/latest?apikeyu003dccc0b100-8a55-11ec-8276-b71d1ddd6a9b

def callAPI(sourcelist, sourcecurrency, destcurrency):

jsonlist u003d []

APIKEYu003dgetpass.getpass(promptu003d"ccc0b100-8a55-11ec-8276-b71d1ddd6a9b (隐藏)")

URLBASEu003d'https://freecurrencyapi.net/dashboard'

源列表中的日期:

        url=f'{URLBASE}?access_key={APIKEY}&date={date}&currencies={sourcecurrency},{destcurrency}&format=1c'
        convert=requests.get(url)
        jsonlist.append(convert.json())
        time.sleep(1) 

进入全屏模式 退出全屏模式

返回(json列表)

print("汇率通过 'https://freecurrencyapi.net/'")

sourcepathu003d'e:/doug sprogs/汇率/'

jsonfileu003d''

csvfileu003d''

今天 u003d date.today()

来源货币u003d''

目标货币u003d''

源列表 u003d []

jsonlistu003d[]

inputargsu003dargparse.ArgumentParser(descriptionu003d'这是一个打api的小程序\

(/freecurrencyapi.net) ,从 csv 中提取日期的转换\

并将输出保存为 json 格式。 ',

Epilogu003d'输入的 csv 应该是 YYYY-MM-DD 的日期列表。\

该程序将需要一个 api 密钥,可以从 api.currencylayer.com 获得。')

inputargs.add_argument('-c', helpu003d'转换请求,源-目的地,默认澳元-美元')

inputargs.add_argument('-d', helpu003d'date in YYYY-MM-DD , for a single day conversion')

inputargs.add_argument('-l', helpu003d'csv 文件用于输入日期列表,YYYY-MM-DD')

inputargs.add_argument('-j', helpu003d'json文件保存输出')

inputargs.add_argument('-p', helpu003d'输入和输出文件的文件路径')

cliargs u003d inputtargs.parse_args()

货币 u003d cliargs.c

来源日期 u003d cliargs.d

源列表 u003d cliargs.l

如果cliargs.p:

源路径 u003d cliargs

如果 cliargs.j:

jsonfile u003d cliargs.j

如果货币:

sourcecurrency,destcurrency u003d currency.split('-')

别的:

来源货币 u003d 'AUD'

destcurrency u003d '美元'

如果不是 sourcedate 和 sourcelist:

使用 open((sourcepath + sourcelist), 'r' ) 作为源文件:

sourcein u003d sourcefile.read()

sourcelist = sourcein.split()

进入全屏模式 退出全屏模式

elif 来源日期:

源列表 u003d [str(sourcedate)]

别的:

源列表u003d[str(今天)]

print("没有提供 csv 或日期")

print(f"源列表是 {sourcelist}")

print(f"源列表类型是 {type(sourcelist)}")

json 列表 u003d 调用 API(源列表、源货币、目标货币)

如果json文件:

print(f"写入 json 文件 {jsonfile}")

使用 open((sourcepath + jsonfile + '.json'), 'a') 作为文件输出:

对于 json 列表中的元素:

json.dump(元素,文件输出)

打印(元素)

print(f"文件名路径将是 {sourcepath + jsonfile + '.json'}")

别的:

print("没有 json 文件名")

对于 json 列表中的元素:

打印(元素)`

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐