diff --git a/swagger.go b/swagger.go index 5ffbab63e..74c162c28 100644 --- a/swagger.go +++ b/swagger.go @@ -39,6 +39,15 @@ func Register(name string, swagger Swagger) { swags[name] = swagger } +// GetSwagger returns the swagger instance for given name. +// If not found, returns nil. +func GetSwagger(name string) Swagger { + swaggerMu.RLock() + defer swaggerMu.RUnlock() + + return swags[name] +} + // ReadDoc reads swagger document. An optional name parameter can be passed to read a specific document. // The default name is "swagger". func ReadDoc(optionalName ...string) (string, error) { diff --git a/swagger_test.go b/swagger_test.go index 3d15d0b59..043190508 100644 --- a/swagger_test.go +++ b/swagger_test.go @@ -219,3 +219,14 @@ func TestCalledTwicelRegister(t *testing.T) { func setup() { swags = nil } + +func TestGetSwagger(t *testing.T) { + setup() + instance := &s{} + Register(Name, instance) + swagger := GetSwagger(Name) + assert.Equal(t, instance, swagger) + + swagger = GetSwagger("invalid") + assert.Nil(t, swagger) +}