我应该如何使用 NSwag 在代码优先 API 中描述回调 (WebHook)?

发布于 2025-01-16 01:23:17 字数 561 浏览 1 评论 0原文

我使用控制器和操作使用 .NET 6.0 构建了一个简单的 REST 服务。我添加了 NSwag.AspNetCore,并使用它来使用 AddOpenApiDocument() 创建 OpenAPI 3 文档,并使用 UseSwaggerUi3() 创建常用 UI。

我的 REST 操作之一从客户端获取 Webhook(或回调 URL),然后使用具有三个字段的简单 JSON 对象对其执行 POST。

我看到 OpenAPI 规范在标题 回调 下几乎完全描述了这种情况。这与我的情况几乎相同,但我使用 NSwag 来生成我的 OpenAPI 文档,而不是手工制作它。

我希望能够在生成的 OpenAPI 文档中描述回调函数和它应该期望的有效负载,理想情况下,我的客户端应该能够使用 NSwag C# 客户端生成器使用我生成的 OpenAPI 文档,以便它创建一个控制器和操作提供框架实现和模型类。

我不知道这是否可能......

I have built a simple REST service with .NET 6.0 using controllers and actions. I've added NSwag.AspNetCore and I'm using it to create an OpenAPI 3 document using AddOpenApiDocument() and the usual UI with UseSwaggerUi3().

One of my REST actions takes a webhook (or callback URL) from the client and later does a POST to it with a simple JSON object with three fields.

I see that the OpenAPI specification describes almost exactly this situation under the title Callbacks. This is almost identical to my situation, but I'm using NSwag to generate my OpenAPI document, not hand-crafting it.

I want to be able to describe the callback function and the payload it should expect in my generated OpenAPI document, and ideally my client should be able to consume my generated OpenAPI document with the NSwag C# client generator such that it creates a controller and action to provide a skeleton implementation and model class(es).

I have no idea if this is even possible...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月染过的梦 2025-01-23 01:23:17

看这段代码:
https://github.com/RicoSuter/NSwag/pull/2363/files

  1. 复制文件:
    OpenApiCallbackAttribute.cs
    操作回调处理器.cs
    到您的项目。

  2. 请参阅 SwaggerCallbackController.cs 了解如何使用。

  3. 在 swagger 配置中添加新的“OperationCallbackProcessor”处理器:

    app.UseSwaggerReDoc(controllerList, settings =>
     {
    
      settings.GeneratorSettings.OperationProcessors.Add(new NSwag.Generation.Processors.OperationCallbackProcessor());
     }
    

see this code :
https://github.com/RicoSuter/NSwag/pull/2363/files

  1. Copy the files :
    OpenApiCallbackAttribute.cs
    OperationCallbackProcessor.cs
    to your project.

  2. See SwaggerCallbackController.cs for how to use.

  3. Add the new 'OperationCallbackProcessor' Processor in the swagger config :

    app.UseSwaggerReDoc(controllerList, settings =>
     {
    
      settings.GeneratorSettings.OperationProcessors.Add(new NSwag.Generation.Processors.OperationCallbackProcessor());
     }
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文