Skip to content

Commit 31a3249

Browse files
zhulijian1emicklei_kramphub
authored andcommitted
support describing response headers (#426)
1 parent 74f0066 commit 31a3249

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

route_builder.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,15 @@ func (b *RouteBuilder) Returns(code int, message string, model interface{}) *Rou
176176
return b
177177
}
178178

179+
// ReturnsWithHeaders is similar to Returns, but can specify response headers
180+
func (b *RouteBuilder) ReturnsWithHeaders(code int, message string, model interface{}, headers map[string]Header) *RouteBuilder {
181+
b.Returns(code, message, model)
182+
err := b.errorMap[code]
183+
err.Headers = headers
184+
b.errorMap[code] = err
185+
return b
186+
}
187+
179188
// DefaultReturns is a special Returns call that sets the default of the response.
180189
func (b *RouteBuilder) DefaultReturns(message string, model interface{}) *RouteBuilder {
181190
b.defaultResponse = &ResponseError{
@@ -205,9 +214,27 @@ type ResponseError struct {
205214
Code int
206215
Message string
207216
Model interface{}
217+
Headers map[string]Header
208218
IsDefault bool
209219
}
210220

221+
// Header describes a header for a response of the API
222+
//
223+
// For more information: http://goo.gl/8us55a#headerObject
224+
type Header struct {
225+
*Items
226+
Description string
227+
}
228+
229+
// Items describe swagger simple schemas for headers
230+
type Items struct {
231+
Type string
232+
Format string
233+
Items *Items
234+
CollectionFormat string
235+
Default interface{}
236+
}
237+
211238
func (b *RouteBuilder) servicePath(path string) *RouteBuilder {
212239
b.rootPath = path
213240
return b

0 commit comments

Comments
 (0)