gpt4 book ai didi

c# - 如何在 Nancy.Swagger 包构建的 Swagger-UI 中添加参数示例值?

转载 作者:行者123 更新时间:2023-12-01 16:51:33 25 4
gpt4 key购买 nike

我使用 Nancy.Swagger 包和 MetadataModule 为我的 API 构建 Swagger UI(根据此链接:https://github.com/yahehe/Nancy.Swagger/wiki/Nancy.Swagger-for-Nancy-v2)。

我得到了 UI,但问题是我无法为对象的属性添加示例值,该对象作为正文中的参数传递。

例如,我看到以下输出:

enter image description here

在这里,我想要一个真实的示例值,而不是“字符串”一词。但我不知道如何在这种方法中添加示例值,如果有任何帮助,我将不胜感激。

来自 API 的片段和参数(PRequest 的对象):

Post("/", async (x, ctx) =>
{
PRequest PostRequestModel;
try
{
postRequestModel = this.Bind<PRequest>();
}

来自 MetaDataModule 的片段:

Describe["Post"] = desc => desc.AsSwagger(
with => with.Operation(
op => op.OperationId("Post")
.Tag("User")
.Summary("Post a new User")
.Description("This creates a new user.")
.BodyParameter(bp => bp.Description("A PRequest object").Name("PRequest").Schema<PRequest>())

最佳答案

我知道自从您打开此内容以来已经过去了很多年,但我想无论如何我都会分享。

首先你需要一个模型,如下所示:

public class Model
{
public string ExampleString { get; set; }
}

您需要创建此模型的一个实例,其中包含您想要的任何示例。

var exampleModel = new Model() { ExampleString = "foobar" }

然后您可以将其添加到 BodyParameter,如下所示:

.BodyParameter(para => para.Name("Example").Schema(
new Schema() { Example = exampleModel }
).Build())

我刚刚创建了一个 public static 类来保存所有示例对象,然后将它们设置为 Example = Examples.Example1。我认为这是最具可读性的方法。

这种方法存在一些问题,我还没有找到解决方案。一是示例对象似乎不尊重您用于 Json 序列化的任何设置。另外,我无法使其与模型 View 同时工作,但无论如何,模型 View 在我眼中总是毫无用处。如果我解决了这些问题,我会更新此内容。 :)

关于c# - 如何在 Nancy.Swagger 包构建的 Swagger-UI 中添加参数示例值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49241341/

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