在不同文件中分离属于同一模块的不同类有什么好处?

时间:2017-05-16 00:16:36

标签: ruby-on-rails model rubygems swagger-codegen

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

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

module SwaggerClient
  class GetWalletsForbidden
    ...
  end
end

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

当我查看顶级宝石文件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的什么构成“过度”有错误的想法?

1 个答案:

答案 0 :(得分:0)

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

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

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