Skip to content

Commit

Permalink
refactor(documentation): setting schema data to swagger
Browse files Browse the repository at this point in the history
  • Loading branch information
vinyguedess committed Jun 20, 2022
1 parent e0252c3 commit 77d4ff3
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 15 deletions.
43 changes: 34 additions & 9 deletions documentation.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,17 @@ import (
)

type DocEndpointHttpProtocol map[string]DocEndpoint
type DocEndpointProduces string
type DocEndpointParameterIn string
type DocEndpointType string

const (
DocEndpointProducesJson DocEndpointProduces = "application/json"
DocEndpointProducesXml DocEndpointProduces = "application/xml"
DocEndpointProducesYaml DocEndpointProduces = "application/yaml"
DocEndpointProducesText DocEndpointProduces = "text/plain"
)

const (
DocEndpointParameterInQuery DocEndpointParameterIn = "query"
DocEndpointParameterInPath DocEndpointParameterIn = "path"
Expand Down Expand Up @@ -49,31 +57,48 @@ type DocEndpoint struct {
OperationId string `json:"operationId"`
Responses map[int]DocEndpointResponse `json:"responses"`
Parameters []DocEndpointParameter `json:"parameters,omitempty"`
Produces []DocEndpointProduces `json:"produces,omitempty"`
Definitions map[string]DocEndpointDefinition `json:"-"`

ParsedTags []string `json:"tags,omitempty"`
}

type DocEndpointResponse struct {
Description string `json:"description"`
Schema map[string]string `json:"schema,omitempty"`
Description string `json:"description"`
Schema DocEndpointSchema `json:"schema,omitempty"`
Headers map[string]DocEndpointParameter `json:"headers,omitempty"`
}

type DocEndpointParameter struct {
In DocEndpointParameterIn `json:"in,omitempty"`
Name string `json:"name,omitempty"`
Required bool `json:"required,omitempty"`
Type DocEndpointType `json:"type,omitempty"`
Enum []string `json:"enum,omitempty"`
Format string `json:"format,omitempty"`
Schema map[string]string `json:"schema,omitempty"`
In DocEndpointParameterIn `json:"in,omitempty"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Required bool `json:"required,omitempty"`
Type DocEndpointType `json:"type,omitempty"`
Enum []string `json:"enum,omitempty"`
Format string `json:"format,omitempty"`
Items DocEndpointParameterItem `json:"items,omitempty"`
Schema DocEndpointSchema `json:"schema,omitempty"`
}

type DocEndpointDefinition struct {
Type string `json:"type"`
Properties map[string]DocEndpointParameter `json:"properties"`
}

type DocEndpointParameterItem struct {
Type DocEndpointType `json:"type,omitempty"`
Enum []string `json:"enum,omitempty"`
Format string `json:"format,omitempty"`
Ref string `json:"$ref,omitempty"`
}

type DocEndpointSchema struct {
Type string `json:"type"`
Ref string `json:"$ref"`
AdditionalProperties bool `json:"additionalProperties,omitempty"`
}

func NewDocApp(title string, version string) DocApp {
return DocApp{
Swagger: "2.0",
Expand Down
8 changes: 4 additions & 4 deletions documentation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ func Test_AddEndpointToDocs_EndpointDefinitions(t *testing.T) {
{
In: DocEndpointParameterInBody,
Name: "body",
Schema: map[string]string{
"$ref": "#/definitions/TestObject",
Schema: DocEndpointSchema{
Ref: "#/definitions/TestObject",
},
},
},
Expand Down Expand Up @@ -161,8 +161,8 @@ func Test_AddEndpointToDocs_EndpointDefinitions(t *testing.T) {
{
In: DocEndpointParameterInBody,
Name: "body",
Schema: map[string]string{
"$ref": "#/definitions/TestObject",
Schema: DocEndpointSchema{
Ref: "#/definitions/TestObject",
},
},
},
Expand Down
4 changes: 2 additions & 2 deletions examples/swagger.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ func main() {
{
Name: "body",
In: geh.DocEndpointParameterInBody,
Schema: map[string]string{
"$ref": "#/definitions/TestObject",
Schema: geh.DocEndpointSchema{
Ref: "#/definitions/TestObject",
},
},
},
Expand Down

0 comments on commit 77d4ff3

Please sign in to comment.