MCPcopy
hub / github.com/gin-gonic/gin / Negotiate

Method Negotiate

context.go:1358–1391  ·  view source on GitHub ↗

Negotiate calls different Render according to acceptable Accept format.

(code int, config Negotiate)

Source from the content-addressed store, hash-verified

1356
1357// Negotiate calls different Render according to acceptable Accept format.
1358func (c *Context) Negotiate(code int, config Negotiate) {
1359 switch c.NegotiateFormat(config.Offered...) {
1360 case binding.MIMEJSON:
1361 data := chooseData(config.JSONData, config.Data)
1362 c.JSON(code, data)
1363
1364 case binding.MIMEHTML:
1365 data := chooseData(config.HTMLData, config.Data)
1366 c.HTML(code, config.HTMLName, data)
1367
1368 case binding.MIMEXML:
1369 data := chooseData(config.XMLData, config.Data)
1370 c.XML(code, data)
1371
1372 case binding.MIMEYAML, binding.MIMEYAML2:
1373 data := chooseData(config.YAMLData, config.Data)
1374 c.YAML(code, data)
1375
1376 case binding.MIMETOML:
1377 data := chooseData(config.TOMLData, config.Data)
1378 c.TOML(code, data)
1379
1380 case binding.MIMEPROTOBUF:
1381 data := chooseData(config.PROTOBUFData, config.Data)
1382 c.ProtoBuf(code, data)
1383
1384 case binding.MIMEBSON:
1385 data := chooseData(config.BSONData, config.Data)
1386 c.BSON(code, data)
1387
1388 default:
1389 c.AbortWithError(http.StatusNotAcceptable, errors.New("the accepted formats are not offered by the server")) //nolint: errcheck
1390 }
1391}
1392
1393// NegotiateFormat returns an acceptable Accept format.
1394func (c *Context) NegotiateFormat(offered ...string) string {

Calls 10

NegotiateFormatMethod · 0.95
JSONMethod · 0.95
HTMLMethod · 0.95
XMLMethod · 0.95
YAMLMethod · 0.95
TOMLMethod · 0.95
ProtoBufMethod · 0.95
BSONMethod · 0.95
AbortWithErrorMethod · 0.95
chooseDataFunction · 0.85