我有一个不太 RESTful 的现有 API。我试图使用 Swagger 快速组装一个 Mock Server,这样我就可以在不依赖服务器的情况下测试应用程序。当我开始编写 yaml 规则时,我意识到对于路由的子集,正在使用相同的端点并且服务器会解析 body json 以确定请求的确切内容。有没有办法使用 Swagger 对这种行为进行建模?
(请不要评论 API 架构,它已经存在并在生产中,我没有参与设计)
我有一个不太 RESTful 的现有 API。我试图使用 Swagger 快速组装一个 Mock Server,这样我就可以在不依赖服务器的情况下测试应用程序。当我开始编写 yaml 规则时,我意识到对于路由的子集,正在使用相同的端点并且服务器会解析 body json 以确定请求的确切内容。有没有办法使用 Swagger 对这种行为进行建模?
(请不要评论 API 架构,它已经存在并在生产中,我没有参与设计)
无法定义共享相同 URL 的多个端点/行为。
swagger.yml 假设您有一个 RESTful API。Swagger 将为每条路由定义行为和有效载荷,并且每条路由必须有唯一的路径。您不能使用 Swagger 通过同一 URL 表示多个路由,除非您要将它们全部合并并将它们表示为通用端点。这将要求您使用文档来描述行为,并且您将失去 swagger 的许多好处(令人愉快的 UI 和自动验证)。如果每个路由都有不同的输入有效负载,则需要在同一有效负载中定义所有字段,并且文档将描述每个场景中需要哪些字段。
如果可能,请考虑定义多个端点,然后将请求代理到相同的后端单路由。