1

我最近使用 Swagger-Codegen 自动生成一个 Ruby gem,除了为每个单独的 API 端点生成一个文件外,它还为 API 可能返回的每个可能的数据集合生成了数十个模型文件。

API 方法文件和模型都以声明相同的模块名称开始SwaggerClient,然后包含文件的类,这也是文件的名称,除了骆驼情况:

module SwaggerClient
  class GetWalletsForbidden
    ...
  end
end

据我了解,您可以在技术上将所有这些组合到一个文件中,在开头声明一次模块并将类放置在其中。

当我查看顶级 gem 文件swagger_client.rb时,似乎更奇怪:一行一行的require

...
require swagger_client/api/assets.api
require swagger_client/api/bookmarks.api
require swagger_client/api/calendar.api
...

我知道,尤其是在使用 Rails 时,自动生成的使用非常多,但这对我来说似乎太过分了。

将这么多小片段保存在单独的文件中有什么好处?仅仅是为了组织利益吗?我知道 Rails 在幕后做了很多复杂的事情……它与此有关吗?它会提高性能吗?或者我只是对什么构成“过度”有错误的想法require

4

1 回答 1

0

Swagger Codegen 用于将 API 端点分类到不同的文件中,因此您可以通过在所有 API 操作中tags使用相同的方法,从技术上将所有端点放入一个文件中。tags

以下是tags操作中的示例:https ://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/test/resources/2_0/petstore.yaml#L32

但是,我们建议您利用tags将 API 端点/操作放入不同的文件以获得组织利益,特别是对于具有大量端点(例如 500+)的 API

于 2017-05-17T08:00:26.933 回答