我最近使用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
的什么构成“过度”有错误的想法?
答案 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+)