inaka / cowboy_swagger

Swagger integration for Cowboy (built on trails)
http://inaka.net/blog/2015/08/19/cowboy-swagger/
Apache License 2.0
121 stars 58 forks source link

global_spec must be server-bound #205

Open elbrujohalcon opened 1 month ago

elbrujohalcon commented 1 month ago

I have two cowboy servers running different REST APIs in my Erlang VM. To split their swagger pages I do…

        trails:trail(
            "/audit/rest/api-docs/swagger.json",
            cowboy_swagger_json_handler,
            #{server => server_one},
            #{get => #{hidden => true}}
        ),
…
        trails:store(server_one, Trails),

…in one, and…

        trails:trail(
            "/audit/rest/api-docs/swagger.json",
            cowboy_swagger_json_handler,
            #{server => server_two},
            #{get => #{hidden => true}}
        ),
…
        trails:store(server_two, Trails),

…in the other. That works perfectly fine except for the global specs, because if I do…

cowboy_swagger:set_global_spec(TheSpec)

…or even if I use add_definition/1 directly, they end up both with the same tags and definitions and… well… basically the same spec, which (in my case) is incorrect.

I would like to have independent (per-server) specs, so that each one can have their own.