繁体   English   中英

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

[英]How to add example values for parameters in Swagger-UI built by Nancy.Swagger package?

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

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

例如,我看到这个输出:

在此处输入图片说明

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

来自 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 我认为这是最易读的方法。

这种方法存在一些问题,我还没有找到解决方案(还)。 一是 Example 对象似乎不尊重您用于 Json 序列化的任何设置。 此外,我一直无法让这个与模型视图同时工作,但无论如何模型视图在我看来总是无用的。 如果我弄清楚这些问题中的任何一个,我会更新这个。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM