Swagger Wcf生成示例代码

时间:2015-09-23 10:17:40

标签: c# rest wcf swagger swagger-wcf

我试图使用https://github.com/abelsilva/swaggerwcf

但是在我们的WCF方法中使用它有问题

一个例子是这样的:

public ETemplate GetETemplate(int eTemplateId)

我们通过webHttpBinding公开了svc,并在行为

中设置了enableWebScript

当我们通常使用REST从jQuery访问它时,我们会在Post

中使用它
{"eTemplateId": "26000"}

但是从SwaggerWcf生成的示例数据中我们得到的只是一个在POST中传递的整数

26000

下面是我在界面上装饰方法的方法,我认为这是正确的,因为WebMessageBodyStyle被正确设置为Wrapped而不是Bare。

我错过了一些简单的东西吗?

   [WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, Method = "POST",
            RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]

1 个答案:

答案 0 :(得分:0)

您能否提供有关您的问题的更多信息。 似乎有些东西。我不认为请求格式会在swagger实现中产生错误。 尝试下载项目swaggerator。 https://github.com/superstator/Swaggeratr SwaggerWCF的初始版本是SwaggerWCF中的分支转换。你会发现它们是初始集成的一些有用的例子。一般来说,它不会发生太大的变化。

在Swaggerator中,您可以找到类似于post方法的定义。

[Tag("InternalUse")]
        [OperationSummary("Does stuff.")]
        [OperationNotes("I mean, it does some really interesting stuff. Stuff like you wouldn't believe.")]
        [ResponseCode(400, "Four hundred error")]
        [ResponseCode(200, "OK")]
        [ResponseCode(205, "Some error")]
        [ResponseCode(404, "Not found")]
        [ResponseCode(401, "Something weird happened")]
        [ResponseCode(301, "Three O one Something weird happened")]
        [OperationContract]
        [WebInvoke(UriTemplate = "/data", Method = "POST", RequestFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Bare)]
        CompositeType GetDataUsingDataContract(CompositeType composite);

尝试检查该示例实现,并发布有关您所遇问题的更多详细信息。否则,提供更多帮助会很复杂。

我只是创建一个分叉。因为,我在部署中发现了一些问题。 https://github.com/gabrielacosta/swaggerwcf 如果你下载那个分支。代码正在运行,也许它可以提供更好的视角。