gpt4 book ai didi

swagger - 如何让 OpenApi-Generator 生成可为 null 的 DateTimeOffset?

转载 作者:行者123 更新时间:2023-12-05 05:57:22 25 4
gpt4 key购买 nike

我的 API 使用 DateTime? 公开了一些端点和其他人 DateTimeOffset? .

我想使用 OpenApi-Generator 生成一个 API 客户端,它将为每个端点创建客户端代码,并尊重类型之间的差异。

OpenApi-Generator 提供了 useDateTimeOffset=true 的选项,这将使用 DateTimeOffset 生成客户端无论 API 是否公开 DateTime 都无处不在或 DateTimeOffset .因此,我不想使用它。

因此,为了在没有那个的情况下解决需求,我尝试创建一个过滤器,我将在其中指定 DateTimeOffset? 的情况生成器应使用类型 DateTimeOffset并使其成为nullable .

这是过滤器:

public class FixDateTimeOffsetTypeSchemaFilter : ISchemaFilter
{
public void Apply(OpenApiSchema model, SchemaFilterContext context)
{
if (context.Type == typeof(DateTimeOffset?))
{
model.Format = "date-time-offset-nullable";
model.Type = "DateTimeOffset";
model.Nullable = true;
}
}
}

这是输出的一个例子:

"/Api/MyApiEndpoint": {
"get": {
"tags": [
"General"
],
"operationId": "General_MyApiEndpoint",
"parameters": [
{
"name": "startDatetime",
"in": "query",
"schema": {
"type": "DateTimeOffset",
"format": "date-time-offset-nullable",
"nullable": true
}
},

当我运行它并从该 JSON 生成客户端时,DateTimeOffset对象永远不会 nullable .它似乎不遵守该指令。

我需要更改什么才能使其工作,以便在我指定 DateTimeOffset 时应该是 nullable , 它显示为 nullable在代码中?

最佳答案

关于swagger - 如何让 OpenApi-Generator 生成可为 null 的 DateTimeOffset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68825396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com