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 はtags、API エンドポイントを異なるファイルに分類するために使用するためtags、すべての API 操作で同じものを使用することにより、技術的にすべてのエンドポイントを 1 つのファイルに入れることができます。

操作の例を次に示しtagsます: https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/test/resources/2_0/petstore.yaml#L32

tagsただし、特に多数のエンドポイント (例: 500 以上) を持つ API の場合、組織の利益のために、API エンドポイント/操作を別のファイルに配置する ために活用することをお勧めします。

于 2017-05-17T08:00:26.933 に答える