-
Notifications
You must be signed in to change notification settings - Fork 0
/
endpoints_pets.go
125 lines (119 loc) · 2.95 KB
/
endpoints_pets.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package main
import (
"encoding/json"
"github.com/go-andiamo/chioas"
"net/http"
)
var petsPaths = chioas.Path{
Tag: "pet",
Methods: map[string]chioas.Method{
http.MethodGet: {
Handler: "GetPets",
Summary: "List/query pets",
Description: "List/query pets",
OperationId: "getPets",
QueryParams: []chioas.QueryParam{
{
Name: "status",
Description: "Status values that need to be considered for filter",
SchemaRef: "Status",
},
},
Responses: map[int]chioas.Response{
http.StatusOK: {
Description: "Resultant pets",
IsArray: true,
SchemaRef: "Pet",
},
},
},
http.MethodPost: {
Handler: "PostPets",
Summary: "Add pet",
Description: "Add pet",
OperationId: "addPet",
Request: &chioas.Request{
Description: "Pet to be added to the store",
SchemaRef: "Pet",
},
Responses: map[int]chioas.Response{
http.StatusOK: {
Description: "Created pet",
IsArray: true,
SchemaRef: "Pet",
},
},
},
},
Paths: map[string]chioas.Path{
"/{petId}": {
PathParams: map[string]chioas.PathParam{
"petId": {
Description: "id of the Pet",
},
},
Methods: chioas.Methods{
http.MethodGet: {
Handler: "GetPet",
Summary: "Get an existing pet",
Description: "Get an existing pet by Id",
OperationId: "getPet",
Responses: chioas.Responses{
http.StatusOK: {
Description: "Successful operation",
SchemaRef: "Pet",
},
},
},
http.MethodPut: {
Handler: "UpdatePet",
Summary: "Update an existing pet",
Description: "Update an existing pet by Id",
OperationId: "updatePet",
Request: &chioas.Request{
Description: "Update an existent pet in the store",
SchemaRef: "Pet",
},
Responses: chioas.Responses{
http.StatusOK: {
Description: "Successful operation",
SchemaRef: "Pet",
},
},
},
},
},
},
}
func (d *api) GetPets(writer http.ResponseWriter, request *http.Request) {
res := map[string]any{
"hello": "you listed/queried pets",
}
enc := json.NewEncoder(writer)
writer.Header().Set("Content-Type", "application/json")
_ = enc.Encode(res)
}
func (d *api) PostPets(writer http.ResponseWriter, request *http.Request) {
res := map[string]any{
"hello": "you added a pet",
}
enc := json.NewEncoder(writer)
writer.Header().Set("Content-Type", "application/json")
_ = enc.Encode(res)
}
func (d *api) GetPet(writer http.ResponseWriter, request *http.Request) {
res := map[string]any{
"hello": "you retrieved a pet",
}
enc := json.NewEncoder(writer)
writer.Header().Set("Content-Type", "application/json")
_ = enc.Encode(res)
}
func (d *api) UpdatePet(writer http.ResponseWriter, request *http.Request) {
res := map[string]any{
"hello": "you updated a pet",
}
enc := json.NewEncoder(writer)
writer.Header().Set("Content-Type", "application/json")
_ = enc.Encode(res)
}